cat
输入百度IP 显示错误
输入本地IP127.0.0.1 显示ping 命令 可能是框的命令执行 输入127.0.0.1|ls 127.0.0.1|phpinfo() 显示错误 可能是被过滤了
进行fuzz测试 fuzz.py 发现@未被过滤 Django 进行url编码的宽字节
http://124.126.19.106:50836/index.php?url=%80 显示源代码
输入http://124.126.19.106:50836/index.php?url=%79 %79变成Y
即url编码 见学习网站
网站是使用Django进行开发的,结合PHP可以通过在参数中注入@来读取文件的漏洞,依次查看python的配置文件和数据库得到flag的内容
payload:?url=@/opt/api/api/settings.py,获取数据库名
观察代码发现?/opt/api/database.sqlite3 @的话,会当成绝对路径,来读取文件,刚好@字符没被过滤。
payload:?url=@/opt/api/database.sqlite3
寻找flag
攻防世界cat
最新推荐文章于 2024-05-24 22:45:00 发布