ssrf:服務器端請求偽造,利用漏洞偽造服務器端發起請求,從而突破客戶端獲取不到數據限制
->利用一個可以發起網絡請求的服務,當作跳板來攻擊其他的服務器,通過web接口請求受保護的內網資源
引用百度:ssrf:服務器端請求偽造是一種由攻擊者構造形成由服務器端發起請求的一個安全漏洞.一般情況下,ssrf的目標是網絡的內部系統,(因為它是把目標網站當中間人,從而可以通過它攻擊外網無法訪問的內部系統)
ssrf形成的原因:
服務端提供了從其他服務器應用獲取數據的功能,且沒有對目標地址做過濾或者限制,比如說從指定url地址獲取網頁文本內容,加載指定地址的圖片,文檔等等.
首先,我們要對目標網站的架構了解,腦子了要有一個架構圖。比如 : A網站,是一個所有人都可以訪問的外網網站,B網站是一個他們內部的OA網站。
所以,我們普通用戶只可以訪問a網站,不能訪問b網站。但是我們可以同過a網站做中間人,訪問b網站,從而達到攻擊b網站需求。
正常用戶訪問網站的流程是:
輸入A網站URL --> 發送請求 --> A服務器接受請求(沒有過濾),並處理 -->返回用戶響應
【那網站有個請求是www.baidu,com/xxx.php?image=URL】
那么產生SSRF漏洞的環節在哪里呢?安全的網站應接收請求后,檢測請求的合法性
產生的原因:服務器端的驗證並沒有對其請求獲取圖片的參數(image=)做出嚴格的過濾以及限制,導致A網站可以從其他服務器的獲取數據
例如:
www.baidu.com/xxx.php?image=www.abc.com/1.jpg
如果我們將www.abd.com/1.jpg換為與該服務器相連的內網服務器地址會產生什么效果呢?
如果存在該內網地址就會返回1xx 2xx 之類的狀態碼,不存在就會其他的狀態碼
終極簡析: SSRF漏洞就是通過篡改獲取資源的請求發送給服務器,但是服務器並沒有檢測這個請求是否合法的,然后服務器以他的身份來訪問其他服務器的資源。
ssrf用途
那么SSRF 可以做什么呢?
1.內外網的端口和服務掃描
2.主機本地敏感數據的讀取,任意文件讀取
3.內外網主機應用程序漏洞的利用
4.內外網Web站點漏洞的利用
......
SSRF漏洞的尋找(漏洞常見出沒位置):
注:個人覺得所有調外部資源的參數都有可能存在ssrf漏洞
1)分享:通過URL地址分享網頁內容
2)轉碼服務
3)在線翻譯
4)圖片加載與下載:通過URL地址加載或下載圖片
5)圖片、文章收藏功能
6)未公開的api實現以及其他調用URL的功能
7)從URL關鍵字中尋找
share
wap
url
link
src
source
target
u
3g
display
sourceURl
imageURL
domain
...
SSRF漏洞的驗證方法:
1)因為SSRF漏洞是讓服務器發送請求的安全漏洞,所以我們就可以通過抓包分析發送的請求是否是由服務器的發送的,從而來判斷是否存在SSRF漏洞
2)在頁面源碼中查找訪問的資源地址 ,如果該資源地址類型為 www.baidu.com/xxx.php?image=(地址)的就可能存在SSRF漏洞
SSRF防御:
1.禁用不需要的協議.僅僅允許http和https請求.可以防止file://,gopher://,ftp://等引起的問題
2.統一錯誤信息,防止利用錯誤信息來判斷遠端服務器的端口狀態.
3,禁止302跳轉,或每跳轉一次檢查新的host是否為內網ip,后禁止
4.設置url名單或者限制內網ip.