文件上傳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
的fuzz字典
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文件是不能同時存在的,所以最后一個提交的才會存在下來。
- 與此同時也產生了大量的圖片文件,這里是因為沒有給字典做特別詳細的過濾,其中是存在圖片名稱的(可用來做文件包含)。