BUU-Web-Easy MD5

第一次遇到MD5的题目,记录一下

注入点:"select * from 'admin' where password=' ".md5($pass,true)." ' "
字符串:ffifdyop

MD5(ffidyop)=276f722736c95d99e921722cf9ed621c(这是一个16进制数)

然后在数据库中会将这个16进制数转换为ASCII字符,也就是'or'6É]™é!r,ùíb,可以看到这相当于万能密码,因为or后面只要不是0,都是true

为什么非要是这串字符串呢???

首先MD5是不可逆的,如果我想只取前面的'or'6也就是276f722736,或者其他的,是不现实的,当然你可以用爆破的方式试一下有没有其他的字符串是可行的,这里有现成的我就不去尝试了

绕过之后可以看到

这里就是之前讲的弱等于绕过,于是构造payload:a[]=1&b[]=2

然后

同理payload为:param1[]=1&param2[]=2,以POST方式传递

就得到flag

原文地址:https://www.cnblogs.com/Web-Fresher/p/13723172.html