SSRF原理及攻防解析(簡單明瞭)

原理解析

服務端請求僞造(SSRF)是指一種由攻擊者構造形成由服務端發起請求的一個安全漏洞,一般情況下,SSRF攻擊的目標都是從外網無法訪問的內部系統,藉助服務端發起僞造的請求,可以訪問到與它相連而與外網隔離的內部系統。

之所以會形成SSRF主要是因爲服務器提供了從其他服務器應用獲取數據的功能,但是沒有對目標服務器做過濾和限制。比如從指定URL地址獲取數據(引入css/js等數據時)。假設如下的一個web應用服務場景:

服務器A:web應用對外網服務接口
服務器B:保存一些圖片資源等等以供A網站請求。
當用戶訪問服務器A上的一些圖片時,服務器向服務器B請求對應的img,以返回用戶。
用戶向服務器A請求圖片的URL可能是www.A.com/getimg.php?Img=URL。

此時如果服務器A沒有對URL進行過濾的話,就導致攻擊者可以通過精心構造一個URL從而藉助A服務器請求到內部網絡B服務器的數據。

利用方式

  1. 對服務器所在內網或本地進行端口掃描,獲取服務器banner信息。
  2. 攻擊運行在內網或本地的應用程序
  3. 對內網web應用進行指紋識別
  4. 利用跨協議通信技術攻擊內網應用程序或web服務
  5. 利用file協議,dict協議,gropher協議,ftp協議等讀取本地文件
  6. 通過請其大文件進行Dos攻擊

防禦方式

  1. 過濾返回信息,驗證遠程服務器對請求的響應,對於返回給用戶的結果,在返回給用戶之前先檢查是否符合標準。
  2. 統一錯誤信息,避免用戶可以通過錯誤信息判斷服務器的端口狀態。
  3. 進行端口限制,將端口限制爲80,443等http常用端口
  4. 設立黑白名單限制內網IP
  5. 僅允許http/https協議,以防止類似file協議等導致的問題

我的個人博客,歡迎大家訪問 ~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章