文件上传fuzz字典生成脚本—使用方法
原作者:c0ny1
项目地址:https://github.com/c0ny1/upload-fuzz-dic-builder
项目预览效果图:
帮助手册:
脚本可以自定义生成的上传文件名(-n),允许的上传的后缀(-a),后端语言(-l),中间件(-m),操作系统(--os),是否加入双后缀(-d)以及输出的字典文件名(-o)。
我们可以根据场景的不同,来生成合适的字典,提供的信息越详细,脚本生成的字典越精确!
1.1 Example1
生成适合全语言,全部中间件,全部操作系统的fuzz字典
python upload-fuzz-dic-builder.py
1.2 Example2
生成适合后端语言为
asp
的fuzz字典
python upload-fuzz-dic-builder.py -l asp
1.3 Example3
上传文件名为:
test
,可以上传后缀为
jpg
,后端语言为
php
,中间件为
apache
,操作系统为
Windows
,输出字典名为
upload_filename.txt
python upload-fuzz-dic-builder.py -n test -a jpg -l php -m apache --os win -o upload_file.txt
1.4 注意:
1、生成时给的上传点相关信息越详细,生成的字典越精确!
2、在使用burp的Intruder模块进行fuzz时将Payload面板中
Payload Encoding
一栏的
URL-encode these characters
选项设置为未选中状态。
实例:
1、生成自己想要的fuzz字典,我这里就生成了一个叫phpinfo的字典文件:
生成命令:
python upload-fuzz-dic-builder.py -n phpinfo -l php -m apache --os win
2、用burp对上传点进行抓包:
我这里用的是upload闯关的第12关当做案例,这里可以通过POST%00截断,来实现上传:
这里指定爆破的注入点,然后挂载字典,最后务必要把Payload面板中
Payload Encoding
URL-encode these characters
4、看看效果:
- 这里进行了一小会儿,就可以看到已经有php文件出来了。这里有些细心地同学就会问,为什么会没有.php(小写文件)呢?是字典中没有嘛?
- 其实不然,这里是因为爆破顺序的问题,与Windows的文件命名问题,相同名称的.Php文件与.php文件是不能同时存在的,所以最后一个提交的才会存在下来。
- 与此同时也产生了大量的图片文件,这里是因为没有给字典做特别详细的过滤,其中是存在图片名称的(可用来做文件包含)。
参考链接:
http://gv7.me/articles/2018/make-upload-vul-fuzz-dic/
----------------------------------------------------------------------------
作者:肖洋肖恩、
出处:https://www.cnblogs.com/-mo-/
----------------------------------------------------------------------------
文中可能会存在纰漏,若发现请联系与我。
本文所有代码仅可用于站长自我检测与学习,如用于非法攻击一切后果自负。