Mysql 无列名注入
Mysql 无列名注入
无列名注入?
在不知道列名的情况下进行sql注入.
在MySQL => 5 的版本中自带一个名为 information_schema
的库,里面记录着MySQL中所有表的结构,例如列名,表名等.通常我们在注入时会去查
询数据表结构,但有时会应为用户权限不足,WAF过滤等种种因素而无法去查询.因此要用到无列名注入.
使用条件:
得到表的列数
得到表名
正常的查询语句如下:
SELECT * FROM wp_usermeta;
使用联合查询union
SELECT 1,2,3,4 UNION SELECT * FROM wp_usermeta
可以看到在查询结果中,可以看到表列名替换为了我们在SELECT
后的1,2,3,4
假如说我需要meta_key
列的数据,也就是替换完的3
可以这么查:
SELECT `3` FROM(SELECT 1,2,3,4 UNION SELECT * FROM wp_usermeta)a;
一定要加``号
MySQL先是执行括号内的查询语句,接着再从括号内语句的结果查询,括号后的a随意命名.
我们也可以使用as进行查询而绕过``号.
SELECT 1,2,3 as b,4 UNION SELECT * FROM wp_usermeta;
可以看到从meta_key
=> 3
=> b
,接着:
SELECT b FROM(SELECT 1,2,3 as b,4 UNION SELECT * FROM wp_usermeta)a
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。