ssrf原理與實踐

2022-05-07 10:55:06 字數 2316 閱讀 4297

ssrf簡介

​ ssrf(server-side request forgery,服務端請求偽造),是攻擊者讓服務端發起構造的指定請求鏈結造成的漏洞。

​ 由於存在防火牆的防護,導致攻擊者無法直接入侵內網;這時攻擊者可以以伺服器為跳板發起一些網路請求,從而攻擊內網的應用及獲取內網資料。

ssrf形成原因

​ 最常見的例子:攻擊者傳入乙個未經驗證的url,後端**直接請求這個url,就會造成ssrf漏洞。

ssrf與csrf的區別

​ csrf是伺服器端沒有對使用者提交的資料進行隨機值校驗,且對http請求包內的refer欄位校驗不嚴,導致攻擊者可以利用使用者的cookie資訊偽造使用者請求傳送至伺服器;

​ ssrf是伺服器對使用者提供的可控url過於信任,沒有對攻擊者提供的url進行位址限制和足夠的檢測,導致攻擊者可以以此為跳板攻擊內網或者其它伺服器。

ssrf的型別

1)顯示對攻擊者的響應(basic):在伺服器獲取攻擊者要求的url後,把響應傳送回攻擊者。

2)不顯示響應(blind):在伺服器獲取攻擊者要求的url後,不會把響應內容傳送給攻擊者,需要通過抓包或檢視伺服器日誌判斷是否存在服務端請求偽造漏洞。

利用ssrf可以實現的攻擊

1)獲取web應用可達伺服器的banner資訊(如軟體開發商、軟體名稱等),以及收集內網web應用的指紋識別(如開放的埠、中介軟體版本等),根據這些資訊再進行進一步的滲透;

2)攻擊執行在內網的系統或應用程式,獲取內網系統弱口令進行內網漫遊,對有漏洞的內網web應用實施攻擊獲取webshell(如struts2命令執行,discuz!論壇ssrf通過redis實施getshell等);

3)利用有脆弱性的元件結合ftp://,file:///,gopher://,dict://等協議實施攻擊(如ffmpeg任意檔案讀取,xxe攻擊等)。

拓展攻擊面

結合gopher協議攻擊內網ftp、telnet、redis、fastcgi、memcache,也可以進行get、post請求。

在自己的伺服器上開啟apache服務/etc/init.d/apache2 start

這裡 我們的攻擊機器ip為10.1.1.200

無回顯的框內輸入

檢視apache日誌可以看到請求,證明有ssrf

無回顯的ssrf也可以用 tcpdump抓包測試

kali機器開啟乙個終端,使用tcpdump抓包:

tcpdump -nne -i eth0 port 6666

-i:監視指定網路介面的資料報。

通過dict協議獲取伺服器端口執行的服務

輸入 dict:

dict: 探測埠

在『有回顯的ssrf』處輸入:file:///etc/passwd

SSRF原理利用與防禦

xiaoli s blog ssrf作為不可忽視的漏洞,地位舉足輕重,本篇就ssrf的原理 利用 防禦進行乙個小小的總結。0x01 ssrf原理 1 什麼是ssrf 伺服器請求偽造,攻擊者利用可以發起網路請求的服務來對其他網路服務進行攻擊。2 ssrf的作用 一般用於探測內網埠資訊,檢視檔案,甚至可...

SSRF漏洞原理介紹

比如一家公司的內網 你是訪問不到的 你只能訪問該公司的外部伺服器 可是有一天你通過伺服器訪問到了該公司的內網 這就是ssrf漏洞 記住curl是乙個函式 php中使用curl實現get和post請求的方法 curl init 初始化乙個新的會話 curl exec 抓取url並把它傳遞給瀏覽器 cu...

ssrf漏洞原理和案例演示

一 定義 ssrf server side request forgery 伺服器端請求偽造 其形成的原因大都是由於服務端提供了從其他伺服器應用獲取資料的功能,但又沒有對目標位址做嚴格過濾與限制 導致攻擊者可以傳入任意的位址來讓後端伺服器對其發起請求,並返回對該目標位址請求的資料 資料流 攻擊者 伺...