摘要:SSRF (Server-Side Request Forgery,服務器端請求偽造)是指由攻擊者構造請求,然后利用服務器的漏洞以服務端的身份向內網發送請求對內網發起攻擊,
本文分享自華為云社區《GaussDB(DWS)安全測驗之SSRF漏洞》,作者: ACBD,
1. 什么是SSRF漏洞
SSRF (Server-Side Request Forgery,服務器端請求偽造)是指由攻擊者構造請求,然后利用服務器的漏洞以服務端的身份向內網發送請求對內網發起攻擊,一般情況下,SSRF攻擊的目標是外網無法訪問的內部系統,因為請求是服務端發起的,所以服務端就能請求到與其網路通暢而與外網隔離的內網系統,
SSRF漏洞的形成大多是因為服務端可以從其他服務器獲取資料,但沒有對服務端的請求做校驗,導致攻擊者通過服務端向服務器發送事先構造好的請求,攻擊者把存在漏洞的服務器作為跳板,從而達到訪問內網服務器的目的,
如下圖所示,服務器A存在SSRF漏洞可被攻擊者訪問,內網中的其他服務器不能被攻擊者直接訪問,攻擊者就可以向服務器A發送請求,服務器A再向內部服務器發送請求,內部服務器回傳資料給服務器A,服務器A再將內部服務器的回應資料回傳給攻擊者,服務器A作為中間人被攻擊者利用,從而達到攻擊者的目的,
2. SSRF漏洞常見攻擊型別
2.1 本地敏感資料竊取
利用file協議可以訪問Web本地檔案,如下圖所示,在url后面拼接本地服務器檔案地址(提前在C:\Users\Public下創建一個檔案test.txt,寫入內容“This is a test for SSRF!”),即可讀取本地檔案內容,
2.2 埠探測
在我們利用SSRF漏洞去攻擊內網服務器時,并不知道內網中有什么樣的應用和IP,也不知道開放了什么埠以及埠對應的服務,此時我們可以利用SSRF漏洞先對內網做IP+埠的掃描,埠的開放、關閉狀態不同,回應的回傳時間也會有差別,據此就可以判斷埠的開放狀態,
如下圖所示,不同的埠回應時間不同,如果埠的回應時間明顯少于其他埠,則該埠很有可能是開放狀態,


3. SSRF攻擊總結
3.1 SSRF攻擊測驗思路
SSRF漏洞挖掘一般有兩種思路,一種是黑盒的方法,另一種是白盒的方法,
黑盒的方法是找到所有呼叫外部資源的場景,進行漏洞排查,主要排查點包括
- 圖片加載下載
- 社交分享功能
- 文章收藏功能
- 網站采集
- 未公開的api介面
- 從遠程服務器請求資源
白盒的方法是從專案支持的網路協議、專案中使用的發起網路請求的類和API以及訪問地址中是否有外部可控的變數三個方面進行排查,常見的協議有file、ftp、http、https等,關注能夠利用上述協議發起網路請求的類,然后關注傳入的變數是否外部可控,如果外部可控則可能存在問題,
3.2 常見的防護措施
- 網路層面,在URL中過濾掉內網IP,如localhost等,
- 應用層面,過濾掉不常用且有危險的協議,對回傳的內容及報錯資訊做好處理避免泄露敏感資訊,以及對內部訪問做二次認證等,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/548681.html
標籤:其他
上一篇:一種自平衡解決資料傾斜的分表方法
