-
-
[原创]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期)!
赞赏
他的文章
赞赏
雪币:
留言: