继续ctf的旅程 开始攻防世界web高手进阶区的10分题 本文是Background_Management_System的writeup
进入界面
根据提示
应该要想办法获取管理员权限与数据库有关,可能存在sql注入关键词过滤,应该有地方需要绕过惯例源码+御剑 扫到www.zip 下下来
是个thinkphp 代码审计 又是代码审计 头秃
先看register 过滤很严格 似乎没有直接sql注入的办法
login 也是严格过滤 试了试万能密码 失败
userinfo 貌似严格过滤 但sql语句直接拼接 有漏洞 如果用户是admin'# sql语句就变成了
$sql="UPDATE users SET PASSWORD='$pass' where username='admin'"就可以修改admin的密码了
shell 需要内网就可以用system了 可能与ssrf有关
先获取admin权限
修改密码
登录admin
得到一个hint 应该是ssrf所在
那接下来就是找个协议进入内网 然后调用shell获取flag
做了些尝试 发现好些协议都被禁了
这里事后查了查 发现原题的源码里 有相关信息(如下) 不知道是真我没找到 还是攻防世界的问题
反正就是只有gopher协议能用
burp爆破端口 发现80端口可用
成功调用shell 然后出事了
查了查 gopher要对符号进行二次url编码, ?一定要二次编码 空格可以编码为%2b
pyaload
xinan/public/55ceedfbc97b0a81277a55506c34af36.php?url=gopher://127.0.0.1:80/_GET%20/xinan/public/shell.php%253Fcmd=cat%2B/flag得到flag
知识点
代码审计sql注入ssrfgopher协议参考
攻防世界 Background_Management_System WriteupSSRF Mysql 学习记录gopher 协议在SSRF 中的一些利用