babyupload
打开靶机
我们先试着上传一个shell试试
这道题用burpsuite抓包,用bp来发
上传之后发现
后缀名不能有php,那我们就不能用php的别名了
那我们上传一下jpg格式的shell试试
要把那个content/type改成 image/jpeg的,如下图所示,再传一次
回显结果为:
可能是对这个标签的检测,我们改成脚本标签试试
也就是
<script language="php">eval($_POST['cmd']);</script>
此时可以发现上传成功
此时这个html下的路径就是这个shell.jpg所在的位置,我们此时可以访问到
访问后是这个样子
但是我们这个时候无法利用这个shell
我们此时可以上传一个.htaccess
加上这句payload
SetHandler application/x-httpd-php
它的作用就是可以使当前目录下的所有文件都解析为php文件
此时,我们发现也可以上传成功
此时再次访问http://2ccd10ec-805e-4d8a-8e33-929bc1900825.node4.buuoj.cn:81/upload/81ce2ba60d2226f792a4330b5e4cc864/shell.jpg
就不是图片了,是一片空白
此时就可以成功利用这个shell了
搜索发现,flag并不在这个phpinfo()当中
我们尝试一下用system命令列出所有文件试试
发现这个system命令被禁用了
查看phpinfo(),发现确实是被禁用了
我们此时可以用php的函数scandir()来读取文件的路径相关信息
此时,我们发现这个路径下有一个flag文件,我们只需要读取这个文件就可以了
就得到flag了
flag{105b8b8a-6f9d-48bc-8bdd-14ff11f41cd0}