题目:[BJDCTF2020]Easy MD5 1
类型:SQL注入、MD5绕过
一、抓包找关键信息
平平无奇输入框极大可能是SQL注入,输个万能密码看看效果
首先是get请求,然后输入框的信息是password=xxx,那抓个包看看吧
在响应包中,有非常明显的SQL注入的信息
Hint: select * from 'admin' where password=md5($pass,true)
刚才输入的信息都被md5函数转化了
md5函数介绍为:
md5( string , raw )
string : 规定需要计算的字符串
raw : 规定十六进制或二进制输出格式。
true:16字符二进制格式
false(默认): 32字符十六进制数
二、MD5绕过
这就需要掌握MD5绕过的方法了,这里大佬总结的很详细!
这题的类型很显然是特定条件下的MD5验证绕过,所以利用特殊字符ffifdyop绕过,就会跳转到这个界面
再次抓包发现,依旧是get请求,存在MD5弱类型比较
利用数组绕过?a[]=1&b[]=2————原理就是MD5计算数组会返回false
最后一个页面,是POST请求(一开始没注意),利用了MD5的强类型绕过,因此也可以利用数组绕过param1[]=1¶m2[]=2
总结:这题其实跟SQL注入没多大关系,最主要是要看懂抓包的代码,并且掌握MD5的绕过方法,建议用数组;包括做题的时候需要看清出是GET请求还是POST请求!