轉(zhuǎn)載自:https://www.cdxy.me/?p=757
場景
目錄/文件fuzz是滲透測試中的重要部分,各SRC中因為.svn/.git
文件泄露源碼而被攻破的案例很常見,同時也是CTF中經(jīng)常出現(xiàn)的需求缤底。
“據(jù)我長期觀察潦蝇,50%的CTF題目打開都是一個登陸頁面,而其中又有60%的可以用各種方式拿到源碼产阱⊥癯疲” ——P神
枚舉類工具
用過的一些相關工具
https://github.com/lijiejie/BBScan
https://github.com/ring04h/dirfuzz
https://github.com/maurosoria/dirsearch
字典復用
字典復用是枚舉類工具的一個特性,把存在變化的字段(如文件后綴名)交給用戶來指定构蹬,為爆破節(jié)約了工作量王暗。
如:字典里寫的是
index.[EXT]
如果用戶輸入的extension是-e php,jsp,asp
,那么[EXT]
部分最終會被替換為以下三種情況庄敛。
index.phpindex.jspindex.asp
遞歸枚舉
當工具爆破出/admin/
目錄時俗壹,應當以該目錄為起點繼續(xù)向下探測二級目錄,dirsearch已經(jīng)實現(xiàn)了這個功能藻烤,不過二級目錄的字典沒必要向一級目錄那樣仔細绷雏,有待改進。
處理自定義404頁面
一些網(wǎng)站定制了404頁面怖亭,當用戶訪問不存在的URL時仍然會返回200涎显,此時我們的fuzz工具會產(chǎn)生大量誤報,應提供解決方案兴猩。
其他需求
如過濾HTTP響應碼期吓、定制HTTP請求、代理倾芝、處理重定向讨勤、結(jié)果的后續(xù)操作等框架類功能,可參考這個工具蛀醉。
https://github.com/deibit/cansina
爬蟲類工具
之前遇到的問題之前用上述枚舉類工具都能解決悬襟,直到前些天的ZCTF的第一道WEB題。
那個突破口是fuzz到這個文件:
.index.php.swp
這個是vim編輯器在非正常退出時產(chǎn)生的臨時文件拯刁,當時用上述工具均未跑出結(jié)果脊岳。
這個問題如果字典夠好是可以跑出來的,但以下情況就是枚舉類工具難以勝任的了:
.zctf.php.swpzctf.php.bak
還有垛玻,我在更改配置文件之后也會習慣性的在舊文件的結(jié)尾加一個下劃線作備份割捅。
xxx.conf_
這種情況下基于字典枚舉的fuzz工具是無法猜到zctf
這種特征性很強的路徑的,而爬蟲可以帚桩。
當爬蟲爬取到<a href=zctf.php>
時亿驾,基于這個已知信息來構造探測向量,即可完成該任務账嚎。
zctf.php.bakzctf.php.old.zctf.php.swpzctf.php~...
這種對文件的動態(tài)fuzz方法在豬豬俠前輩的工具里已有體現(xiàn)
https://github.com/ring04h/weakfilescan
FileSensor
針對這個需求我簡單寫了個動態(tài)fuzz工具莫瞬。
https://github.com/Xyntax/FileSensor
基于Scrapy構建儡蔓,全部請求由scrapy.Request
完成,保證了并發(fā)的穩(wěn)定性疼邀,同時HTTP請求細節(jié)可通過scrapy的項目配置文件直接定制喂江,省了不少代碼量。此外還可操控請求速度等細節(jié)旁振,畢竟Scrapy配置在获询。
思路就是通過爬蟲獲取資源,在其基礎上根據(jù)字典生成探測向量拐袜。
用戶輸入localhost -> 爬蟲發(fā)現(xiàn)localhost/test.php -> 探測localhost/test.php.bak
加入掃描器
枚舉工具無法發(fā)現(xiàn)含有特征的文件吉嚣,爬蟲工具無法探測未知情況,利用掃描器可將二者的優(yōu)點結(jié)合起來蹬铺。
在掃描器中針對每個爬取的鏈接調(diào)用一個簡單的爆破模塊尝哆,如爬取到http://xxx.com/zctf/
,交給爆破模塊跑出/zctf/config.php
丛塌,再針對config.php
生成config.php~
進行探測较解。