SSRF: Server Side Request Forgery  服務端請求偽造。   攻擊者構造形成看似由服務器發起請求的一個安全漏洞。基本上,SSRF的目標是外網無法Access的內部系統。     SSRF如何產生?   SSRF形成原因大多是server side從其他server應用獲取data時沒有對於目標位址做過濾跟限制。   比如說從指定的URL獲取了response,像是內容、圖片、下載等等。     當一個可以接受URL的API沒有對URL進行過濾時,那麼駭客可以利用URL的response去探測內網。    SSRF的出現情境  1. 社交分享功能: 獲取超連結的標題與內容並進行顯示。  2. 轉碼服務: 通過URL地址把原地址的網頁內容調優使它適合手機閱覽(內容重新矲版整理)  3. 網頁翻譯: 將網址的網頁內容做文字翻譯  4. 圖片加載/下載: 通過URL在網頁的文本編輯器裡面顯示圖片或下載圖片  5. 圖片/文章收藏功能: 和1的情境差不多  6. 雲端服務: 雲端server可以由遠端執行命令來判斷網站是否存活,如果可以捕獲相應的訊息,就可以進行SSRF  7. 網站採集: 有些網站會對你輸入的URL進行一些訊息採集的工作  8. Database的內置功能: database中像是copy database的function  9. Mail System: 比如接收郵件服務器的位址  10 從遠端伺服器請求資源   SSRF的應對之道   1. 過濾response訊息:如果API要獲取某一種類型的訊息,再獲取response時需要先去過濾它是否符合標準。     2. 統一錯誤訊息     3. 設置URL白名單或是gethostbyname()判斷是否為內網IP   4. 限制請求的端口(Port),如限制為80, 443, 8080, 8090   5. 禁止跳轉   6. 進用不需要的協議(僅允許http和https請求)  
About Reading, Life, and some Information Technology