0x00 什麼是SSRF
SSRF(Server-Side Request Forgery:伺服器端請求僞造)是一種有攻擊者構造形成有伺服器發起請求的一個安全漏洞。一般情況下,SSRF攻擊的目标是從外網無法通路的内部系統。
0x01 SSRF是如何産生的
SSRF形成的原因大都是由于服務端提供了從其他伺服器應用擷取資料的功能且沒有對目标位址做過濾與限制。比如從指定URL位址擷取網頁完本内容、加載指定位址的圖檔、下載下傳等。
0x02 SSRF的利用場景
1
2
3
4
5
6
7
8
9
10
11
12
<code><meta charset="utf-8"/></code>
<code><?php</code>
<code>////////////////////////////////////</code>
<code>// 1# file_get_conttents:</code>
<code>$url = $_GET['url'];</code>
<code>$url = "http://".$url;</code>
<code>echo $url;</code>
<code>$con = file_get_contents($url);</code>
<code>echo $con;</code>
當一個可以接受URL的網站(美圖秀秀中可以通過URL上傳圖檔)當該站沒有對使用者輸入的URL進行過濾時,該情景與上面的代碼測試的環境基本一樣,這是可以對其内網進行探測。
<code>http://127.0.0.1/Sec_Php/Lab/ssrf.php</code>
<code>?url=127.0.0.1</code>
這時可以通過該網站主機作為跳闆對内網進行探測。
<a href="http://www.wooyun.org/bugs/wooyun-2015-0129588" target="_blank">搜狐某雲服務API接口導緻SSRF/手工盲打到Struts2指令執行</a>
<a href="http://www.wooyun.org/bugs/wooyun-2014-061850" target="_blank">内網編織者百度内網手動編織!</a>
也可以通過該漏洞對伺服器任意檔案讀取:
<a href="http://wooyun.org/bugs/wooyun-2010-0205914" target="_blank">新浪某站任意檔案讀取/SSRF</a>
<a href="http://wooyun.org/bugs/wooyun-2010-0205719" target="_blank">盛大某站存在SSRF可讀取本地檔案&探測内網</a>
0x03 如何防禦
1.過濾放回資訊,驗證遠端伺服器對請求的響應是比較容易的方法。如果web應用是去擷取某一種類型的檔案。那麼在把傳回結果展示給使用者之前先驗證傳回的資訊是否符合标準。
2.統一錯誤資訊,避免使用者可以根據錯誤資訊來判斷遠端伺服器的端口狀态。
3.限制請求的端口為http常用的端口,比如,80,443,8080,8090。
4.黑名單内網IP。避免應用被用來擷取内網資料,攻擊内網。
5.禁用不需要的協定。僅僅允許http和https請求。
本文轉自 nw01f 51CTO部落格,原文連結:http://blog.51cto.com/dearch/1793814,如需轉載請自行聯系原作者