ssrf,server-side request forgery,服務端請求偽造,是一種由攻擊者構造形成由伺服器端發起請求的乙個漏洞。一般情況下,ssrf 攻擊的目標是從外網無法訪問的內部系統。
漏洞形成的原因大多是因為服務端提供了從其他伺服器應用獲取資料的功能且沒有對目標位址作過濾和限制。
攻擊者可以利用 ssrf 實現的攻擊主要有 5 種:
可以對外網、伺服器所在內網、本地進行埠掃瞄,獲取一些服務的 banner 資訊
攻擊執行在內網或本地的應用程式(比如溢位)
對內網 web 應用進行指紋識別,通過訪問預設檔案實現
攻擊內外網的 web 應用,主要是使用 get 引數就可以實現的攻擊(比如 struts2,sqli 等)
利用file
協議讀取本地檔案等
file_get_contents
<?phpif (isset($_post['url']))
echo $img;
?>
這段**使用file_get_contents
函式從使用者指定的 url 獲取。然後把它用乙個隨即檔名儲存在硬碟上,並展示給使用者。
fsockopen()
<?phpfunction getfile($host,$port,$link) else
fclose($fp);
return $contents;
} }?>
這段**使用fsockopen
函式實現獲取使用者制定 url 的資料(檔案或者 html)。這個函式會使用 socket 跟伺服器建立 tcp 連線,傳輸原始資料。
curl_exec()
<?phpif (isset($_post['url']))
?>
使用curl
獲取資料。
根據伺服器的返回資訊進行判斷,大部分應用不會判別埠,可通過返回的 banner 資訊判斷埠狀態。
後端實現
<?phpif (isset($_post['url']))
?>
構造乙個前端頁面
form>
script>
body>
html>
請求非 http 的埠可以返回 banner 資訊。
或可利用 302 跳轉繞過 http 協議的限制。
輔助指令碼
<?php$ip = $_get['ip'];
$port = $_get['port'];
$scheme = $_get['s'];
$data = $_get['data'];
header("location: $scheme://$ip:$port/$data");
?>
SSRF(服務端請求偽造)
ssrf server side request forgery 伺服器端請求偽造 是一種由攻擊者構造形成由服務端發起請求的乙個安全漏洞。一般情況下,ssrf攻擊的目標是從外網無法訪問的內部系統。正是因為它是由服務端發起的,所以它能夠請求到與它相連而與外網隔離的內部系統 作為web安全萌新,以上晦澀...
SSRF 服務端請求偽造
ssrf,server side request forgery,服務端請求偽造,是一種由攻擊者構造形成由伺服器端發起請求的乙個漏洞。一般情況下,ssrf 攻擊的目標是從外網無法訪問的內部系統。漏洞形成的原因大多是因為服務端提供了從其他伺服器應用獲取資料的功能且沒有對目標位址作過濾和限制。也就是當前...
什麼是服務端偽造(SSRF)
譯者 neal1991 welcome to star my articles translator providing you advanced articles translation.any suggestion,please issue or contact me license mit 服...