25Yunxi期中
MISC
谍影重重plus
这里我们下载后得到的是两个压缩包,一个名为hint一个名为yunxi
这里我们先来看看hint压缩包发现需要解密。那么我们交给随波逐流
然后我们就进行解压
但是进去看到的却是重影
但是在随波逐流中就发现了有提到稿文件包含零宽字符(这也是一种加密方式)
搜搜在线解密在线零宽字符unicode文字隐写工具-BFW工具箱
然后将文件中的全部复制到隐写文本中进行解密
这里看到即使是解密了也还有隐藏部分。
那么我们就只能靠生成字典来爆才能保证前后有已知字符
通过脚本来生成
import itertools
import stringdef generate_symmetric_passwords():# 扩展字符集:大小写字母 + 数字 + 符号chars = string.ascii_letters + string.digits + string.punctuationwith open('passwords.txt', 'w', encoding='utf-8') as file:for prefix in itertools.product(chars, repeat=3):prefix_str = ''.join(prefix)symmetric_part = prefix_str + prefix_str[::-1]password = f"Yunxi{symmetric_part}ixnuY"file.write(password + '\n')if __name__ == "__main__":generate_symmetric_passwords()print("密码字典已生成到 passwords.txt 文件")
然后我们用爆破zip的工具进行字典爆破(爆破yunxi这个加密文件)
然后我们用winrar去解压缩
得到了一个图片
但是没有得到flag
应该是图片隐写
这是一个steghide隐写术
在我们解压zip时,其实有一个信息泄露
然后在kali里解flag
FZ(写上直接wireshark导出的方法)
得到了附件,然后经过审查可以看到该流量包现实这里面获得了flag.zip,然后unzip -p [密码] [文件名]
但是我们并不知道怎么去获得这个文件,去binwalk试试,成功获得了,所以我们就获得了压缩包,但是需要密码。
没有关系,前面讲了-p后面的就是密码,直接输入就解压缩了,得到flag
ez签到 1.0版
首先开启环境,得到了界面,有个输入的地方直接输入ls看目录,结果进入了源码页面
所以我们就get传入参数YX,同样是ls查看目录
没看到flag,继续找,看根目录
有了 ,cat一下
没有,可能这个是假的了
再回到ls,看到了一个zip文件访问一下
下载后解压是两个图片
应该是图片隐写了
都试一下,最好看到step1是可以提取盲水印的
但是得到了不知道怎么用,应该对第二张图有点作用,因为二者的名字一个是step1,另一个是step2
然后我们去查找一下图片隐写,最后再图片隐写加/解密中得到了flag这里的密码就是刚才的盲水印,解密得到flag
crypto
LCCCG
求出flag的代码
n = 10104483468358610819
data = [2626199569775466793, 8922951687182166500, 454458498974504742, 7289424376539417914, 8673638837300855396]s2, s3, s4, s5, s6 = data# 计算差分序列
d2 = (s3 - s2) % n
d3 = (s4 - s3) % n
d4 = (s5 - s4) % n
d5 = (s6 - s5) % n# 行列式及逆元
D = (pow(d3, 2, n) - (d2 * d4) % n) % n
D_inv = pow(D, -1, n) if D != 0 else 0# 求解a和b
a = ((d4 * d3 - d2 * d5) * D_inv) % n
b = ((d3 * d5 - pow(d4, 2, n)) * D_inv) % n# 求解c
c = (s4 - a * s3 - b * s2) % n# 转换字节并组合flag
flag = (f"cazy{{{a.to_bytes(8, 'big').decode('latin-1')}"f"{b.to_bytes(8, 'big').decode('latin-1')}"f"{c.to_bytes(8, 'big').decode('latin-1')}}}"
)
print(flag)