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¶m2[]=2
1.ffifdyop
经过md5
加密后,使用hex
解码可以转换为'or'
2.MySQL
默认将十六进制数转换为hex()
;
3…md5的强连接和弱连接使用数组
绕过;