第一关
这里我们上传php文件抓包,数据不经过brup,
我们修改文件后缀为jpg试试,我们看到数据经过后端了,并将hacker.jpg后缀改回php
我们看到上传成功
右击新建标签浏览图片得到上传文件的目录
第二关
上传文件看看先,它数据经过后端
这里我们抓包看看,我们可以看到他是类型错误,我们将Content-Type: application/octet-stream
改为Content-Type: image/png在发送数据包
这里我们看到上传成功
在查看文件路径
第三关
这里我们看到他对文件上传进行了限制
我们抓个数据包,并修改数据包如下,我们进行双写绕过
上传成功
这里我们将文件后缀改回php即可查询
第四关
本关需要用到apache的.htaccess漏洞,他将4.jpg当成php文件执行
文件内容为
<FilesMatch "4.jpg">
Sethandler application/x-httpd-php
</FilesMatch>
上传4.jpg
第五关
这里我们使用大写PHp去上传
第六关
对比前面代码发现本关没有首尾去空
抓包,此处php后加空格
第七关
和第六关一样,windows文件后缀名不能加’.',一样使用burp抓包然后后缀加一个点。
上传成功
第八关
查看关卡源码,对比第四关,发现少了去除字符串,和前面关卡一样,在burp中抓包在文件名后加::$DATA
第九关
查看源码,和前几关相比,本关明显不能按前几关的思路来绕过,仔细看了一下代码,发现没有循环验证,也就是说转换大小写去除空格什么的它只验证一次,所以我的思路是想把后缀改为.phP . .,直接开始实验。
成功绕过
第十关
本关可以采用点和空格相结合绕过
上传成功
第十一关
这里上传我们看到他把我们的php给过滤了
那么我们采用双写绕过
成功上传
第十二关
看源码,我们看到这关是白名单,只允许特定文件上传
这里我们可以使用%00截断,让文件以php运行
成功上传
第十三关
POST%00截断,我们在php后加入一个参数,并将其hex码改为00
上传成功
第十四关
直接上传图片码
文件上传成功
成功连接菜刀
第十五关
同上14关
第十六关
同上十四关
第十七关
上传二次渲染的图片码
上传成功
同上连接caidao
第十八关
这道题用了白名单过滤文件名后缀,然后检查了文件大小以及文件是否已经存在。文件上传之后又对其进行了重命名。
这里有一个细节,由于可能是这个靶场的作者的某种原因可能有误,上传的图片路径不是放在upload文件夹下
,所以我们要进去修改一下第18关的代码文件
我们可以采用竞争上传进行绕过
代码为
<?php @fputs(fopen('123.php',w),'<?php phpinfo();?>');?>
使用文件包含进行访问,因为上传后会进行重命名,所以我们就竞争上传后改名前的这一段时间进行操作,bp抓包多重复访问
上传成功
第十九关
直接上传jpg文件,并将保存名称写为.php./