来自牛逼哥的阴间MD5(web)

 

 这个web题目是来自队里面牛逼哥的题目,审计源码,

 

 看到这两个参数,前面的a和b就是直接输出数字,再看下面的,需要弱比较的输出一个c,要求应该是需要一个加密之前是一个0e开头的字符串,加密之后还是0e开头的MD5的值

这里说一下MD5碰撞,通常遇到这种的时候使用的常规的0eMD5的值,但是没有加密之前的字符开头几乎是没有是0e的,所以才说这是一个比较阴间的题目,(详情可以去百度一下)

像这种加密之前和加密之后都是0e开头的字符串还是真的挺少见的,这里可以使用脚本跑出来想要的没有加密的0e的字符串,就是时间需要的比较长

import hashlib

def md5_enc(s):
m = hashlib.md5()
m.update(str(s).encode('utf-8'))
return m.hexdigest()

if __name__ == '__main__':
result = []
for i in range(0, 9999999999):
i = '0e' + str(i)
enc = md5_enc(i)
print(i+" md5 is "+enc)
# md5值前两位为0e
if enc[:2] == "0e":
# md5值0e后为纯数字
if enc[2:].isdigit():
result.append(i)
print("Got Result:"+i)
break
附上脚本,跑出来之后就很简单了,这个题目本身是不难的,构造一下payload,这里放一下脚本跑出来的

 

 使用这个,然后构造一下payload,回显得到flag

 

posted @ 2021-11-08 15:47  灵盾信安  阅读(76)  评论(0编辑  收藏  举报