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]}

上一篇下一篇

猜你喜欢

热点阅读