伺服器端請求偽造(SSRF)簡介
成功的網路攻擊最重要的因素之一是足夠的訪問許可權。在安全得到充分考慮的應用程式中,外部使用者通常沒有足夠的訪問許可權來造成傷害。在這種情況下,攻擊者可以嘗試不同的方法。與其嘗試獲得足夠的訪問並嘗試獲得足夠的許可權,他們可以嘗試操作已經擁有足夠訪問和授權的應用程式實體(如伺服器)。
伺服器端請求偽造(SSRF)就是這樣一種攻擊,攻擊者欺騙伺服器發出意外請求。
什麼是伺服器端請求偽造?
現代應用程式本質上通常是分散式的,並且已經開始更多地依賴雲服務。儘管這使得應用程式的開發、測試和故障排除很方便,但它增加了體系結構的複雜性並增加了挑戰。其中一個挑戰是確保應用程式的不同元件有足夠的訪問許可權,以順利地執行它們的功能。但是當我們不考慮這種訪問的範圍和可能的威脅時,它可能會導致伺服器端請求偽造漏洞。
伺服器端請求偽造是一種web應用程式漏洞,它允許攻擊者嚮應用程式元件傳送格式錯誤的請求,或與外部任意系統通訊。
通常,應用程式的內部元件的配置方式是外界無法訪問的。例如,防火牆後的伺服器或只能從堡壘主機訪問的伺服器。因此,攻擊者可以濫用SSRF漏洞來攻擊應用程式的內部元件。
伺服器端請求偽造有什麼影響?
SSRF 攻擊的一些常見影響是:
-
敏感資料洩露或加密失敗。
-
任意程式碼執行 ( ACE )。
-
誘導不存在的漏洞在以後利用。
-
獲取有關應用程式內部架構的資訊。
在某些情況下,SSRF漏洞還可能導致應用程式被完全接管。一次成功的SSRF攻擊可能導致業務上的影響、面臨訴訟、聲譽損害等。
伺服器端請求偽造示例
人們可以利用SSRF漏洞做什麼取決於應用程式的體系結構和攻擊者的創造力。然而,有一些方法是攻擊者最常用的。
-
伺服器 SSRF
-
後端 SSRF
-
SSRF 透過檔案上傳
伺服器 SSRF 攻擊
這是一種 SSRF 攻擊,表示 SSRF 攻擊是針對伺服器本身的。
後端 SSRF 攻擊
後端SSRF攻擊與伺服器SSRF類似,不同之處在於目標元件是後端系統。因此,攻擊者不是將請求傳送到同一伺服器,而是將請求傳送到另一個後端系統。
SSRF 透過檔案上傳
這種型別的 SSRF 是透過易受攻擊的應用程式的檔案上傳功能發生的。將惡意程式碼嵌入檔案(例如:HTML 或 SVG)中,將檔案上傳到應用程式,然後誘使應用程式執行程式碼。
如何防止伺服器端請求偽造?
有多種方法可以防止伺服器端請求偽造。存在一些通用措施,也需要結合自身實際需求採取措施。
白名單和 DNS 解析
如果有預定義的請求列表,則可以使用白名單僅允許執行這些請求。如果很難將請求列入白名單,則可以對端點使用白名單。例如,僅允許從伺服器向以下端點發出請求:
還可以為應用程式需要訪問的主機名和 IP 使用白名單,或使用訪問控制列表 ( ACL )。儘管您可以使用 DNS 解析來驗證域,但仍然可以被利用。
或者,可以使用黑名單來阻止潛在的惡意請求。
內部服務認證
根據架構,可能已經將內部系統置於防火牆之後,併為公共伺服器新增了更多的安全性。但是由於SSRF利用了應用程式元件之間的信任,所以在元件之間新增安全層也很重要。這不僅會給攻擊者帶來困難,還會減慢程式,有足夠的時間採取行動。因此,建議使用身份驗證進行內部系統之間的通訊。
安全編碼
這是在開始構建應用程式時需要實現的一種安全實踐。預防性安全編碼的思想將在開發應用程式時採用靜態程式碼檢測等方式提高程式碼安全性並減少軟體中的缺陷。將安全措施放在應用程式的各個位置,為攻擊者增加更多的阻力。
SSRF攻擊的一個常見原因是在不驗證使用者提供的URL的情況下獲取連結。因此,清理和驗證使用者可控資料可能是作為安全措施首先要注意的事情之一。
滲透測試
滲透測試可用來對應用程式的安全性進行評估,並填補之前可能未發現的安全空白。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2909893/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SSRF 服務端請求偽造服務端
- CSRF(跨站請求偽造)簡介
- 跨站請求偽造(CSRF)-簡述
- CSRF - 跨站請求偽造
- java 偽造http請求ip地址JavaHTTP
- 08 CSRF偽造請求攻擊
- 跨站請求偽造CSRF攻防
- 理解CSRF(跨站請求偽造)
- [Http] 跨站請求偽造(CSRF)HTTP
- php模擬請求(偽造來源和請求ip)PHP
- CSRF跨站請求偽造漏洞分析
- [譯] 跨站請求偽造已死!
- l初識CSRF(跨站請求偽造)
- CSRF 跨站請求偽造學習筆記筆記
- 密碼學系列之:csrf跨站點請求偽造密碼學
- 跨站請求偽造(CSRF)攻擊原理及預防手段
- 偽造工作經歷,請止步!!!
- DVWA學習記錄系列(四)SCRF 跨站偽造請求模組CRF
- SpringSecurity原理解析以及CSRF跨站請求偽造攻擊SpringGse
- Django中如何防範CSRF跨站點請求偽造攻擊Django
- ajax跨域請求簡單介紹跨域
- Django框架:13、csrf跨站請求偽造、auth認證模組及相關用法Django框架
- Django csrf跨站請求偽造,校驗,CBV忽略與允許csrf校驗Django
- Web 安全漏洞 SSRF 簡介及解決方案Web
- php偽造Referer請求反盜鏈資源PHP
- jenkins v2.229 版本,無法勾選 “跨站請求偽造保護”Jenkins
- Android客戶端請求伺服器端的詳細解釋Android客戶端伺服器
- Anchor CMS 0.12.7 跨站請求偽造漏洞(CVE-2020-23342)
- SSRF漏洞簡單分析
- HttpSendRequest向服務端傳送資料,構造請求http頭HTTP服務端
- 跨域ajax請求,伺服器會收到請求嗎?跨域伺服器
- 網站提示400 - 請求錯誤,伺服器無法理解客戶端的請求怎麼辦網站伺服器客戶端
- Laravel cookie偽造,解密,和遠端命令執行LaravelCookie解密
- axios躺坑之路:cookie,簡單請求與非簡單請求。iOSCookie
- HttpSendRequest向服務端傳送資料,構造請求http頭薦HTTP服務端
- .NET Core實戰專案之CMS 第十四章 開發篇-防止跨站請求偽造
- 狀態碼告知從伺服器端放回的請求結果伺服器
- 跨域請求後端配置跨域後端