php-type-juggling
PHP Type Juggling 攻击方法论
相关 skill:PHP disable_functions/open_basedir 绕过 →
php-bypass;反序列化(PHP unserialize 利用) →deserialization-methodology;Web 加密攻击(哈希比较绕过) →crypto-web-attack
PHP 的弱类型系统是其最大的安全隐患之一。== 运算符在比较前会做类型转换,导致看似不同的值被判定为相等。
Phase 0: 快速识别(10 秒判断)
看到以下任意信号,立即怀疑 type juggling:
| 信号 | 判断 |
|---|---|
| PHP 5.x(尤其 5.6 及以下) | 高概率,== 随处可见 |
| 错误响应中泄露了输入的 MD5/SHA1 哈希 | 极强信号 → Magic Hash |
| 登录/认证页面,PHP 后端 | 检查是否 == 比较 |
| JSON API 接受 PHP 后端处理 | 可以发送 true/0/[] 类型 |
源码中出现 ==、strcmp、md5() |
直接利用 |
| "password incorrect" 但泄露哈希格式 | Magic Hash 场景 |
More from wgpsec/aboutsecurity
crypto-web-attack
Web 应用中的密码学攻击。当发现 Padding Oracle 错误信息、CBC 模式加密的 Token、可预测的随机数/Token、哈希长度扩展攻击机会时使用。覆盖 Padding Oracle(含 PadBuster 完整用法)、CBC bit-flip、弱随机数、哈希长度扩展、ECB 块重排。注意:JWT 攻击请使用 jwt-attack-methodology,Cookie 分析请使用 cookie-analysis
13ctf-crypto
CTF 密码学攻击技术。用于 RSA/AES/ECC/格密码/PRNG/ZKP/古典密码等 CTF 加密类挑战。当遇到加密数据需要破解、密码学相关 CTF 题目、需要分析加密算法弱点、或识别到密文/公钥/密码学参数时使用。覆盖从古典替换密码到现代公钥密码、椭圆曲线、格攻击、零知识证明等全方位密码学攻防技术
13ctf-forensics
CTF 数字取证与信号分析技术。当挑战提供磁盘镜像(.dd/.E01)、内存 dump(.raw/.vmem)、网络抓包(.pcap/.pcapng)、隐写图片/音频、Windows 事件日志(.evtx)时使用。覆盖 Volatility 内存分析、Wireshark 流量还原、binwalk 隐写提取、文件系统恢复等取证全链路
13ctf-reverse
CTF 逆向工程技术。当挑战提供未知二进制文件需要分析算法逻辑、游戏客户端需要破解验证、混淆代码需要还原、自定义 VM 需要解释执行时使用。覆盖 Ghidra/IDA 静态分析、GDB/Frida 动态调试、反调试绕过、WASM/.NET/APK/Python 字节码/Go/Rust 多平台逆向
13ctf-misc
CTF 杂项挑战技术。当遇到编码谜题、Python/Bash 沙箱逃逸、RF/SDR 信号、游戏/VM 逆向、K8s RBAC、浮点数技巧、Z3 约束求解、博弈论等不属于 pwn/crypto/web/reverse/forensics/osint 的 CTF 挑战时使用。先排除其他分类后再使用本技能
13java-deserialization-methodology
Java 反序列化漏洞检测与利用。当目标是 Java 应用(Tomcat/Spring/WebLogic/JBoss/Jenkins)、发现 rO0AB/aced0005 开头的 Base64 数据、HTTP 请求中有 application/x-java-serialized-object Content-Type、或存在 T3/IIOP/RMI/JNDI 协议端口时使用。覆盖 ysoserial gadget chain、JNDI 注入、Fastjson/Jackson 反序列化、Shiro rememberMe、常见中间件 CVE 利用
12