SSRF攻擊原理

什麼是SSRF

一個對外的Web接口,改接口能讓用戶控制curl命令,去訪問別的web服務。php

簡圖以下
web

想象一下當用戶請求的baidu.com/x.php?image=google.com/1.jpg 改爲 baidu.com/x.php?image=private.com/php.info,是否是以爲本來不可能訪問到內網的主機,如今就很容易就能作到了。瀏覽器


原理

PHP代碼演示:curl

$url = $_GET['URL'];
curl($url);

function curl($url){
    $ch = curl_init(); // 初始化curl會話對象
    curl_setopt($ch,CURLOPT_URL,$url); // 抓取URL並把它傳遞給瀏覽器
    curl_setopt($ch,CURLOPT_HEADER,0); 
    curl_exec($ch); // 執行請求
    curl_close($ch);
}

1.查看代碼的時候檢查是否使用curl_setopt( )函數;
2.在看傳入的url是不是來自外部;函數


防禦

跳轉的url參數只能是白名單裏面的url。google

相關文章
相關標籤/搜索