Mysql系统表学习
0x00 学习任务概述
- 如何利用数据库的功能读写文件,需要什么样的条件才可以读写
- 学习数据库系统表功能,如何利用sql语句查询库名、表名、字段名、内容以及当前用户等基本信息,将学习过程中关键部分整理成报告
- 尝试查询处用户的hash,并使用hashcat来对获取的hash进行暴力破解
0x01 数据库读功能
- 读取文件函数
- load_file()
- load data infile()
- system cat
load_file()和load data infile 读取文件的方法:新建一个表,读取文件为字符串形式插入表中,然后读出表中数据.
需满足条件: - 有file权限
- secure_file_priv值不为NULL
查看secure_file_priv是否为空
mysql> show global variables like "secure_file_priv"; |
load_file
读取文件,首先在D盘下新建一个1.txt文件,内容:mysqlceshi
在数据库中新建一张表
create table text(cmd text);//新建一个text表,字段为cmd,文本类型 |
读取成功!
load data infile
在注入中load_file经常被拦截,可以使用此方法绕过
mysql> load data infile 'd:/2.txt' into table text;//读取文件 |
system cat
mysql版本大于5.0时,也可以使用此命令读取文件,注意:此方法只能本地读取,远程无法使用,无法越权使用。
貌似windows下无法使用system cat函数???,测试没成功,使用以管理员运行的命令行也失败,难道只有在linux下才能成功? |
0x02 数据库写(导出)
- outfile
将数据库内容导出到某文件中,具有写(读写权限)
mysql> select * from text into outfile 'd:/3.txt'; |
0x03 数据库系统表
安装mysql数据库后,数据库中默认会有三张表
- information_schema
- 存在数据库所有信息,使用show databases;查看所有信息引用的就是此数据库中的内容
+---------------------------------------+ |
- performance_schema
- 监控mysql server运行过程中的资源消耗情况
mysql> show tables; |
- mysql
- 数据库用户权限表,记录所有数据库、表能执行那些操作.
mysql> show tables; |
0x04 数据库查询操作
查询数据库中所有库名
mysql> select group_concat(schema_name) from information_schema.schemata;
+-----------------------------------------------------------------------------+
| group_concat(schema_name) |
+-----------------------------------------------------------------------------+
| information_schema,mag,mysql,performance_schema,study,test,ultrax,w3cschool |
+-----------------------------------------------------------------------------+
1 row in set (0.00 sec)查询数据库中所有表名
---------------------------------------------------------------------------+
| group_concat(table_name)
---------------------------------------------------------------------------+
| CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET_APPLICABILITY,COLUMNS,COLUMN_PRIVILEGES,ENGINES,EVENTS,FILES,GLOBAL_STATUS,GLOBAL_VARIABLES,KEY_COLUMN_USAGE,PARAMETERS,PARTITIONS,PLUGINS,PROCESSLIST,PROFILING,REFERENTIAL_CONSTRAINTS,ROUTINES,SCHEMATA,SCHEMA_PRIVILEGES,SESSION_STATUS,SESSION_VARIABLES,STATISTICS,TABLES,TABLESPACES,TABLE_CONSTRAINTS,TABLE_PRIVILEGES,TRIGGERS,USER_PRIVILEGES,VIEWS,INNODB_BUFFER_PAGE,INNODB_TRX,INNODB_BUFFER_POOL_STATS,INNODB_LOCK_WAITS,INNODB_CMPMEM,INNODB_CMP,INNODB_LOCKS,INNODB_CMPMEM_RESET,INNODB_CMP_RESET,INNODB_BUFFER_PAGE_LRU,mag,columns_priv,db,event,func,general_log,help_category,help_keyword,help_relation,help_topic,host,ndb_binlog_index,plugin,proc,procs_priv,proxies_priv,servers,slow_log,tables_priv,time_zone,time_zone_leap_second,time_zone_name,time_zone_transition,time_zone_transition_type,user,cond_instances,events_waits_current,events_waits_history,events_waits_history_long,events_waits_summary_by_instance,events_waits_summary_by_thread_by_event_name,events_wait |
----------------------------------------------------------
1 row in set, 1 warning (0.01 sec)查询mag库下所有表(库名可用十六进制转换)
mysql> select group_concat(table_name) from information_schema.tables where table_schema=0x6D6167;
+--------------------------+
| group_concat(table_name) |
+--------------------------+
| mag |
+--------------------------+
1 row in set (0.00 sec)
mysql> select group_concat(table_name) from information_schema.tables where table_schema='mag';
+--------------------------+
| group_concat(table_name) |
+--------------------------+
| mag |
+--------------------------+
1 row in set (0.00 sec)查询数据库下表中所有列
mysql> select group_concat(column_name) from information_schema.columns where table_name='mag';
+---------------------------+
| group_concat(column_name) |
+---------------------------+
| id,name,content |
+---------------------------+
1 row in set (0.02 sec)查询表中所有内容
mysql> select id,name,content from mag;
+----+----------+---------------------+
| id | name | content |
+----+----------+---------------------+
| 1 | admin | dsadsa |
| 2 | 信安之路 | 小白成长计划 |
| 3 | Time | 好好学习,天天向上! |
+----+----------+---------------------+
3 rows in set (0.00 sec)查询数据库当前用户
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)查询数据库当前数据库
mysql> select database();
+------------+
| database() |
+------------+
| mag |
+------------+
1 row in set (0.00 sec)查询数据库当前版本信息
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.40 |
+-----------+
1 row in set (0.00 sec)查询数据库当前存放绝对路径
mysql> select @@datadir;
+-------------------------+
| @@datadir |
+-------------------------+
| D:\phpStudy\MySQL\data\ |
+-------------------------+
1 row in set (0.00 sec)
- 查询数据库中用户hash
mysql> select user,password from mysql.user;
+------+-------------------------------------------+
| user | password |
+------+-------------------------------------------+
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| time | *F050209D4168D5A2E90C044C5EAF99A0F91E9F2B |
| zara | *08F7D6C84224646B57BDF66A6480F337F403F10C |
+------+-------------------------------------------+
4 rows in set (0.00 sec)
0x05 hashcat爆破hash值
- hashcat几种攻击模式
- Straight
- 给定一个字典,hashcat会逐行读取字典中的内容,计算每行的hash值,于目标hash值相比较
使用方法
hashcat -a 0 -m 400 example400.hash(hash值) example.dict(字典)
- 给定一个字典,hashcat会逐行读取字典中的内容,计算每行的hash值,于目标hash值相比较
- Combination
- 组合两个密码字典的内容,hashcat进行组合匹配来比较
使用方法
hashcat -m 0 -a 1 hash.txt dict1.txt dict2.txt
相关参数
-j, --rule-left
-k, --rule-right
- 组合两个密码字典的内容,hashcat进行组合匹配来比较
- Mask Attack
- mask是字符串,由若干个占位符组成,“?|”是一个占位符,其中的“?”是关键字,用于修饰其后的“l”,“?l”合起来表示一个字符集合,除“?l”外,还可以有“?u”、“?d”、“?h”、“?H”、“?s”、“?a”和“?b”,代表的字符集合如下表所
? Charset
l abcdefghijklmnopqrstuvwxyz
u ABCDEFGHIJKLMNOPQRSTUVWXYZ
d 0123456789
h 0123456789abcdef
H 0123456789ABCDEF
s ! “#$%&'()*+,-./:;<=>?@[\]^_`~{|}
a ?l?u?d?s
b 0x00 – 0xff
- mask是字符串,由若干个占位符组成,“?|”是一个占位符,其中的“?”是关键字,用于修饰其后的“l”,“?l”合起来表示一个字符集合,除“?l”外,还可以有“?u”、“?d”、“?h”、“?H”、“?s”、“?a”和“?b”,代表的字符集合如下表所
- Straight
hash值
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | |
命令
.\hashcat64.exe -a 0 -m 300 --force F050209D4168D5A2E90C044C5EAF99A0F91E9F2B .\1.dict -o 2.txt |
本来是爆破成功的,但是忘记截图了。。。现在重新跑提示不支持。。测试半天失败。
不过刚刚把爆破成功的问题打开了,所以这边直接截图爆破成功的文本文件,作为成功结果….
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Time'Blog!
评论