SSRF漏洞簡單分析


什么是SSRF漏洞

SSRF(服務器端請求偽造)是一種由攻擊者構造請求,服務器端發起請求的安全漏洞,所以,一般情況下,SSRF攻擊的目標是外網無法訪問的內部系統。

SSRF漏洞形成原理。

SSRF的形成大多數是由於服務端提供了從其他服務器應用獲取數據的功能且沒有對目標地址做過濾和限制,比如操作服務端從指定URL獲取網頁文本,加載指定地址的圖片,利用的是服務端的請求偽造。所以,SSRF是利用存在缺陷的Web應用作為代理,攻擊遠程和本地的服務器。
主要的攻擊方式:

  • 對外網所在內網、本地進行端口掃描,獲取一些服務的banner信息。
  • 攻擊運行在內網或本地的應用程序。
  • 對內網Web應用進行指紋識別,識別企業內部的資產信息。
  • 利用file協議讀取本地文件等等
    參考文獻:《Web安全攻防》

SSRF漏洞代碼分析

<?php
function curl($url){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_HEADER,0);
    curl_exec($ch);
    curl_close($ch);
}
$url = $_GET['url'];
curl($url);
?>

在ssrf頁面中,程序獲取GET請求url,通過curl_init()初始化curl組件后,將參數帶入curl_setopt($ch,CURLOPT_URL,$url),然后調用curl_exec請求該url,服務會將banner信息返回客戶端。功能是獲取url的內容並返回頁面上。例如,請求百度。

簡單利用

如果我們將url改為本地文件路徑,我們可以通過file協議讀取本地文件。例如我們在參數url后面接file:///c:/windows/win.ini

SSRF修復建議

  1. 限制請求的端口只能為Web端口,只允許訪問HTTP/HTTPS的請求
  2. 限制不能訪問內網IP
  3. 屏蔽返回的詳細信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM