码迷,mamicode.com
首页 > Web开发 > 详细

一个非常详细测试上传的姿势

时间:2017-05-26 00:47:30      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:截断   界面   允许   ==   width   path   form   cms   blank   

【情况】
上传点界面:
技术分享



技术分享
这个上传点只有一个界面,且上传后会自动删除。成功突破会返回一串秘钥。



上传点抓包界面如下:
技术分享
技术分享



上传一个普通图片,返回路径upload/20160226222154_920.jpg


可以看到,整个上传包没有任何多余的参数。除了文件头+本地文件名+图片内容+按钮
就没别的东西了。




发现会自动重命名,然后下面就是想办法搞清楚它的上传验证机制,通过以下动作探测。


1.验证允许上传的文件后缀类型。
1-1.上传.jpg,成功上传并返回路径。
【得知】
上传文件被重命名

1-2.上传.gif,成功上传但是返回的是.jpg
1-2-1为了验证是否支持.gif,所以把文件头和文件类型都改为gif的,仍然返回后缀为jpg。
【得知】
除白名单以外的后缀类型(不识别的后缀类型),均提交为jpg后缀上传。

1-3.上传.php后缀则失败。
1-3-1.上传.php1或1php或pHp或1phP1同样失败。
1-3-2.考虑用冷格式代替脚本,故上传.cdx和.htr 上传成功但是返回后缀为jpg。
【得知】
匹配到后缀中含有php则上传失败,并且会转为小写。

1-4.把上传类型image/gif修改为php的application/octet-stream 上传.php上传失败,上传.jpg同样失败。
【得知】
验证了上传类型

1-5.上传x.php.jpg返回后缀为jpg。
【得知】
上传文件是从右边匹配的,反之应该上传失败的。

1-6 为了测试截断的支持情况。故;
1-6-1.上传x.jpg□.php返回正常jpg路径。
1-6-2.上传x.php□.jpg则上传失败。
【得知】
1-6-2上传失败说明被成功截断了。至于上传失败的原因在于1-3

1-7.上传x.php.返回jpg后缀。
【得知】
.作为特殊符号,不在后缀匹配范围内。所以.php.可以上传成功。是因为把.作为后缀的一部分,所以上传按照1-2的原则来上传。

1-8.上传x.j正常返回。上传x.正常返回。上传x正常返回。上传.正常返回。
.上传成功

通过以上分析得出此上传点;
1.支持截断,但是没什么卵用。因为截断后的x.php不给上传。
2.只要匹配到后缀有php,则上传失败。不识别的脚本格式均作为jpg上传。

附上传失败的截图:
技术分享





了解了他的上传机制以后基本上就没有思路了,主要是无处下手。别说path改路径之类的了,就连一个多余的参数都没有。除了文件头+本地文件名+文件内容+按钮。再也没有多出一样东西。


然后想着既然确定了验证上传文件类型,那我们在添加个php的类型。
1.添加好以后是两个上传类型并存,我们先试试jpg能不能正常上传。测试定义两种类型对上传的影响。
技术分享

可以看到,左边是image/gif(只要是图片类型都可以) 右边是php的类型application/octet-stream
可以正常上传。


接着上传php,如下图:
技术分享


上传失败。
如果把文件类型定义为application/octet-stream 那么上传任何后缀都是失败的,但是gif和jpg的就可以。还是说明1.验证上传类型为图片 2.后缀验证。




虽然搞清了上传验证规则,但是没卵用。还是突破不了,非常遗憾。直到两天后,看到答案以后。整个人脑子都不好使了。




【突破方法】
将multipart/form-data的大小写改下就可以绕过了


参考资料:http://www.wooyun.org/bugs/wooyun-2015-0125982 这是逐浪CMS爆出的一个漏洞。




我看到突破方法以后很失望。首先是这种情况极少,对实际渗透的意义不大。再者就是也没有给出分析过程和原理。
这样我唯一的收获就是:遇到类似验证的上传点可以改下文件类型大小写试试。


又看了一下乌云给出的上传代码。
技术分享


大概能看出来原理了。唉,还是有点失望。不过对以后突破上传还是有帮助的。

一个非常详细测试上传的姿势

标签:截断   界面   允许   ==   width   path   form   cms   blank   

原文地址:http://www.cnblogs.com/test404/p/6906457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!