php审计(2)
2017-11-27 本文已影响0人
queena_
Challege
Solution
1、得到flag()的条件:if($a && $b && $c)即这三个参数都为1才出flag
2、分析$a:
存在switch……case弱类型比较(swich会进行强制类型转换),所以用$x1=1a即可绕过
3、分析$b
判断条件$x2["x21"]>2017仍然是弱类型比较,'x21'=2018a即可绕过
4、分析$c
array_search函数(在数组中搜索键值 "XIPU",并返回它的键名)
最后$x2的值为:
$x2=array(
'x21'=>'2018a',
'x22'=>array(array(),0),
);
用json_encode函数加密
{"x21":"2018a","x22":[[],0]}
最终payload为:
x1=1a&x2={"x21":"2018a","x22":[[],0]}