天网管理系统
点击登录发现没用
然后康康源码
给出提示test使用的是md5加密,如果id为0就。。。。
这里使用php中==的漏洞,==只比较值的大小并不会比较数据类型
所以这里使用md5(0)的相等值240610708输入到username中
弹出提示
似乎是网页的后缀,加进去试试
似乎让我们用布尔?
这段代码的大概意思是取得password的值,再使用unserialize函数,如果$data_unserialize['user']等于’???’$data_unserialize['pass']等于’???’就输入flag
而函数unserialize()则是对单一的已序列化的变量进行操作,将其转换回反序列化 PHP 的值。返回的是转换之后的值,可为 integer、float、string、array 或 object。
如果传递的字符串不可解序列化,则返回 FALSE,并产生一个 E_NOTICE。
序列化与反序列化:
把复杂的数据类型压缩到一个字符串中
serialize() 把变量和它们的值编码成文本形式
unserialize() 恢复原先变量
举个例子就是这样
定义一个array数组,key为键名,www就是对应的array[‘key’]的键值
最后根据提示使用布尔漏洞true可以和任意字符串的弱类型相等
因此这里构造布尔的序列化数据
a:2:{s:4:"user";b:1;s:4:"pass";b:1;}(a代表array,s代表string,b代表bool,而数字代表个数/长度)
输入到password中就得到flag了