继上篇MD5截断比较验证文章之后有朋友提示除了数字以外,许多字母数字混合的明文在MD5加密之后也是可以达到同样效果的
同时在De1CTF中Web4题目中遇到了另一种较为特殊的截断比较验证,如图所示:
如红色方框中的提示,这段提示的意思是验证明文(Code)+随机字符串(fTyHgZII)在md5加密之后截取前六位等于b77333
在这种情况下单靠第一篇的数字爆破脚本便很难爆破出真正的Code,朋友给我分享了如下的爆破脚本:
import hashlib addStr = 'TSw8BK8m' knownMd5 = 'd3b6da' dict = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' def md5(text): return hashlib.md5(str(text).encode('utf-8')).hexdigest() for i in dict: for j in dict: for k in dict: for l in dict: x = i + k + j + l b = x + addStr codeMd5 = md5(b) if codeMd5[:6] == knownMd5: print(x)
运行结果如图: