SSRFmap工具實例測試及問題解決

SSRF

SSRF(Server-Side Request Forgery:服務器端請求偽造) 是一種由攻擊者構造並由服務端發起請求的一個安全漏洞。一般情況下,SSRF攻擊的目標是從外網無法訪問的內部系統。例如如下的一個連接,利用目標網站192.168.124.144去請求內網的10.0.0.5。

<code>http://192.168.124.144/search2.jsp?key=http://10.0.0.5/login.action/<code>

通常ssrf可以用來進行端口掃描,內網掃描,攻擊內網的struts2、redis等應用;同時也可以利用file、dict、gopher、ftp協議請求訪問相應的文件等等。

ssrfmap

看到有人在推薦一個ssrf的利用工具ssrfmap,於是下載測試了下,ssrfmap是一款自動化探測ssrf漏洞的工具,裡面包含了較多的功能模塊,例如端口掃描,文件讀取,包括redis、tomcat、zabbix等等漏洞利用模塊,非常方便。網上有針對該工具的介紹,但是在使用中其實是有個問題需要注意的,不然利用會出錯,在後面的示例測試中做說明,工具運行界面如下,初次使用需要安裝requirements.txt中的python模塊。

SSRFmap工具實例測試及問題解決

<code>下載地址:https://github.com/swisskyrepo/SSRFmap/<code>

ssrfmap示例測試

需要注意如下事項:

  • 需要在linux環境下利用python3執行ssrfmap.py,Windows可運行成功但利用會出錯

測試步驟:

1、下載工具後,進入data目錄有個example.py,利用python運行可以開啟一個存在ssrf漏洞的web服務,由於需要flask環境,所以如果執行提示 No module named 'flask',則利用 pip install flask安裝flask,啟動成功如下,默認開放5000端口

<code>python example.py/<code>
SSRFmap工具實例測試及問題解決

2、到工具目錄,啟動ssrfmap,可以看到使用方式

<code>python3 ssrfmap.py/<code>
SSRFmap工具實例測試及問題解決

3、測試第1步開啟的示例,利用ssrfmap讀取文件,讀取的文件內容可以在modules目錄下readfiles.py中指定,默認會讀取系統hosts文件、passwd等文件,讀取完成會在工具目錄生成以目標ip和端口命名的目錄,裡面以txt文本記錄所讀取的文件內容。

<code>python3 ssrfmap.py -r data/request.txt -p url -m readfiles/<code>
SSRFmap工具實例測試及問題解決

4、端口掃描

<code>python3 ssrfmap.py -r data/request.txt -p url -m portscan/<code>
SSRFmap工具實例測試及問題解決

其中,-r 後面跟的是請求數據包,-p 後面跟的是漏洞參數,-m 後面跟的是利用模塊,實戰中利用burpsuite抓取請求數據包即可,利用模塊在工具目錄下的modules目錄裡,也可以按格式擴展自定義模塊。


分享到:


相關文章: