buuctf [BJDCTF2020]Easy MD5

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的强连接和弱连接使用数组绕过;

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>