md5 截断验证
ctf中经常用MD5的截断比较做验证,如:substr(md5($str), 0, 6) === "3322cf"
,通过这种方式限制脚本的自动化攻击。
通常可以写脚本去爆破MD5, 但是花费时间和比较字符串的长度有关,并且花费时间通常比较长,这不利于脚本自动攻击,下面给出爆破脚本和使用方式。
- submd5.py
1 | # -*- coding: utf-8 -*- |
用法:
1 | $ python submd5.py "3d4f4" |
想要在较短时间内获得可用的md5,可以使用彩虹表类似的方式去实现,通过空间去换时间。
生成md5文件,并排序:
- gen_md5.py
1 | # -*- coding: utf-8 -*- |
命令行排序: python gen_md5.py | sort -o md5_sorted.txt
md5 文件搜索(二分查找):
- match.py
1 | # -*- coding: utf-8 -*- |