MD5碰撞

Posted echodetected

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MD5碰撞相关的知识,希望对你有一定的参考价值。

php在处理哈希字符串时,

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

"==="和"!=="即strict比较符,只有在类型相同时才相等。"=="和"!="即non-strict比较符,会在类型转换后进行比较。

此外0 == 字符会被认为是正确的,可以绕过验证

 


 

例子1:bugku的碰撞题目

md5 collision(NUPT_CTF)

技术图片

输入一个a,但我们不知道其确切的值,就用md5碰撞来绕过:

 

字母数字混合类(MD5值):

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
 
大写字母类:
QLTHNDT
0e405967825401955372549139051580
 
QNKCDZO
0e830400451993494058024219903391
 
EEIZDOI
0e782601363539291779881938479162
 
纯数字类:
240610708
0e462097431906509019562988736854
 

技术图片

绕过以后返回flag值

 

 

例子2:

技术图片


 

技术图片技术图片


 

题目的php代码,需要传两个参数v1和v2,v1必须为字母,v2必须为数字,如果两者的MD5值相同,打印flag

用到上面提到的MD5碰撞数,就能返回flag

以上是关于MD5碰撞的主要内容,如果未能解决你的问题,请参考以下文章

MD5碰撞后时代,MD5还有存在的意义吗?

MD5产生碰撞之前有多少随机元素?

在 MD5 产生碰撞之前有多少随机元素?

MD5碰撞

i春秋——“百度杯”CTF比赛 十月场——GetFlag(md5碰撞文件包含网站绝对路径)

CTF_Web:php弱类型绕过与md5碰撞