首先打开靶机,只有一个输入框
用bp查看一下
这里有个提示,根据提示知道,要在输入框中传入字符,经过MD5加密之后,构成SQL注入的语句,也就是 ' ' or True
因为mysql在进行布尔型判断时,以数字开头的字符串会被转换成整型,所以只要MD5之后的字符串是 ‘ ’ or数字xxxx就可以。
这里通过百度检索到一个神奇的字符串:ffifdyop,这个字符串加密之后是 ’or’6XXXXXXXXX
则SQL语句就被拼接为:select * from 'admin' where password=''or '6xxx ,会被MYSQL认为
select * from 'admin' where password='' or 6,这就完成了SQL注入。输入后进入下一个页面,直接看bp抓到的源码
根据提示,通过GET方式传入a b两个参数,且a和b不相等,MD5加密后相等
这里有2个思路,一个是利用弱等于,让a b不同,但是MD5加密之后都是同一个数字开头的字符串。也可以让a b不同,且都是数组。因为PHP的MD5函数加密数组返回的实NULL,则可以绕过检测。
这里给出一些MD5之后以数字打头的一些字符串
QNKCDZO
0e83040