数据库内置系统表学习

数据库内置系统表学习一、MySQL数据库内置系统表 mysql5.7之后的版本自带数据库为 1.information_schema数据库 这个库在mysql中就是个信息数据库,它保存着mysql服务器所维护的所有其他数

数据库内置系统表学习

一、MySQL数据库内置系统表

mysql5.7之后的版本自带数据库为

数据库内置系统表学习

1.information_schema数据库

这个库在mysql中就是个信息数据库,它保存着mysql服务器所维护的所有其他数据库的信息,包括了数据库名,表名,字段名等。在注入中,infromation_schema库的作用无非就是可以获取到table_schema、table_name、column_name这些数据库内的信息。

所包含的主要表

tables表

存储数据库中的表信息(包括视图),包括表属于哪个数据库,表的类型、存储引擎、创建时间等信息。

数据库内置系统表学习

查询所有的表名

数据库内置系统表学习

columns表

存储表中的列信息,包括表有多少列、每个列的类型等

数据库内置系统表学习

查询某个表的字段名

数据库内置系统表学习

schemata

当前 mysql 实例中所有数据库的信息。SHOW DATABASES; 命令从这个表获取数据

数据库内置系统表学习

查询:

获取用户名:select user();

获取权限:

数据库内置系统表学习

获取库名:select schema_name from information_schema.schemata

获取表名:select table_name from information_schema.tables where table_schema=”test”;

获取字段名:selcet column_name from information_schema.columns where table_name=”students”

2、mysql数据库

mysql 的核心数据库,类似于 sql server 中的 master 表,主要负责存储数据库的用户、权限设置、关键字等 mysql 自己需要使用的控制和管理信息。(常用的如在 mysql.user 表中修改 root 用户的密码)。

其中最主要的是user表,在user表中,主要的字段有user,password,host

在低版本mysql中,密码字段是password,高版本中是authentication_string

数据库内置系统表学习

3、performance_schema数据库

PERFORMANCE_SCHEMA 主要用于收集数据库服务器性能参数,并且库里的表的存储引擎均为 PERFORMANCE_SCHEMA,用户不能创建存储引擎为 PERFORMANCE_SCHEMA 的表。

performance_schema在5.7.x及以上版本中默认启用(5.6.x及以下版本默认关闭)。如果要显式启用或关闭,我们需要使用参数performance_schema=ON|OFF设置,并在my.cnf中进行配置。

4、sys数据库

这个数据库主要是为了数据库管理人员排错使用的,主要反映数据库性能的。

因为sys系统库提供了一些代替直接访问performance_schema的视图,所

以必须启用performance_schema(将performance_schema系统参数设置为ON),sys系统库的大部分功能才能正常使用。同时要完全访问sys系统库,用户必须具有以下数据库的管理员权限。

sys_config:这是在这个系统哭上存在的唯一一个表

variable:配置选项名称

value:配置选项值

set_time:该行配置修改的时间

set_by:该行配置信息修改者,如果从被安装没有修改过,那么这个数据应该为NULL

5、MySQL文件读写

(1)读文件loadfile函数

满足条件:

  • 当前数据库用户具有 FILE 权限,使用 show grants 查看
  • secure_file_priv 不为 NULL,使用 select @@secure_file_priv 查看其值,值不为空字符串时,只能使用该目录进行文件读写操作
  • 读取文件的大小小于 max_allowed_packet,使用 select @@max_allowed_packet 查看
  • 文件及路径存在

数据库内置系统表学习

修改secure_file_priv

打开配置文件/etc/etc/my.cnf.d/mysql-server.cnf

然后在[mysqld]中添加secure_file_priv=

数据库内置系统表学习

然后查询;

数据库内置系统表学习

数据库内置系统表学习

loadfile函数

数据库内置系统表学习

load_file() 函数只能从服务器读取文件,LOAD DATA 语句既能读取服务器的文件,也能读取客户机的文件,通过使用 LOCAL 语句从客户机读取文件内容。

数据库内置系统表学习

(2)写文件

into outfile

数据库内置系统表学习

mysqldump写文件

mysqldump -u 用户名 -p 密码 数据库 数据表 > 路径

数据库内置系统表学习

二、mssql数据库内置表

1、系统默认数据库

数据库内置系统表学习

mssql新安装后默认有四个数据库

(1)master:master 数据库记录 SQL Server 系统的所有系统级信息。 这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。 在 SQL Server中,系统对象不再存储在 master 数据库中,而是存储在 Resource 数据库中。 此外, master 数据库还记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server的初始化信息。 因此,如果 SQL Server master 数据库不可用,则 无法启动。

(2)model 数据库用于在 SQL Server 实例上创建所有数据库的模板。 因为每次启动 时都会创建 tempdb SQL Server ,所以 model 数据库必须始终存在于 SQL Server 系统中。 model 数据库的全部内容(包括数据库选项)都会被复制到新的数据库。 启动期间,也可使用 model 数据库的某些设置创建新的 tempdb ,因此 model 数据库必须始终存在于 SQL Server 系统中。

model 的用法:当发出 CREATE DATABASE 语句时,将通过复制 model 数据库中的内容来创建数据库的第一部分, 然后用空页填充新数据库的剩余部分。如果修改 model 数据库,之后创建的所有数据库都将继承这些修改。

(3)msdb 数据库由SQL Server 代理用于计划警报和作业,以及其他功能。

(4)tempdb显式创建的临时用户对象。 它们包括全局或局部临时表及索引、临时存储过程、表变量、表值函数返回的表或游标。

tempdb 中的操作是最小日志记录操作,以便回滚事务。 每次启动 SQL Server 时都会重新创建 tempdb,从而在系统启动时总是具有一个干净的数据库副本。 在断开联接时会自动删除临时表和存储过程,并且在系统关闭后没有活动连接。tempdb 不会有什么内容从 SQL Server 的一个会话保存到另一个会话。 不允许对 tempdb 执行备份和还原操作。

Sql Server中创建数据库中默认表的作用

数据库内置系统表学习

select @@version;查询数据库版本

数据库内置系统表学习

select db_name();查询当前数据库

数据库内置系统表学习

查询表名

数据库内置系统表学习

查询字段名

select name from syscolumns where id=(select max(id) from sysobjects where xtype=”u” and name=”Student”);

sa:在搭建时,选择使用SQL Server身份验证会创建SA账户并设置密码,SA(System Administrator)表示系统管理员,在SQLServer2019之前的SA用户都是系统最高权限用户SYSTEM,但在2019版本时为普通数据库用户mssqlserver,是一个低权用户。

mssql的三种权限级别:

sa权限:数据库操作,文件管理,命令执行,注册表读取等价于system,SQLServer数据库的最高权限

db权限:文件管理,数据库操作等价于 users-administrators

public权限:数据库操作等价于 guest-users

select is_srvrolemember(“sysadmin”) ;#判断是不是管理员权限

数据库内置系统表学习

写文件

xp_cmdshell是Sql Server中的一个组件,默认关闭,将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出。通常在拿到sa口令之后,可以通过xp_cmdshell来进行提权,

查看是否开启xp_cmdshell

select count(*) from master.dbo.sysobjects where xtype=”x” and name=”xp_cmdshell”

返回1说明开启

EXECUTE sp_configure "show advanced options", 1;  
GO  
RECONFIGURE;  
GO  
EXECUTE sp_configure "xp_cmdshell", 1;  
GO  
RECONFIGURE;  
GO

(1)判断文件是否存在sys.xp_fileexist

数据库内置系统表学习

0表示不存在,1表示存在

sys.xp_create_subdir 用于创建子目录,参数是子目录的路径:

exec master.sys.xp_create_subdir “c:User oothack”

数据库内置系统表学习

(2)创建好目录后,就可以写文件;但是需开启xp_cmdshell组件

数据库内置系统表学习

(3)一般思路为拿到权限后先创建一个表,然后把文件写入表,最后从表读取文件

数据库内置系统表学习

数据库内置系统表学习

三、hashcat激活成功教程哈希

1、hashcat使用

Hashcat 是一款用于激活成功教程密码的工具,据说是世界上最快最高级的密码激活成功教程工具,支持 LM 哈希、MD5、SHA 等系列的密码激活成功教程,同时也支持 Linux、Mac、Windows 平台。

常用参数

-r  使用自定义激活成功教程规则
-o  指定激活成功教程成功后的 hash 及所对应的明文密码的存放位置
-m  指定要激活成功教程的 hash 类型,如果不指定类型,则默认是 MD5
-a  指定要使用的激活成功教程模式,其值参考后面对参数。“-a 0” 字典攻击,“-a 1” 组合攻击;“-a 3” 掩码攻击
-D  指定 opencl 的设备类型
--show      显示已经激活成功教程的 hash 及该 hash 所对应的明文
--force     忽略激活成功教程过程中的警告信息,跑单条 hash 可能需要加上此选项
--remove    删除已被激活成功教程成功的 hash
--username      忽略 hash 文件中的指定的用户名,在激活成功教程 linux 系统用户密码 hash 可能会用到
--increment     启用增量激活成功教程模式,你可以利用此模式让 hashcat 在指定的密码长度范围内执行激活成功教程过程
--increment-min         密码最小长度,后面直接等于一个整数即可,配置 increment 模式一起使用
--increment-max         密码最大长度,同上
--outfile-format        指定激活成功教程结果的输出格式 id ,默认是 3
--self-test-disable 关闭启动自检

爆破模式

-a

0 | Straight    (字段激活成功教程)
1 | Combination (组合激活成功教程)
3 | Brute-force (掩码暴力激活成功教程)
6 | Hybrid Wordlist + Mask(字典+掩码激活成功教程)
7 | Hybrid Mask + Wordlist(掩码+字典激活成功教程)

字符类型

数据库内置系统表学习

掩码举例

八位数字密码:?d?d?d?d?d?d?d?d
八位未知密码:?a?a?a?a?a?a?a?a
前四位为大写字母,后面四位为数字:?u?u?u?u?d?d?d?d
前四位为数字或者是小写字母,后四位为大写字母或者数字:?h?h?h?h?H?H?H?H
前三个字符未知,中间为admin,后三位未知:?a?a?aadmin?a?a?a
6-8位数字密码:--increment --increment-min 6 --increment-max 8 ?d?d?d?d?d?d?d?d
6-8位数字+小写字母密码:--increment --increment-min 6 --increment-max 8 ?h?h?h?h?h?h?h?h

使用示例:

数据库内置系统表学习

mysqlhash激活成功教程

查询

数据库内置系统表学习

将哈希保存为本地文件然后用hashcat激活成功教程

数据库内置系统表学习
mssql哈希激活成功教程

查询

select name,password_hash from sys.sql_logins where name=”sa”

数据库内置系统表学习

然后把hash保存进行激活成功教程

mssql各版本加密形式

mssql2000

select name,password from master.dbo.sysxlogins 
Hash格式: 
0x0100(固定) + 8位key+40位HASH1 +40位HASH2
0x0100AC78A243F2E61FA800A7231C501D49CDA5B93A8A2294DC68AE487C99233F245F86A9ED5749F1838021EE1610

MSSQL 2005版本

select name,password_hash from sys.sql_logins
Hash格式:
0x0100(固定) +8位key+ 20位HASH1 + 20位HASH2 
0x01004086CEB698DB9D0295DBF84F496FDDCECADE1AE5875EB294

MSSQL 2008 R2版本

Select name,password_hash from sys.sql_logins where name = "sa"
Hash格式:
0x0100(固定) +8位key+ 20位HASH1 + 20位HASH2 
0x0100A9A79055CACB976F1BE9405D2F7BE7B2A98003007978F821

原文地址:https://www.cnblogs.com/-xiaopeng1/archive/2022/10/12/16785044.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4659.html

(0)
上一篇 2023-06-10 12:30
下一篇 2023-06-10

相关推荐

  • 【SQL】sql update 多表关联更新方法总结

    【SQL】sql update 多表关联更新方法总结
    #表结构: 1、表一:Test1 Id name age 1 2 2、表二:Test2 Id name age 1 小明 10 2 小红 8 #实现将表Te…

    2023-04-17
    176
  • 数据库未来发展趋势(上)

    数据库未来发展趋势(上)数据库是IT技术栈中承上启下的关键一层,具有如下特性: 向上承托应用开发与运行,是应用生态关键组成之一。 向下对接硬件和OS,对数据处理应用屏蔽底层硬件复杂性和兼容性。 数据库系统是IT技术栈中的独…

    2023-04-13
    141
  • MySQL数据库多表查询

    MySQL数据库多表查询MySQL数据库多表查询 [toc] 多表查询 1. 查询结果来自于多张表,即多表查询 子查询 常用在WHERE子句中的子查询 1. 用于比较表达式中的子查询;子查询仅能返回单个值(查询s1表中大于平

    2022-12-21
    163
  • Linux下卸载Anaconda的方法

    Linux下卸载Anaconda的方法很多人都喜欢在Linux系统中使用Anaconda来管理Python的环境。但是有时候,你需要卸载掉Anaconda。如果你没有正确卸载,可能会遇到一些问题。本文将介绍如何在Linux下卸载Anaconda。

    2024-06-06
    50
  • Python filter()函数用法

    Python filter()函数用法
    Python是一种高级编程语言,具有简洁、易读、易于学习和理解的特点。而其中一种非常有用的函数就是filter()函数。在Python中,filter()函数用于从Python列表中过滤具有特定标准的元素,并在新列表中返回它们。本文将详细介绍Python中filter()函数的用法及其示例。

    2024-04-28
    63
  • 数据中有emoji,导致插入不了数据库

    数据中有emoji,导致插入不了数据库前言 前两天负责的系统,因为需要获取用户的昵称并进行入库,但是有个别用户的昵称中存在emoji表情,导致入库时报错。 报错内容: java.sql.SQLException: Incorrect st

    2023-04-28
    153
  • 502 bad gateway什么原因_502 bad gateway手机

    502 bad gateway什么原因_502 bad gateway手机

    2023-04-19
    162
  • Python字典:快速查找和管理数据

    Python字典:快速查找和管理数据Python是一种强大的编程语言,拥有多种数据结构来帮助开发人员处理和管理数据。字典(Dictionary)是Python中最常用的数据结构之一。Python字典提供了基于键(key)和值(value)的快速查找和管理数据的方式。当你需要管理键和值对应关系时,Python字典是最为合适的选择。

    2024-03-03
    72

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注