buuctf [BJDCTF2020]Easy MD5

50 篇文章 4 订阅
17 篇文章 1 订阅

buuctf [BJDCTF2020]Easy MD5

一、解题思路

1.前面简单的步骤就不赘述了,直接抓包

在这里插入图片描述

2.返回的信息中,可以直接看到提示Hint: select * from 'admin' where password=md5($pass,true)可以看到无论我们输入的什么参数都会被md5加密,这里又有一个精髓是——ffifdyop进行md5加密,这里比较巧的是经过md5加密后的数据,276f722736c95d99e921722cf9ed621c

在这里插入图片描述

3.可以看到加密后的md5看着像十六进制编码,MySQL将十六进制转换为hex()通过加密后的md5值,使用hex解码'or'6�]��!r,��b,可以看到永真

在这里插入图片描述

4.这里就使用的是这个漏洞利用点,绕过md5()编码ffifdyop绕过

在这里插入图片描述

5.成功绕到下一步

在这里插入图片描述

6.继续抓包,看到右边的提示

在这里插入图片描述

7.根据返回的信息的提示,需要绕过的是md5的弱等于,它的要求是变量1和变量2要求不相等,然而,通过md5加密后的结果要进行相等。常用方式——
使用数组进行绕过?a[]=1&b[]=2

在这里插入图片描述

8.进入到下一关,使用的md5的强碰撞,
在这里插入图片描述

9.还是使用数组绕过param1[]=1&param2[]=2

在这里插入图片描述

二、知识点总结

1.ffifdyop经过md5加密后,使用hex解码可以转换为'or'
2.MySQL默认将十六进制数转换为hex();
3…md5的强连接和弱连接使用数组绕过;

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值