攻防世界 web高手进阶区 10分题 Background

it2024-10-17  48

前言

继续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 中的一些利用
最新回复(0)