首页
社区
课程
招聘
[原创]hitcon-2016-babytrick 解题报告
发表于: 2天前 526

[原创]hitcon-2016-babytrick 解题报告

2天前
526

1.题目概述
目标地址:

题目是 HITCON 2016 babytrick 的复现靶场,核心考点:

最终 flag:

2.访问源码
首页直接高亮源码:

关键入口:

也就是说,data 参数会被直接反序列化。

3.HITCON 类逻辑分析
类里有 3 个 private 属性:

析构函数:

利用思路:
构造一个 HITCON 对象,让:

对象生命周期结束时会自动触发 __destruct(),进而调用:

4.private 属性序列化格式
PHP 序列化 private 属性时,属性名不是普通字符串,而是:

所以:

序列化属性名应为:

完整字段写法:

长度为什么是 14?

同理:

5.初始化数据库
题目原始配置中 DEBUG 开关为:

当带上:

会执行建表和插入测试数据:

初始化命令:

6.写一个序列化构造器
保存为:

内容:

运行:

预期输出:

说明数据库初始化成功。
7.login 过滤逻辑
login() 里有关键过滤:

直接登录:

会被拦截。
因为 SQL 中一定包含:

触发:

8.绕过思路:PHP 与 MySQL 字符比较差异
使用:

替代:

原因:

所以:

可以匹配数据库里的:

这就是本题的关键。
9.验证字符等价
添加测试代码:

运行结果中可以看到:

说明 Òrange 在 MySQL 查询中成功匹配了 orange。
10. 获取密码
原题公开配置中:

数据库初始化时插入:

所以 admin 用户密码为:

11.构造最终 payload
登录参数:

未 URL 编码前的 payload 结构:

注意:

UTF-8 字节长度是 7,不是 6。
12.最终可复现脚本

运行:

输出:

13.解题链总结
完整链路:

最终:


[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

收藏
免费 0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回