爬虫工具获取页面中域名及子域名(SQL注入、渗透)
目錄
0x01 獲取頁面中的 URL
0x02 提取 URL 中帶參數的 URL
0x03 將提取出來的 URL 去重
總結
自動化尋找網站的注入漏洞,需要先將目標網站的所有帶參數的 URL 提取出來,然后針對每個參數進行測試,對于批量化檢測的目標,首先要提取大量網站帶參數的 URL,針對 GET 請求的鏈接是可以通過自動化獲取的,而 POST 型參數提交的方式,則需要手工點擊,然后代理抓取數據包再進行提交測試。
本文的重點是如何自動化獲取網頁中的 URL,然后進行處理后,保留每個路徑下的一條記錄,從而減少測試的目標,提升測試的效率,這個過程主要分三步,分別是:提取 URL、匹配帶參數的 URL、URL 去重。
0x01 獲取頁面中的 URL
其實實現這個目標很簡單,寫一個腳本,獲取頁面內容,然后使用正則將 URL 匹配出來即可,有的人就會說,我不會寫腳本,我不懂正則,該怎么辦?
也好辦,可以用別人寫好的工具,會用就行,這里推薦一個工具叫 gau,項目地址:
https://github.com/lc/gau
該項目使用 go 語言編寫,安裝方式也很簡單,命令如下:
go get -u -v github.com/lc/gau
使用起來就更簡單了,比如:
echo "https://www.xazlsec.com" | gau
從圖中可以看到有很多圖片之類的文件,可以使用 -b 參數排除,比如:
echo "https://www.xazlsec.com" | gau -b png,jpg
如果我想獲取的不只是目標域名下的鏈接,還想獲取其他子域名的鏈接,那么可以使用 -subs 參數:
echo "https://www.xazlsec.com" | gau -b png,jpg -subs xazlsec.com
到這里,基本可以滿足我們的需求了,當然還可以設置線程數來提升抓取效率,還可以將結果保存到文件中,具體的參數,大家可以自行測試。
0x02 提取 URL 中帶參數的 URL
如果 URL 不帶參數,那么我們就無法對其進行檢測,任何輸入點都有可能存在安全風險,沒有輸入點,當然也沒辦法測試了,所以如何從 URL 列表中提取帶參數的 URL 呢?如果你會正則,會腳本,這個目標也沒什么難度。
在不會寫腳本,也不懂正則的情況下,可以使用工具 gf,項目地址:
https://github.com/tomnomnom/gf
安裝也比較簡單,使用的話需要依賴別人寫好的配置文件,這里推薦一個項目,有很多寫好的配置:
https://github.com/1ndianl33t/Gf-Patterns
首先安裝 gf:
go get -u github.com/tomnomnom/gf
然后把 Gf-Patterns 克隆回來:
git clone?https://github.com/1ndianl33t/Gf-Patterns
把 Gf-Patterns 中的文件移動到 .gf/ 中:
mv Gf-Patterns/* .gf/
接下來就可以提取可能存在 SQL 注入的鏈接了,結合之前介紹的工具,命令如下:
echo "https://example.com" | gau -b png,jpg -subs example.com | gf sqli
0x03 將提取出來的 URL 去重
通過以上方法獲取的 URL 列表,有很多同一個路徑,但是參數內容不同的情況,如果都去做測試的話,會有很多重復的勞動,沒有必要的測試,所以需要將 URL 進行去重,將 URL 的參數替換為固定值,然后進行去重,這樣就可以把相同路徑和相同參數的 URL 去除,保留一條記錄,可以大大的節省測試的時間和目標數量,即減少了與目標交互的次數,也能提升測試的效率。
這里推薦一個工具叫 qsreplace,下載地址:
https://github.com/tomnomnom/qsreplace
安裝方式:
go get -u github.com/tomnomnom/qsreplace
結合之前的工具使用,命令如下:
echo "https://example.com" | gau -b png,jpg -subs example.com > sqli.txt
cat sqli.txt | qsreplace fuzz > duplicateremove.txt
到這里,就可以使用注入漏洞檢測工具對目標 URL 列表進行檢測了,比如 sqlmap 等注入檢測工具。
總結
本文主要介紹了三款 go 語言編寫的小工具,用來針對目標收集可能存在某些漏洞的 URL 列表,然后在結合漏洞檢測工具,有針對性的進行檢測,提升工作效率。
總結
以上是生活随笔為你收集整理的爬虫工具获取页面中域名及子域名(SQL注入、渗透)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qs.stringify和JSON.st
- 下一篇: node.js实现图片上传(包含缩略图)