CISCN 2019 半决赛
题目概述
题目名称:dabaojian(大宝剑)
本题是一道 Web 渗透类 CTF 题目,主要考察 PHP 弱类型比较漏洞的利用。通过注册账号、购买商品、利用类型比较漏洞获取足够金钱,最终进入后台完成攻击。
解题步骤
1. 注册账号
访问网站首页,注册一个普通用户账号。

2. 进入购买中心
登录成功后,进入购买中心页面,可以购买一些商品。

3. 利用 PHP 弱类型漏洞
推测后台可能利用了 PHP 的弱类型判断(== 而非 ===),构造相应的 payload 进行攻击。

Tip
PHP 弱类型比较原理:在 PHP 中,== 运算符会在比较前进行类型转换。例如 "abc" == 0 会返回 true,因为字符串 "abc" 被转换为整数 0。利用这一点,可以绕过一些金额、权限等数值型比较。
4. 获取足够金钱
重新发送请求后,成功获得足够的金钱,用于购买"大宝剑"。

5. 进入后台爆破
购买完成后,进入后台管理页面,使用 Burp Suite 进行爆破。
Warning
后台爆破需要使用合适的字典,并合理设置请求频率,避免触发安全限制。
总结
| 考点 | 说明 |
|---|---|
| PHP 弱类型比较 | == 与 === 的区别,类型转换漏洞 |
| Web 渗透流程 | 注册 → 功能使用 → 漏洞利用 → 权限提升 |
| Burp Suite | 请求拦截与重放、爆破模块使用 |
Note
本题核心在于发现并利用 PHP 弱类型比较漏洞。在实际渗透测试中,应特别注意后端代码中使用的比较运算符,避免类似漏洞。