HackGame

第一关

通过尝试可知修改 id = 后的值能够改变hello的内容,下面的语句给了提示You are not the admin.不妨猜想如果使之出现admin即可过关。

Admin时,失败

不断尝试

过了第一关

第二关

由于出现了cookie不妨想到查看其cookie

由于查看cookie后发现guest变成了base64加密后的

cookie 改为admin经过base64加密后的

可以推断出将cookie改为admin改为base64加密后的即可进入

Base64加密admin

第二关完成

第三关

观察可知只需要求出10932435112经过sha1加密与输入的字符串经过MD5加密后相等的那个字符串即可,但是这样并不可行,所以我们继续尝试先将10932435112经过sha1加密

发现其为0e前缀

PHP在处理哈希字符串时,会利用”!=””==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0

攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字符串,即会被PHP解释为0,如果数据库中存在这种哈希值以”0E”开头的密码的话,他就可以以这个用户的身份登录进去,尽管并没有真正的密码。

即:如果md的值是以0e开头的,那么就与其他的0e开头的Md5值是相等的

网上搜出加密开头为0e

进入!

成功破解!

猜你喜欢

转载自www.cnblogs.com/lightac/p/10927505.html