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
Tags: 美圖秀秀 Request 百度 服務器 新浪
文章來源: