靶场地址:ctf.show
1.读代码
v1:参数要求为字母。
v2:参数要求为数字。
当v1和v2的MD5相同时,打印出flag的值。
2.md5碰撞
不同数据的md5是不会相等的,但是这边用的是==
,如果得出的md5值是"0e"+"数字"
的格式,就会被当作科学计数法,值都为0。
举例:
只要找到对应格式的MD5值的全字母和全数字的值就可以了。
我用python写了一个自动化程序找出对应格式的md5值,只要修改对应的payload就可以了。
好家伙,这几率和买彩票一样,对应全数字和全字母一共跑了几个钟,我傻了。。(其实是我写的程序太垃圾。。)
import hashlib
import random
import sys
payload = "QWERTYUIOPASDFGHJKLZXCVBNM"
#payload = "qwertyuiopasdfghjklzxcvbnm"
#payload = "0123456789"
def calcMd5(s