標籤:ssrf
0x00 什麼是SSRF
SSRF(Server-Side Request Forgery:伺服器端請求偽造)是一種有攻擊者構造形成有伺服器發起請求的一個安全性漏洞。一般情況下,SSRF攻擊的目標是從外網無法訪問的內部系統。
0x01 SSRF是如何產生的
SSRF形成的原因大都是由於服務端提供了從其他伺服器應用擷取資料的功能且沒有對目標地址做過濾與限制。比如從指定URL地址擷取網頁完本內容、載入指定地址的圖片、下載等。
0x02 SSRF的利用情境
<meta charset="utf-8"/><?php////////////////////////////////////// 1# file_get_conttents:////////////////////////////////////$url = $_GET[‘url‘];$url = "http://".$url;echo $url;$con = file_get_contents($url);echo $con;
當一個可以接受URL的網站(美圖秀秀中可以通過URL上傳圖片)當該站沒有對使用者輸入的URL進行過濾時,該情景與上面的代碼測試的環境基本一樣,這是可以對其內網進行探測。
http://127.0.0.1/Sec_Php/Lab/ssrf.php?url=127.0.0.1
這時可以通過該網站主機作為跳板對內網進行探測。
搜狐某雲端服務API介面導致SSRF/手工盲打到Struts2命令執行
內網編織者百度內網手動編織!
也可以通過該漏洞對伺服器任意檔案讀取:
新浪某站任意檔案讀取/SSRF
盛大某站存在SSRF可讀取本地檔案&探測內網
0x03 如何防禦
1.過濾放回資訊,驗證遠程伺服器對請求的響應是比較容易的方法。如果web應用是去擷取某一種類型的檔案。那麼在把返回結果展示給使用者之前先驗證返回的資訊是否符合標準。
2.統一錯誤資訊,避免使用者可以根據錯誤資訊來判斷遠程伺服器的連接埠狀態。
3.限制請求的連接埠為http常用的連接埠,比如,80,443,8080,8090。
4.黑名單內網IP。避免應用被用來擷取內網資料,攻擊內網。
5.禁用不需要的協議。僅僅允許http和https請求。
本文出自 “啟思·朝聖者” 部落格,請務必保留此出處http://dearch.blog.51cto.com/10423918/1793814
SSRF漏洞分析,利用及其防禦