CTFSHOW web5 MD5

直接把源码贴出来了,大概意思就是,满足三个函数后,会输出flag

  • ctype_alpha()函数用于检测字符串中是否仅包含字母,是则返回true,否则返回false
  • is_numeric()函数用于检测变量是否为数字或数字字符串,是则返回true,否则返回false
  • 比较md5

也就是说,我们要构造两个变量v1、v2(字符串和数值)并使两者md5值相同。、

这里就涉及到了md5绕过的知识。常见的md5绕过有以下几种

1.0e绕过

  在php中,==为弱等于,===为强等于----区别在于是否会比较变量类型。那么如果在md5转换后的值为0e开头,则会根据科学计数法转换为0.其中符合的有

QNKCDZO
240610708
byGcY
sonZ7y
aabg7XSs
aabC9RqS
s878926199a
s155964671a
s214587387a
s1091221200a

so   QNKCDZO=0==0=240610708

2.数组绕过

md5不能加密数组,不然会报错并返回null

如:md5(a[]=1) === md5(b[]=1)  ------>null === null

ps:可以绕过=== 

3.MD5碰撞

这个就不介绍了,当年山大的王小云教授大家应该都知道

4.MD5-SQL注入

ffifdyop 的MD5加密结果是 276f722736c95d99e921722cf9ed621c

经过MySQL编码后会变成'or'6xxx,使SQL恒成立,相当于万能密码,可以绕过md5()函数的加密

使用0e,得到flag

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值