upload-labs解题

Pass-01 js检查

条件:前端对后缀名(.jpg/.png/.gif)做限制
将.php文件修改为.jpg/.png/.gif

Pass-02 验证Content-type

条件:后端对MIME做限制
在这里插入图片描述

Pass-03 黑名单绕过

条件:后端对后缀名(.asp/.aspx/.php/.jsp)做限制(黑名单)
可以上传.phtml .phps .php5 .pht
前提是apache的httpd.conf中有如下配置代码

AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml

在这里插入图片描述

Pass-04 .htaccess绕过

条件:.htaccess绕过
黑名单拒绝了几乎所有有问题的后缀名,除了.htaccess
前提条件(1.mod_rewrite模块开启。2.AllowOverride All)
因此先上传一个.htaccess文件,内容如下:

SetHandler application/x-httpd-php 

这样所有文件都会当成php来解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Pass-05 点+空格+点绕过

可以用第十关的方法来进行绕过也就是点空格点绕过(. .),因为它的验证首先会删除文件名两端的空格,但是我们构造的后缀名的两端没有空格,所以此验证无效,接着它会删除我们后缀名中最后的一个点,然后又会过滤掉我们的一个空格,此时上传文件的后缀名为.php.不在黑名单里面,所以可以成功被上传,而且又因为windows操作系统的原因,文件后缀名最后的点也会被删除,所以我们就完成了绕过。
在这里插入图片描述
在这里插入图片描述

补充:其实这道题要考察的是通过**.user.ini**进行绕过,但尝试了几次,没成功,以后成功了,在补充这一种方法。

Pass-06 大小写绕过

条件:大小写绕过
在这里插入图片描述

Pass-07 空格绕过

条件:空格绕过
这题没有对后缀名进行去空,因此可以在后缀名加空格绕过
在这里插入图片描述

Pass-08 点绕过

条件:点绕过
没有对后缀名末尾的点进行处理,利用windows特性,会自动去掉后缀名中最后的”.”,可在后缀名中加”.”绕过:
在这里插入图片描述

Pass-09 ::$DATA绕过

没有对后缀名中的’:: D A T A ’ 进 行 过 滤 。 在 p h p + w i n d o w s 的 情 况 下 : 如 果 文 件 名 + " : : DATA’进行过滤。在php+windows的情况下:如果文件名+":: DATAphp+windows+"::DATA"会把:: D A T A 之 后 的 数 据 当 成 文 件 流 处 理 , 不 会 检 测 后 缀 名 . 且 保 持 " : : DATA之后的数据当成文件流处理,不会检测后缀名.且保持":: DATA,."::DATA"之前的文件名。利用windows特性,可在后缀名中加” ::$DATA”绕过:
在这里插入图片描述

Pass-10 点+空格+点绕过

代码先是去除文件名最后所有的.,再去除文件名前后的空格,再通过strrchar函数来寻找.来确认文件名的后缀,但是最后保存文件的时候没有重命名而使用的原始的文件名,导致可以利用1.php. .(点+空格+点)来绕过
在这里插入图片描述

Pass-11 双写绕过

黑名单过滤,将黑名单里的后缀名替换为空且只替换一次,因此可以用双写绕过
在这里插入图片描述

Pass-12 00截断

白名单判断,但$img_path是直接拼接,因此可以利用%00截断绕过。

截断条件:php版本小于5.3.4,php的magic_quotes_gpc为OFF状态。

在这里插入图片描述

Pass-13 00截断

save_path参数通过POST方式传递,还是利用00截断,因为POST不会像GET对%00进行自动解码,所以需要在二进制中进行修改
在这里插入图片描述
在这里插入图片描述

Pass-14 图片马绕过

通过读文件的前2个字节判断文件类型,因此直接上传图片马即可,制作图片马:
在这里插入图片描述
在这里插入图片描述
直接访问图片并不能把图片当做PHP解析,因此还需要利用文件包含漏洞
在这里插入图片描述

Pass-15 getimagesize()-图片马

这题是用getimagesize函数判断文件类型,还是可以图片马绕过,方法同pass-14
在这里插入图片描述

Pass-16 exif_imagetype()-图片马

这里用到php exif_imagetype模块来判断文件类型,用图片马绕过,方法同pass-14

Pass-17 二次渲染

判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染,具体可以参考链接: 这篇文章 。可是在复现的时候还是因为二次渲染以后php代码还是出被修改。

Pass-18 条件竞争

这里是条件竞争,先将文件上传到服务器,然后判断文件后缀是否在白名单里,如果在则重命名,否则删除,因此我们可以上传1.php只需要在它删除之前访问即可,可以利用burp的intruder模块不断上传,然后我们不断的访问刷新该地址即可。
在这里插入图片描述
在这里插入图片描述

Pass-19 条件竞争

也存在条件竞争的问题,不过这题对文件后缀名做了白名单判断,然后会一步一步检查文件大小、文件是否存在等等,因此可以通过不断上传图片马,由于条件竞争可能来不及重命名,从而上传成功。
在这里插入图片描述
在这里插入图片描述

Pass-20 00截断

move_uploaded_file()函数中的img_path是由post参数save_name控制的,因此可以在save_name利用00截断绕过
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值