天网管理系统

点击登录发现没用

然后康康源码

给出提示test使用的是md5加密,如果id0就。。。。

这里使用php==的漏洞,==只比较值的大小并不会比较数据类型

所以这里使用md50)的相等值240610708输入到username

弹出提示

似乎是网页的后缀,加进去试试

似乎让我们用布尔?

这段代码的大概意思是取得password的值,再使用unserialize函数,如果$data_unserialize['user']等于’???’$data_unserialize['pass']等于’???’就输入flag

而函数unserialize()则是对单一的已序列化的变量进行操作,将其转换回反序列化 PHP 的值。返回的是转换之后的值,可为 integerfloatstringarray 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了

原文地址:https://www.cnblogs.com/wosun/p/11215780.html