burpsuite爆破

1.什么是解析漏洞

以其他格式執(zhí)行出腳本格式的效果。

2.解析漏洞產(chǎn)生的條件

1.命名規(guī)則

2.搭建平臺(tái)

3.常見(jiàn)的解析漏洞

(一)IIS5.x-6.x解析漏洞

使用iis5.x-6.x版本的服務(wù)器,大多為windows server 2003,網(wǎng)站比較古老,開(kāi)發(fā)語(yǔ)句一般為asp;該解析漏洞也只能解析asp文件,而不能解析aspx文件。

1)目錄解析(6.0)

形式:www.xxx.com/xx.asp/xx.jpg

原理: 服務(wù)器默認(rèn)會(huì)把.asp,.asp目錄下的文件都解析成asp文件。

2)文件解析

形式:www.xxx.com/xx.asp;.jpg

原理:服務(wù)器默認(rèn)不解析;號(hào)后面的內(nèi)容,因此xx.asp;.jpg便被解析成asp文件了。

3)解析文件類(lèi)型

IIS6.0 默認(rèn)的可執(zhí)行文件除了asp還包含這三種 :

/test.asa

/test.cer

/test.cdx

(二)IIS7.5解析漏洞

IIS7.5的漏洞與nginx的類(lèi)似,都是由于PHP配置文件中,開(kāi)啟了cgi.fix_pathinfo,而這并不是nginx或者iis7.5本身的漏洞。

(三)apache解析漏洞

漏洞原理

Apache 解析文件的規(guī)則是從右到左開(kāi)始判斷解析,如果后綴名為不可識(shí)別文件解析,就再往左判斷。比如test.php.qwe.asd “.qwe”和”.asd” 這兩種后綴是apache不可識(shí)別解析,apache就會(huì)把wooyun.php.qwe.asd解析成php。

漏洞形式

www.xxxx.xxx.com/test.php.php123

其余配置問(wèn)題導(dǎo)致漏洞

(1)如果在 Apache 的 conf 里有這樣一行配置 AddHandler php5-script .php 這時(shí)只要文件名里包含.php 即使文件名是 test2.php.jpg 也會(huì)以 php 來(lái)執(zhí)行。

(2)如果在 Apache 的 conf 里有這樣一行配置 AddType application/x-httpd-php .jpg 即使擴(kuò)展名是 jpg,一樣能以php 方式執(zhí)行。

修復(fù)方案

1.apache配置文件,禁止.php.這樣的文件執(zhí)行,配置文件里面加入

2.用偽靜態(tài)能解決這個(gè)問(wèn)題,重寫(xiě)類(lèi)似.php.*這類(lèi)文件,打開(kāi)apache的httpd.conf找到LoadModule rewrite_module modules/mod_rewrite.so

把#號(hào)去掉,重啟apache,在網(wǎng)站根目錄下建立.htaccess文件

(四)Nginx解析漏洞

漏洞原理

Nginx默認(rèn)是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通過(guò)正則匹配設(shè)置SCRIPT_FILENAME。當(dāng)訪問(wèn)www.xx.com/phpinfo.jpg/1.php這個(gè)URL時(shí),$fastcgi_script_name會(huì)被設(shè)置為“phpinfo.jpg/1.php”,然后構(gòu)造成SCRIPT_FILENAME傳遞給PHP CGI,但是PHP為什么會(huì)接受這樣的參數(shù),并將phpinfo.jpg作為PHP文件解析呢?這就要說(shuō)到fix_pathinfo這個(gè)選項(xiàng)了。 如果開(kāi)啟了這個(gè)選項(xiàng),那么就會(huì)觸發(fā)在PHP中的如下邏輯:

PHP會(huì)認(rèn)為SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就會(huì)將phpinfo.jpg作為PHP文件來(lái)解析了

漏洞形式

www.xxxx.com/UploadFiles/image/1.jpg/1.php

www.xxxx.com/UploadFiles/image/1.jpg%00.php

www.xxxx.com/UploadFiles/image/1.jpg/%20\0.php

另外一種手法:上傳一個(gè)名字為test.jpg,然后訪問(wèn)test.jpg/.php,在這個(gè)目錄下就會(huì)生成一句話木馬shell.php。

總結(jié):

IIS6.0(x和腳本格式可以自定義)

文件命名形式:

正常命名:www.xxx.com/logo.jpg

觸發(fā)解析漏洞命名:www.xxx.com/logo.asp;.jpg或logo.asp;.x.jpg

文件夾命名形式:

正常命名:www.xxx.com/images/qq.jpg

觸發(fā)解析漏洞命名:www.xxx.com/image.asp/qq.jpg

IIS7.X(x自定義,只能執(zhí)行php)

正常命名:www.xxx.com/logo.jpg

觸發(fā)解析漏洞命名:www.xxx.com/logo.jpg/x.php

Apache(xxxx代表任意后綴,向上識(shí)別解析)

正常命名:www.xxx.com/a.php

觸發(fā)解析漏洞命名:www.xxx.com/a.php.xxxx

Nginx同iis7.x一致

4.一個(gè)簡(jiǎn)單的解析例子

測(cè)試環(huán)境為:windwos2003+iis6.0 注意:測(cè)試環(huán)境必須是在windwos2003+iis6.0的情況下才能成功解析,不能是小旋風(fēng)之類(lèi)的軟件來(lái)測(cè)試。

1)文件解析

直接訪問(wèn)圖片地址:http://192.168.87.129:8067/6.jpg

改變圖片后戳名為:6.asp;.jpg 再次訪問(wèn),就會(huì)發(fā)現(xiàn),jpg格式的圖片被解析成了asp格式的腳本語(yǔ)言。

還可以改成:6.asp;1234.jpg 效果是一樣的。

2)目錄解析

將文件改為一個(gè)正常的圖片格式文件,然后把它復(fù)制到一個(gè)test.asp的目錄下,然后方法,發(fā)現(xiàn)也能正常解析。

5.解析漏洞利用場(chǎng)景

解析漏洞主要用在文件上傳,上傳一些圖片什么的,然后通過(guò)解析漏洞,解析為動(dòng)態(tài)語(yǔ)言。而上傳很重要的一點(diǎn)就是命名規(guī)則,因?yàn)槿绻悴恢?服務(wù)器的文件命名規(guī)則的話,解析漏洞就不好利用,因?yàn)槲覀円@取我們上傳文件名,只有獲取到了上傳的文件名,才能進(jìn)行下一步操作,而命名規(guī)則無(wú)非就是以下兩種。

測(cè)試源碼:http://download.csdn.net/detail/u011781521/9766646下載好之后,在服務(wù)器中新建一個(gè)網(wǎng)站,并復(fù)制進(jìn)去。

然后訪問(wèn)首頁(yè):http://192.168.87.129:8898/Index.asp

后臺(tái)登錄地址:http://192.168.87.129:8898/Tcnet/Admin_Login.asp

文件上傳地址:http://192.168.87.129:8898/Upload.asp?formname=myform&editname=bookpic&uppath=upfile&&filelx=jpg用戶名與密碼: admin admin 注意:必須先要登錄才能使用文件上傳功能。

1.本地,服務(wù)端命名一致

1)filepath上傳利用

直接上傳解析漏洞命名的后門(mén)文件

訪問(wèn)這個(gè)地址:http://192.168.87.129:8898/Upload.asp?formname=myform&editname=bookpic&uppath=upfile&&filelx=jpg

先直接上傳一個(gè)asp的文件試試看能否上傳

發(fā)現(xiàn)并不能上傳。那我們就利用解析漏洞來(lái)試下看,把a(bǔ)sp改為fk.asp;.jpg(注:這里是圖片一句話)

OK能上傳。復(fù)制上傳好的地址,然后訪問(wèn)

圖片能查看,但是asp并沒(méi)有被解析。。。這是時(shí)候怎么辦,從新上傳xxx.asp;.jpg,然后用Burp來(lái)抓包,進(jìn)行修改。

右鍵發(fā)送到Repeater中去

修改其中的"filepath"在upfile/后面加上aaa.asp;. 然后Go一下你就會(huì)發(fā)現(xiàn),這里就成了一個(gè)解析漏洞了

然后訪問(wèn)下這個(gè)地址,asp成功的被解析了。

然后用菜刀進(jìn)行連接。

密碼就是"include";對(duì)應(yīng)的asp一句話<%execute request("include")%> ?然后點(diǎn)擊添加。。

連接成功。

2.本地,服務(wù)端命名不一致,基于時(shí)間,日期等命名

1)filetype突破

這里采用DVWA來(lái)測(cè)試,

然后點(diǎn)擊"View Source"查看源碼。

Low代碼:

[html]view plaincopy


if(?isset(?$_POST[?'Upload'?]?)?)?{??//判斷是否是post傳過(guò)來(lái)的,也就是判斷upload是否為空

$target_path=DVWA_WEB_PAGE_TO_ROOT.?"hackable/uploads/";???//取得網(wǎng)站絕對(duì)路徑,然后用絕對(duì)路徑+相對(duì)路徑得到一個(gè)完整的路徑。

$target_path.=basename(?$_FILES[?'uploaded'?][?'name'?]?);???//根據(jù)上面得到的完整路徑+得到的文件名。

if(?!move_uploaded_file(?$_FILES[?'uploaded'?][?'tmp_name'?],?$target_path?)?)?{??//判斷你上傳的圖片是否成功移動(dòng)到完整路徑中

//?No

echo?'

Your?image?was?not?uploaded.

';

}

else?{

//?Yes!

echo?"

{$target_path}?succesfully?uploaded!

";

}

}

?>

$_FILES['uploaded']['name']:取得$_FILES全局文件變量的上傳文件名

該源碼存在的問(wèn)題:

第一個(gè)沒(méi)有驗(yàn)證后綴格式

什么格式得可以上傳。。

第二個(gè)客戶端,服務(wù)端文件命名一致

Medium代碼:

[html]view plaincopy


if(?isset(?$_POST[?'Upload'?]?)?)?{

//?我們要往哪里寫(xiě)?

$target_path=DVWA_WEB_PAGE_TO_ROOT.?"hackable/uploads/";

$target_path.=basename(?$_FILES[?'uploaded'?][?'name'?]?);

//?文件信息

$uploaded_name=?$_FILES[?'uploaded'?][?'name'?];

$uploaded_type=?$_FILES[?'uploaded'?][?'type'?];

$uploaded_size=?$_FILES[?'uploaded'?][?'size'?];

//?判斷這是一個(gè)圖片嗎?

if(?(?$uploaded_type==?"image/jpeg"?||?$uploaded_type==?"image/png"?)?&&

(?$uploaded_size<100000)?)?{

//?我們可以移動(dòng)文件到上傳文件夾嗎?

if(?!move_uploaded_file(?$_FILES[?'uploaded'?][?'tmp_name'?],?$target_path?)?)?{

//?No

echo?'

Your?image?was?not?uploaded.

';

}

else?{

//?Yes!

echo?"

{$target_path}?succesfully?uploaded!

";

}

}

else?{

//?Invalid?file

echo?'

Your?image?was?not?uploaded.?We?can?only?accept?JPEG?or?PNG?images.

';

}

}

?>

$_FILES['uploaded']['name'];取得$_FILES全局文件變量的上傳文件名

$_FILES['uploaded']['type'];取得$_FILES全局文件變量的上傳文件類(lèi)型

$_FILES['uploaded']['size'];取得$_FILES全局文件變量的上傳大小

驗(yàn)證文件上傳類(lèi)型及大小,還是本地,服務(wù)端命名一致

然后我們來(lái)上傳個(gè)asp文件用Burp抓包,看是否能成功上傳。

攔截到之后發(fā)送到Repeater,然后go一下

上傳失敗。。。這就很好奇了,明明這里沒(méi)有驗(yàn)證文件后戳名,為什么還是上傳不了???? 但是,他這里驗(yàn)證了文件類(lèi)型!!我們看下上傳的文件是什么類(lèi)型的

看它上傳的類(lèi)型為:application/octet-stram 所以他把上傳的asp當(dāng)做application來(lái)處理里。

然后我們改一下content-type的類(lèi)型為:image/jpeg

再次GO一下,發(fā)現(xiàn)上傳成功了。

2)%00截?cái)啵航財(cái)嘧址?/b>

注意:數(shù)據(jù)包修改%00,務(wù)必進(jìn)行url編碼

把6.asp;.jpg改為6.asp%00.jpg

然后選中右鍵把%00進(jìn)行url編碼下。

這樣的話,就把.jpg給截?cái)嗔?,然后就變成?.asp。

High代碼:

[html]view plaincopy


if(?isset(?$_POST[?'Upload'?]?)?)?{

//?我們要往哪里寫(xiě)?

$target_path=DVWA_WEB_PAGE_TO_ROOT.?"hackable/uploads/";

$target_path.=basename(?$_FILES[?'uploaded'?][?'name'?]?);

//?文件信息

$uploaded_name=?$_FILES[?'uploaded'?][?'name'?];

$uploaded_ext=substr(?$uploaded_name,?strrpos(?$uploaded_name,?'.'?)?+?1);

$uploaded_size=?$_FILES[?'uploaded'?][?'size'?];

$uploaded_tmp=?$_FILES[?'uploaded'?][?'tmp_name'?];

//?判斷是否是圖片?

if(?(?strtolower(?$uploaded_ext?)?==?"jpg"?||?strtolower(?$uploaded_ext?)?==?"jpeg"?||?strtolower(?$uploaded_ext?)?==?"png"?)?&&

(?$uploaded_size<100000)?&&

getimagesize(?$uploaded_tmp?)?)?{

//?我們可以移動(dòng)文件到上傳文件夾嗎?

if(?!move_uploaded_file(?$uploaded_tmp,?$target_path?)?)?{

//?No

echo?'

Your?image?was?not?uploaded.

';

}

else?{

//?Yes!

echo?"

{$target_path}?succesfully?uploaded!

";

}

}

else?{

//?Invalid?file

echo?'

Your?image?was?not?uploaded.?We?can?only?accept?JPEG?or?PNG?images.

';

}

}

?>

strrpos( $uploaded_name, '.' ) + 1 的作用就是去文件的最后一個(gè)點(diǎn)

例如:

www.jpg.zip.txt.asp

他就會(huì)截取最后一個(gè)點(diǎn),所以是繞不過(guò)的。

然后下面又是一個(gè)判斷。格式必須是圖片型的才能執(zhí)行下面的代碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文件上傳漏洞是指用戶上傳了一個(gè)可執(zhí)行的腳本文件,并通過(guò)此腳本文件獲得了執(zhí)行服務(wù)器端命令的能力。這種攻擊方式是最為直...
    付出從未后悔閱讀 1,250評(píng)論 0 4
  • (源自摘抄整理)https://www.91ri.org/11494.html Webshell實(shí)現(xiàn)與隱藏探究 一...
    JackyTsuuuy閱讀 21,211評(píng)論 2 13
  • 漏洞挖掘與利用 測(cè)試環(huán)境的搭建 引言 為什么要搭建本地測(cè)試環(huán)境?我想下面的東西能夠回答你的疑惑。 第二百八十五條 ...
    作業(yè)沒(méi)寫(xiě)完閱讀 3,546評(píng)論 0 4
  • 文/Screalling 社交與交友,看似都是與人打交道,但其實(shí)當(dāng)中的區(qū)別十分微妙,毫不夸張的來(lái)說(shuō),不少的我們將這...
    蒼木幽林閱讀 1,405評(píng)論 0 2
  • 【上一章】超凡探長(zhǎng)(五)(目錄) 這天譚銘去局里報(bào)到去了,孟凡來(lái)到偵探社,喝著牛奶吃著三明治。早餐還沒(méi)吃完就接到警...
    熊六閱讀 300評(píng)論 0 2

友情鏈接更多精彩內(nèi)容