背景
最近做的安全測評主要是SSRF,發現自己在這一塊有挺大知識盲點,抓緊補一下,
1.介紹
-
SSRF(Server-Side Request Forgery:服務器端請求偽造),是一種攻擊者利用服務端發起請求的安全漏洞,攻擊者能夠誘使服務端應用程式向攻擊者選擇的域發出HTTP請求,
-
SSRF針對的目標通常是從外部無法訪問的內網系統,正因為它是由服務端發起的,所以它能請求到與它相通而與外部隔離的內網系統,可被用于作為代理來實施內網(或者遠程服務器)的攻擊,
2.成因
- 大都是由于服務端提供了從其他服務器應用獲取資料的功能,而沒有對目標地址進行嚴格過濾與限制,一旦被發現,攻擊者可以構造惡意請求實施攻擊,
3.危害與防范
3.1 危害
- 成功的SSRF攻擊常用會導致黑客在易受攻擊的應用程式本身或應用程式與之通信的其他后端系統執行未授權(惡意)操作,和對組織內資料的訪問,特殊情況下,SSRF漏洞可能允許攻擊者執行任意命令,
- SSRF可能的攻擊方式和危害如下:
- 讓服務端去訪問內網的一些WEB應用指紋檔案來判斷是否存在相應的CMS,從而收集內網CMS資訊
- 可以使用file、dict、gopher、ftp協議進行請求訪問相應的檔案,可能造成檔案任意讀取,導致敏感資訊泄漏
- 攻擊內網web應用,可以向內部任意主機的任意埠發送精心構造的資料包,如果應用本身存在漏洞,可能造成遠程命令執行
- 攻擊內網應用程式(利用跨協議通信技術)
- 內網埠掃描,通過訪問看是否有埠開放,從而獲取內網埠開放資訊
- 拒絕服務攻擊,請求大檔案,始終保持鏈接keep-alive alway,導致拒絕服務
3.2 防范
- 禁止服務端跳轉,防止以跳轉方式繞過HTTP協議限制
- 對于SSRF,回顯是能夠成功利用的重要條件,所以過濾回傳資訊,驗證遠程服務器對請求的回應是比較容易的方法,如果WEB應用是去獲取某一種型別的檔案,那么在把回傳結果展示給用戶之前先驗證回傳的資訊是否符合標準,
- 禁用不需要的協議,僅僅允許HTTP和HTTPS請求,可以防止類似于file://、gopher://、ftp://等引起的問題
- 設定URL白名單或者限制內網IP,避免應用被用來獲取內網資料,攻擊內網
- 限制請求的埠為HTTP常用的埠,例如80、443、8080、8090
- 統一錯誤資訊,避免用戶可以根據錯誤資訊來判斷遠端服務器的埠狀態
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/288634.html
標籤:其他
