[NSSCTF 2022 Spring Recruit]babyphp
目录
[NSSCTF 2022 Spring Recruit]babyphp
|
|
根据代码意思,获得 flag 需满足以下条件:
- 参数 a 有传值、参数 a 的值不包含数字、参数 a 的值可以转换成数字
- 参数 b1 有传值、参数 b2 的值为 true
- 参数 b1 的值和参数 b2 的值不相等、参数 b1 的值和参数 b2 的值经 MD5 加密后相等(强类型比较)
- 参数 c1 的值和参数 c2 的值不相等、参数 c1 的值和参数 c2 的值均为字符串、参数 c1 的值和参数 c2 的值经 MD5 加密后相等(弱类型比较)
bypass:
-
参数 a 为非空数组:
a[]=1
ora[]=a
相关实验
-
和 3. 参数 b1 和参数 b2 为不同内容的非空数组:
b1[]=1&b2[]=2
相关实验
非空数组转为 bool 类型为 true:
md5() 函数无法处理数组,返回NULL。
(NULL===NULL)
转为 bool 类型为 true: -
c1=s878926199a&c2=s155964671a
相关实验
php 在处理哈希字符串的时候,会把以 0e 开头并且后面字符均为纯数字的哈希值都解析为 0
MD5 加密后以 0e 开头的字符串:
- QNKCDZO
- 240610708
- s878926199a
- s155964671a
payload:a[]=1&b1[]=1&b2[]=2&c1=s878926199a&c2=s155964671a
欲将心事付瑶琴。知音少,弦断有谁听?