整理下文件上传的的各种姿势
2022-12-23 19:36:3 Author: 猪猪谈安全(查看原文) 阅读量:17 收藏

姿势1:就比较简单了,直接抓包,修改后缀名就行了。

姿势2:如果目标是基于和黑名单过滤的,可能会有一些没有过滤;可以参考一下这些后缀方式(不限于此)

.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf|.htaccess

姿势3.htaccess绕过,

前提条件(1.mod_rewrite模块开启。2.AllowOverride All
因此先上传一个.htaccess文件,内容如下:

SetHandler application/x-httpd-php 

这样再上传一个php图片马,即使是png/jpg后缀也会以也会以php格式解析。

姿势4:大小写绕过

姿势5:空格绕过,若目标未对上传的文件格式进行去空格处理,即可绕过检测

姿势6:点绕过,没有对后缀名末尾的点进行处理,利用windows特性,会自动去掉后缀名中最后的”.”,可在后缀名中加”.”绕过

姿势8::$DATA绕过

没有对后缀名中的’::$DATA’进行过滤。在php+windows的情况下:如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名。利用windows特性,可在后缀名中加” ::$DATA”绕过:

姿势9:双写绕过  ,将黑名单里的后缀名替换为空且只替换一次,因此可以用双写绕过  

1.pphphp

姿势9:图片马绕过,目标不仅检测上传后缀,还检查上传的前部分字节信息。但是,后缀不是php并不会执行,还需要利用目标的文件包含漏洞(如果有的话)。

姿势10:二次渲染绕过(这个三言两语很难说清楚,我感觉哈)

https://xz.aliyun.com/t/2657#toc-13

姿势11  %00截断,十六进制的0x00  也行等等

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束

php版本要小于5.3.4,5.3.4及以上已经修复该问题

magic_quotes_gpc需要为OFF状态

还有某些情况下的中文截断也会有意想不到的效果

1.昂php

姿势12:条件竞争:


就是将文件上传给服务器时,服务器判断文件后缀是否在白名单里,如果在则重命名,否则删除,因此我们可以上传1.php只需要在它删除之前访问即可。

此种方法也可以应用到其他方面,比如我有十元钱我去购买十元的商品,服务器需要经过一段时间的处理,然后将我的余额变为0,这时候我可以发送大量的购买请求,只要我够快我就可以白嫖(当然也是有解决方法的  少年我这有一把'乐观锁',和一把'悲观锁'你想要哪个)

ok,更多猥琐绕过姿势,自己探索咯。

对了,靶场地址安排上:

https://github.com/c0ny1/upload-labs

 点击下方小卡片或扫描下方二维码观看更多技术文章

师傅们点赞、转发、在看就是最大的支持


文章来源: http://mp.weixin.qq.com/s?__biz=MzIyMDAwMjkzNg==&mid=2247507148&idx=1&sn=d44b7e1e1639bf5e33e0bf18fa3caec0&chksm=97d033dba0a7bacdea858c91931573ba4560966b91f9a6d348e32fdac6ef3bd8e1d642147622#rd
如有侵权请联系:admin#unsafe.sh