使用条件
查询不回显内容,会打印错误信息
报错原理
报错型注入则是利用了MySQL的第8652号bug :Bug #8652 group by part of rand() returns duplicate key error来进行的盲注,使得MySQL由于函数的特性返回错误信息,进而我们可以显示我们想要的信息,从而达到注入的效果
mysql语句的特性–子查询
在这里虽然语句b有错误,但是由于语句a没有错误所以成功查询出变量A,随后变量A与语句b构成新的语句,又由于语句b存在错误,所以报错时连带着变量A一起报错,从而实现了变量A的查询。
十二种报错注入
我将其根据报错原理分成五大类
详细解释
MYSQL 通过GeometryCollection()报错注入
这里说明一下,在“操作代码”处将语句如下替换
查询MySQL版本
select @@version
select version()
查询用户
select user()
暴库
select group_concat(schema_name) from information_schema.schemata
爆表
select group_concat(table_name) from information_schema.`TABLES` WHERE table_schema = database()
爆列
select group_concat(column_name) from information_schema.columns where table_name = '表名'
爆字段
select group_concat(列名) from 表名
各个例题的数据库为
数据库名ctftest
表名users
列名
id mane password
字段
1 a.name a.password
2 b.name b.password
3 c.name c.password
4 d.name d.password