今天來介紹SSRF
SSRF(Server-Side Request Forgery,伺服器端請求偽造)是一種安全漏洞,攻擊者利用應用程序發送的伺服器端 HTTP 請求來進行惡意操作。在這類攻擊中,攻擊者可以控制或篡改伺服器發出的請求,從而達到以下目的:
SSRF 漏洞最常見於那些允許用戶指定資源 URL 或向外部資源發出請求的應用,例如文件上傳或下載功能、PDF 生成、圖片抓取等。
應用程式發送伺服器端請求:
當應用程式允許用戶指定 URL(例如從 URL 中加載圖片),伺服器會根據該 URL 發出請求,取得內容並返回給用戶。
攻擊者控制 URL:
攻擊者通過篡改這個 URL,使伺服器向內部資源發送請求,這些資源通常只有伺服器內部或受信網絡可以訪問。
攻擊成果:
攻擊者可能使用 SSRF 來訪問內部網絡中的管理系統、數據庫服務、API 或是進一步攻擊其他系統。
訪問內部網絡資源:
通過 SSRF,攻擊者可以使伺服器訪問內部網絡(如 127.0.0.1
或其他內網 IP)。這種攻擊可能允許攻擊者:
端口掃描:
攻擊者可以利用 SSRF 漏洞對內部網絡進行端口掃描,從而識別有哪些服務正在運行。通過發送一系列請求,攻擊者可以檢測伺服器的開放端口並推斷內部網絡結構。
訪問雲服務:
許多雲平台(如 AWS、GCP、Azure)提供的內部 API(例如 AWS 的 EC2 Metadata Service)會返回敏感信息,如憑證、密鑰等。攻擊者可以利用 SSRF 訪問這些 API,獲取憑證來控制虛擬機器或雲端資源。
對外攻擊:
伺服器可能被配置為受信的節點,能夠發出網絡請求。如果攻擊者能夠控制這些請求,他們可以利用伺服器發動 DDoS 攻擊、滲透攻擊或其他外部攻擊行為,並且難以追蹤到真實的攻擊者。
2019年 Capital One AWS SSRF 攻擊:
這次攻擊利用了 AWS 的 EC2 Metadata Service 和 SSRF 漏洞,攻擊者成功訪問了 AWS 的內部 API,並竊取了超過 1 億條用戶資料。攻擊者利用 SSRF 漏洞來存取 EC2 Metadata Service,進而取得 AWS S3 儲存桶的憑證,下載了存儲在 S3 上的機密數據。
Uber SSRF 漏洞:
2016 年,Uber 的一個子域名存在 SSRF 漏洞,允許攻擊者發送內部請求,進而訪問 Uber 的內部系統和私有 API。該漏洞後來被用於執行更複雜的攻擊,對 Uber 的資料系統造成威脅。
輸入驗證與過濾:
127.0.0.1
、localhost
、169.254.169.254
等)發送請求。file://
、ftp://
、gopher://
等)。使用白名單:
禁用不必要的功能:
網絡隔離:
防火牆與 ACL:
SSRF 是一種高風險的漏洞,攻擊者可以利用它來訪問內部網絡資源、進行外部攻擊甚至竊取敏感信息。防範 SSRF 攻擊的關鍵在於輸入過濾、使用白名單、網絡隔離和限制不必要的功能。隨著應用程式愈發依賴第三方 API 和內部網絡,企業需要特別關注 SSRF 漏洞並採取適當的防護措施。