【技术分享】聊一聊bypass information_schema

VSole2022-05-11 08:28:38

前言

聊一聊mysql在被waf禁掉了information_schema库后还能有哪些利用思路,这个想法是前一段时间想到的,这次趁着安全客活动就在这里记录一下吧~

#  实验环境
windows 2008 r2
phpstudy (mysql 5.7)
某waf(原因是该waf可以设置非法访问information_schema数据库)

前置任务

进行bypass之前先了解一下mysql中的information_schma这个库是干嘛的,在SQL注入中它的作用是什么,那么有没有可以替代这个库的方法呢?

information_schema

简单来说,这个库在mysql中就是个信息数据库,它保存着mysql服务器所维护的所有其他数据库的信息,包括了数据库名,表名,字段名等。

在注入中,infromation_schema库的作用无非就是可以获取到table_schema,table_name,column_name这些数据库内的信息。

MySQL5.7的新特性

由于performance_schema过于发杂,所以mysql在5.7版本中新增了sys schemma,基础数据来自于performance_chema和information_schema两个库,本身数据库不存储数据。
*注*:
    这里说一下,现在网络上能搜索到的文章大部分都是利用innoDB引擎绕过对information_schema的过滤,但是mysql默认是关闭InnoDB存储引擎的,所以在本文中不讨论该方法,若想了解可自行搜索,网络上有很多分析文章了。

sys.schema_auto_increment_columns

开始了解这个视图之前,希望你可以想一下当你利用Mysql设计数据库时,是否会给每个表加一个自增的id(或其他名字)字段呢?如果是,那么我们发现了一个注入中在mysql默认情况下就可以替代information_schema库的方法。

schema_auto_increment_columns,该视图的作用简单来说就是用来对表自增ID的监控。

这里我通过security(sqli-labs)和fortest(我自建库)两个库来熟悉一下schema_auto_increment_columns视图的结构组成,以及特性。

# fortest库
    data 表存在自增id
    no_a_i_table 表不存在自增id
    test 表存在自增id
# security库
    //该库为sqli-labs自动建立
    emails,referers,uagents,users

可以发现,fortest库中的no_a_i_table并不在这里存在,然而其他非系统库的表信息全部在这里。根据前面介绍的schema_auto_increment_columns视图的作用,也可以发现我们可以通过该视图获取数据库的表名信息,也就是说找到了一种可以替代information_schema在注入中的作用的方法。

当然了,如果你说我们就是想想通过注入获取到没有自增主键的表的数据怎么办?通过翻阅sys中的视图文档,我又发现了一个视图也许可以实现这种需求?。

schema_table_statistics_with_buffer,x$schema_table_statistics_with_buffer

查询表的统计信息,其中还包括InnoDB缓冲池统计信息,默认情况下按照增删改查操作的总表I/O延迟时间(执行时间,即也可以理解为是存在最多表I/O争用的表)降序排序,数据来源:performance_schema.table_io_waits_summary_by_table、sys.x$ps_schema_table_statistics_io、sys.x$innodb_buffer_stats_by_table

通过介绍的内容我们可以很容易的发现,利用“数据来源”同样可以获取到我们需要的信息,所以说这样的话我们的绕过information_schema的思路就更广了。加下来依次看一下各个视图的结构:

# sys.schema_table_statistics_with_buffer
    可以看到,在上一个视图中并没有出现的表名在这里出现了。

# sys.x$schema_table_statistics_with_buffer

# 在从`数据来源`中随便选取一个视图为例(想查看视图详细结构等信息可自行测试)# sys.x$ps_schema_table_statistics_io# 可忽略table_name='db',默认的并非我创建。

注: 类似的视图等还有很多,若有兴趣可自行翻阅,这里仅抛砖引玉吧,记录一下自己之前的想法思路。

01

Bypass information-schema

上面的方法的确可以获取数据库中表名信息了,但是并没有找到类似于information_schema中COLUMNS的视图,也就是说我们并不能获取数据?

join

这个思路在ctf中比较常见吧,利用join进行无列名注入,如何利用到这里就显而易见了。

join … using(xx)

简单的记录一下payload吧。以本文开头的环境为例,这里的waf会完全过滤掉information_schema库。

由于开启防护后会拦截正常注入,所以图中payload可能会有些乱,我会将简单的payload整理在下面,绕过防护的部分完全可以自由发挥。

to_increment_columns
?id=-1' union all select 1,2,group_concat(table_name)from sys.schema_auto_increment_columns where table_schema=database()--+

# schema_table_statistics_with_buffer
?id=-1' union all select 1,2,group_concat(table_name)from sys.schema_table_statistics_with_buffer where table_schema=database()--+

其他的就不测试了,都是一个payload。


获取字段名

# 获取第一列的列名
?id=-1' union all select*from (select * from users as a join users b)c--+

# 获取次列及后续列名?id=-1' union all select*from (select * from users as a join users b using(id,username))c--+


数据库数据库视图
本作品采用《CC 协议》,转载必须注明作者和本文链接
数据库注入提权总结
2022-08-09 16:49:49
select * from test where id=1 and ;布尔盲注常见的布尔盲注场景有两种,一是返回值只有True或False的类型,二是Order by盲注。查询结果正确,则延迟3秒,错误则无延时。笛卡尔积延时大约也是3秒HTTP头注入注入手法和上述相差不多,就是注入点发生了变化HTTP分割注入常见场景,登录处SQL语句如下
数据库技术是一门信息管理自动化学科的基础课程,在经历了半个世纪的发展后已经成为计算机科学的重要分支,被广泛应用于人们的日常生活。数据库的核心任务是数据资产的管理,包括数据的分类、组织、编码、储存、检索和维护。在数据信息爆发式增长的今天,数据库承担了越来越多的数据处理与分析职责,以数据赋能的形式不断促进应用创新,助力数字化发展进程。
在所有漏洞类型中,SQL 注入可是说是危害最大最受大家关注的漏洞。简单说来,SQL 注入是通过在用户可控参数中注入SQL语法,破坏原有SQL结构,达到编写程序时意料之外结果的攻击行为。还是以 ThinkJS 为例,假设我们写了如下一个接口(实际情况肯定不会这么写的):
据外媒,英国安全公司TurgenSec最新公布的报告显示,来自菲律宾政府的多达34.5万份敏感法律文件已在网络上被黑客曝光,这家公司表示,这些件虽然已于4月28日被删除,但其中一些仍被谷歌的搜索引擎缓存并可以在公开网络上找到。
攻击者发送带有虚假工作机会的电子邮件作为诱饵,试图诱骗受害者安装 Enigma 信息窃取恶意软件。
Sensei Enterprises, Inc.的法律、IT、网络安全和数字取证服务的专家撰文揭露了印度网络间谍针对全球法律诉讼及相关人员的渗透攻击活动。
显然,雇佣间谍已成为诉讼当事人寻求优势的武器。正如文章指出的那样,Gupta从未被美国当局逮捕。大多数受访者表示,电子邮件数据库中显示的黑客攻击未遂发生在预期诉讼之前或诉讼正在进行时。Cleary Gottlieb公司拒绝置评。针对的法律案件的类型和重要性各不相同。
扫描 REST API 中的漏洞
2020-09-03 17:04:24
许多复杂的Web应用程序都是使用REST API构建的。与整体Web应用程序和网站一样,Acunetix可以帮助您确保所有REST API的安全性。在本文中,您将学习如何使用OpenAPI,Swagger或WADL定义来发现和修复REST API中的漏洞:...
密码是非法攻击者闯入企业网络环境的最简单途径之一。
这家新兴组织也被称为亚特兰蒂斯网络军,拥有一位神秘的领导者和一组核心管理员,提供一系列服务,包括独家数据泄露、DDoS 和 RDP。
VSole
网络安全专家