是的没看错4月份了才开始做元旦的题👉 👈
- 6.zip->hedan.jpg。
- 用十六进制编辑器打开6.zip,可以看到该压缩包使用的相关工具为快压。
- 用快压打开该zip得到hetao.png。hetao.png尾部藏有zip文件,提取出来,得到“六个核弹”的加密zip。
- “六个核弹”中的文件有hedan.jpg和baidu.png。
- 明文攻击,没有破解出密码但是得到了解密后的压缩文件。
- 查看baidu.png的十六进制,发现其实为jpg文件。
参考了WP,最后是将baidu.png上传至百度网盘,就会显示flag。说实话这是第一次遇到这样的题,最后一步有点过于抽象了,就研究了一下:
百度网盘秒传的原理是md5碰撞。判断文件的md5值,如果和前期其他用户上传的文件相同就直接秒传。
(在网上检索到的资料说,大文件的话是先看文件长度,然后比较前 256KB 的 MD5、CRC32)
md5碰撞首先我想到的是fastcoll,用来生成两个md5值一样文件内容不一样的工具。但是这个工具无法直接对大小、内容、样式都不同的两个文件进行md5碰撞。
经过半天(我笨 真的是半天T T)的搜索找到了这个很酷的项目:
https://github.com/corkami/collisions
实践了一下,分别随意截取了两张小花仙游戏的搭配截图,计算了md5值。
使用该项目下的jpg脚本进行测试:
python3 jpg.py /root/Desktop/hua2.jpg /root/Desktop/hua1.jpg
md5值一样了,是我想要的效果:
比较两张图片的十六进制文件,不同之处如下:
放入百度网盘测试,首先我上传了collision2.jpg,分享给其他人collision1.jpg再次上传都会显示collision2.jpg,测试成功🎉
该项目不局限于图片:
Q: Which formats can I get instant MD5-colliding files pair for?
A: JPG, PNG, GIF, GZIP, Portable Executable, MP4, JPEG2000, PDF, DOCX/PPTX/XSLX, EPUB, 3MF, XPS. Just run the specific script.
假设某人写了🐎,并使其与某些白名单软件产生相同的MD5值。该恶意程序被上传到百度网盘后,其他人下载的文件可能会直接是恶意程序而不自知,还是比较危险的。在我上初中的时候就有老哥研究md5碰撞用于免杀上:戳我
欢迎留言讨论。