Flask_FileUpload
启动靶机
一个文件上传界面,但是浏览文件处,无法上传php结尾文件,应该是前端限制了,f12查看源代码
可以发现源代码中限制了只能上传.jpg和.png文件,把accept属性删除,再尝试传一句话木马
看来后端也有校验,先判断黑白名单,尝试传一个.ph后缀的文件
上传失败,看来是白名单限制,把.ph改成jpg上传
可以看到上传成功,并返回了路径,访问一下/app/upload/shell.jpg
竟然报了404,难道没传上去???
右键查看一下上传成功的源代码
好家伙,被骗了,页面显示上传成功,但源代码里显示没有上传成功。再回头看一下抓包内容,总感觉下面一行怪怪的
好家伙,这不是python报错???难道我上传的内容被当成了python脚本执行了?
直接上传把shell内容改成脚本上传试试
import os
os.system('ls ../')
成功执行ls命令,可以看到有个flag文件,cat一下
import os
os.system('cat ../flag')
拿到flag flag{587f11bc5bc757ad3e7e58dd6810fc33}