姿势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
点击下方小卡片或扫描下方二维码观看更多技术文章
师傅们点赞、转发、在看就是最大的支持