md5绕过(Hash比较缺陷)

来源:互联网 发布:unity3d下载手机版 编辑:程序博客网 时间:2024/06/16 09:53

if (md5($Username) == md5($password)) {$logined = true;}
题目大意是要输入一个字符串和数字类型,并且他们的md5值相等,就可以成功执行下一步语句
介绍一批md5开头是0e的字符串 上文提到过,0e在比较的时候会将其视作为科学计数法,所以无论0e后面是什么,0的多少次方还是0。


QNKCDZO0e830400451993494058024219903391s878926199a0e545993274517709034328855841020  s155964671a0e342768416822451524974117254469  s214587387a0e848240448830537924465865611904  s214587387a0e848240448830537924465865611904  s878926199a0e545993274517709034328855841020  s1091221200a0e940624217856561557816327384675  


写一个脚本自己验证;

import hashlibm=hashlib.md5()password=""password=input(password)password=password.encode('ascii')m.update(password)print(m.hexdigest())