# user.ini的利用
## 前言
在前段时间SUCTF 2019的比赛中做了一道名为CheckIn的文件上传题,学到了一种新的利用姿势——.user.ini。
原题的链接已经失效了,但SU的师傅们把题目源码贴在GitHub上了(感谢师傅们!!),如果想尝试的话可以下载源码复现,在这里放一下地址:
https://github.com/team-su/SUCTF-2019
## CheckIn题目分析
首先我们来看一下题目,首页就是一个简单的上传界面:
![](/static/lingzu/images/security_wiki/15906409413059.png)
我们先上传一个php文件试一下,显然是illegal的
![](/static/lingzu/images/security_wiki/15906409586298.png)
经过fuzz发现修改content-type和利用特殊扩展名php5、pht等都没有成功(当然也不会这么简单233)
然后我们把扩展名改为aaa试一下会怎样,发现回显:` in contents!,`那么就是说文件内容不能包含 上传过滤为黑名单,但php脚本文件应该是无法上传的
-> 存在文件头过滤,需要添加图片文件的文件头
-> 文件的内容不能包含,但可以上传
“`
![](/static/lingzu/images/security_wiki/15906410495693.png)
最后,我们访问`http://192.168.177.152:9021/uploads/6683eb5bfa1174bd139499256f60b7ab/index.php`
即可得到flag
#### .user.ini实战利用的可能性
综上所述.user.ini的利用条件如下:
* 服务器脚本语言为PHP
* 服务器使用CGI/FastCGI模式
* 上传目录下要有可执行的php文件
从这来看.user.ini要比.htaccess的应用范围要广一些,毕竟.htaccess只能用于Apache
但仔细推敲我们就会感到“上传目录下要有可执行的php文件”这个要求在文件上传中也比较苛刻,应该没有天才开发者会把上传文件放在主目录或者把php文件放在上传文件夹。
但也不是全无办法,如果我们根据实际情况配合其他漏洞使用可能会有奇效,前段时间我遇到一个CMS对上传时的路径没有检测../,因此导致文件可被上传至任意目录,这种情况下我们就很有可能可以利用.user.ini
除此之外,把.user.ini利用在隐藏后门上应该是个很好的利用方法,我们在存在php文件的目录下留下.user.ini和我们的图片马,这样就达到了隐藏后门的目的。
请登录后查看评论内容