Mysql自带三个核心数据库+SQL注入
MySQL 三大默认系统数据库详解
MySQL 安装完成后,会自带三个核心系统库,负责数据库权限、元数据管理、性能监控,禁止随意删除、修改,否则会导致数据库异常崩溃。
1. mysql
MySQL 权限核心库,存储所有数据库账号、用户密码、账号权限信息。负责用户登录验证、账号权限分配、远程访问控制,是 MySQL 最重要的系统数据库。
2. information_schema
数据库元数据字典库,虚拟视图库,不存储真实数据。可以查询自己所拥有的所有库、表、字段、索引、字符集等结构信息,日常查表结构、库信息都通过该库查询。
框出来的都是就是数据库名
3. performance_schema
MySQL 性能监控数据库。记录 SQL 执行状态、慢查询、连接线程、锁等待、资源消耗,多用于数据库性能优化、故障排查。
总结:
mysql:管用户账号与权限
information_schema:管库表结构元数据
performance_schema:管运行性能与状态
下面来案例实战:
目标:数据库核心信息
我们测试一下是否有回显
我们可以看到,输入的条件也被放进来要查询的内容里面,所以我们给要查询的内容做一个隔离
做完隔离后发现后面多了一个单引号导致语法错误,所以我们用注释符给它注释掉
我们开始测试
当order by 为5的时候页面错误,为4的时候页面回显正常,所以我们可以知道当前页面在数据库中所属的那个表,有4个四段,因为order by + 数字 可以试出有几个字段,
下面用union方法查看注入点
发现连接查询的四个字段都可以成为注入点,小小的测试一下,看看数据库名和版本号
可以看到数据库名为game,版本号为5.5.53
接下来我们利用这些注入点在information_schema数据库里查询具体信息
select group_concat(table_name) from information_schema.tables where table_schema='这里写里的数据库名'
我们可以看到已经拿过game数据库下的两个表名了,发现有一个user,我们果断看这个
已经拿到这个表中的具体字段了,我们直接看username和password
呐,这就已经拿到这个网站数据库的核心信息了。
