buuctfCTF2019-虚假的压缩包
来更新日常啦
简单的做点wp今天做了一道杂项的题
具体就是buuctf里的 [GUET-CTF2019]虚假的压缩包
下载压缩包
我也是抱着试一试的想法,用HXD看了一下 确定虚假的压缩包是伪加密 而真实的压缩包是真加密既然这样先把这个假的解出来
将这里的09 改为08 就可以解开伪加密了里面有一个txt文本 内容如下
****
这里并不是简单的算术而是rsa加解密先来讲一下RSA
什么是RSA:
RSA算法是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman于1978年提出。 它基于大数分解的困难性,使用一对公钥和私钥进行加密和解密。
怎么解开RSA的加密呢?
这里涉及到以下知识
取自b站:技术蛋老师的 RSA加解密的过程
就是现在要把这个东西代入这个公式里
n=33 p和q就的出来了 p=3 q=11
然后看上面的欧拉公式不难得出 t=(p-1)x (q-1)= 20
e = 3
d =(d x e) ÷ t = 1 就 d = 7
现在要给了一个数字就是26 其实我是不能够完全明白 的但是具体是 26^7 mod (除余运算) 33(除33)余几
然后这个实例的答案是余5
那么这里的答案就是:答案为5
我们的到答案解开真实的压缩包
检查图片 发现高度有问题
将这里改为01 得到一个全新的 数字 是5次方 我的程度就是到这里了我又卡住了 然后参考资料
查找资料得到这个代码 但是不对 有报错 然后就用ai去修修补补 最终用的是python3 所以修改了最后一句
大概意思是 将文件内容以16进制提取出来后 跟 5 进行异或运算 将运算的结果改成字符输出在下面那个doc文档里 运行代码 得到了 文档
打开文档 发现 没有flag 尝试全选 修改底色为黑色
flag就出来了 挺有趣的一道题 难点就在于思路 其次就是脚本 python脚本并不简单所以还是得多学多练。