uoload-labs pass1-21关详解

该博客围绕文件上传绕过展开,涵盖二十一个关卡。介绍了多种绕过方法,如删除判断函数、修改content - type、利用黑名单和白名单规则,采用大小写、去空、双写、00截断、二次渲染、条件竞争、文件解析漏洞等技巧,还涉及抓包改参等操作。

第一关

发现有一个checkFile()函数,推测可能是这个函数进行判断的,我们把它删除后再上传。
上传成功
在这里插入图片描述

第二关

仅仅判断content-type,于是修改content-type绕过:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

第三关

发现是黑名单判断,于是尝试用php3,phtml绕过
在phpstudy的配置文件httpd-conf取消注释
在这里插入图片描述在这里插入图片描述

第四关

虽然还是黑名单,但几乎过滤了所有有问题的后缀名,除了.htaccess,于是首先上传一个.htaccess内容如下的文件:

在这里插入图片描述再上传图片马
在这里插入图片描述

第五关

还是黑名单,加上了.htaccess,但是没有将后缀进行大小写统一,于是可以通过大小写绕过:
windows忽略大小写
直接在后面干数字
在这里插入图片描述

第六关

还是黑名单,但是没有对后缀名进行去空处理,可在后缀名中加空绕过:
php文件后缀大小写
在这里插入图片描述

第七关

后面加"."
在这里插入图片描述

第八关

后缀加点,这里加俩
在这里插入图片描述

第九关

后缀加::$DATA
在这里插入图片描述

第十关

黑名单过滤,注意第15行和之前不太一样,路径拼接的是处理后的文件名,于是构造info.php. . (点+空格+点),经过处理后,文件名变成info.php.,即可绕过。
在这里插入图片描述

第十一关

依旧是黑名单过滤,注意到,这里是将问题后缀名替换为空,于是可以利用双写绕过:
在这里插入图片描述在这里插入图片描述

第十二关

.条件:php版本小于5.3.4 2、php.ini的magic_quotes_gpc为OFF状态
知识点:这里利用的是00截断。move_uploaded_file函数的底层实现类似于C语言,遇到0x00会截断。
看到是白名单判断,但是$img_path直接拼接,因此可以利用%00截断绕过
在这里插入图片描述

第十三关

这题和上一题基本一样,只是save_path不在URL中了,而在POST数据里面,由于POST里面的数据不会被url自动解码,所以要稍微改变一下,首先,先改好路径,然后再路径后面加上一个字符,什么字符都可以,这里我为了方便用+号。

因为是十六进制所以这种截断叫做是0x00截断,其实是%00截断最终被url解码还是会变成0x00的。在url中%00表示ascll码中的0,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。这是一样的道理,所以这里还有另外一种做法。
在这里插入图片描述在这里插入图片描述

第十四关

需要上传图片木马
在这里插入图片描述
正常是可以上传上的,因为本身就是jpg格式
在这里插入图片描述访问查看居然是正常页面
在这里插入图片描述以文本方式打开图片马,发现php代码前面为乱码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值