试验吧CTF天网治理体系_玖富娱乐主管发布


玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。

天网你敢来应战嘛

花样:ctf{ }

解题链接: http://ctf5.shiyanbar.com/10/web1/ 

翻开链接后,嗯,名正言顺的放出账号暗码,肯定是登不进的,检察源代码

看来是和md5碰撞有关的了,

PHP在处置惩罚哈希字符串时,会应用”!=”或”==”来对哈希值举行对照,
它把每个以”0E”开首的哈希值都解释为0,以是若是两个分歧的暗码经由哈希今后,
其哈希值都是以”0E”开首的,那末PHP将会以为他们雷同,都是0。

攻击者能够应用这一破绽,
经由过程输入一个经由哈希后以”0E”开首的字符串,即会被PHP解释为0,
若是数据库中存在这类哈希值以”0E”开首的暗码的话,他就能够以这个用户的身份登录进去,
只管并没有真正的暗码。

0e开首的md5和原值:
(加密后值为0)

s878926199a

0e545993274517709034328855841020


s155964671a

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。-

0e342768416822451524974117254469

 

 我们随意选一个,将用户名改成s878926199a

将url改成该地点,进入后审计代码

$unserialize_str = $_POST['password'];  

$data_unserialize = unserialize($unserialize_str);        #unserialize() 对单一的已序列化的变量举行操纵,将其转换回 PHP 的值。

if($data_unserialize['user'] == '???' && $data_unserialize['pass']=='???') { print_r($flag); }

巨大的科学家php方言道:成也布尔,败也布尔。 回去吧骚年

 

1.须要组织序列化的password填入,代码意义是把post提交的password值经由"反序列化"获得一个数组, 请求数组里的user和pass都即是某个值时就打印flag。 2.bool范例的true跟恣意字符串能够弱范例相称。因而我们能够组织bool范例的序列化数据 ,不管对照的值是什么,效果都为true。   序列化与反序列化: 把庞杂的数据范例压缩到一个字符串中 serialize() 把变量和它们的值编码成文本情势 unserialize() 规复本来变量   本身实践序列化函数

从效果能够看出,要组织bool范例的序列化数据经由反序列化后为true,user和password的值应写成  "a:2:{s:4:"user";b:1;s:4:"pass";b:1;}", 末了我们将该值提交获得flag

 

 

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。