详解MYSQL数据库密码的加密方式及破解方法(1)
转自 http://hi.baidu.com/davice_li/blog/item/5f5b470be3307e32b0351db5.html
MySQL数据库用户密码跟其它数据库用户密码一样,在应用系统代码中都是以明文出现的,在获取文件读取权限后即可直接从数据库连接文件中读取,例如asp代码中的conn.asp数据库连接文件,在该文件中一般都包含有数据库类型,物理位置,用户名和密码等信息;而在MYSQL中即使获取了某一个用户的数据库用户(root用户除外)的密码,也仅仅只能操作某一个用户的数据库中的数据。
在实际攻防过程中,在获取Webshell的情况下,是可以直下载MYSQL数据库中保留用户的user.MYD文件,该文件中保存的是MYSQL数据库中所有用户对应的数据库密码,只要能够破解这些密码那么就可以正大光明的操作这些数据,虽然网上有很多修改MYSQL数据库用户密码的方法,却不可取,因为修改用户密码的事情很容易被人发现!
研究MYSQL数据库的加解密方式,在网络攻防过程中具有重要的意义;试想一旦获取了网站一定的权限后,如果能够获取MYSQL中保存用户数据,通过解密后,即可通过正常途径来访问数据库;一方面可以直接操作数据库中的数据,另一方面可以用来提升权限。通过在网络上查找资料,目前关于破解MYSQL方面的研究不多,本文算是抛砖引玉,虽然效果不是特别好,但也算是对破解MYSQL数据库用户密码的一种探讨和尝试。
(一)MYSQL加密方式
MYSQL数据库的认证密码有两种方式,MYSQL 4.1版本之前是MYSQL323加密,MYSQL 4.1和之后的版本都是MYSQLSHA1加密,MYSQL数据库中自带Old_Password(str)和Password(str)函数,它们均可以在MYSQL数据库里进行查询,前者是MYSQL323加密,后者是MYSQLSHA1方式加密。
(1)以MYSQL323方式加密
SELECT Old_Password('bbs.antian365.com'); |
查询结果MYSQL323 = 10c886615b135b38
(2)以MYSQLSHA1方式加密
SELECT Password('bbs.antian365.com'); |
查询结果MYSQLSHA1 = *A2EBAE36132928537ADA8E6D1F7C5C5886713CC2 执行结果如图1所示,MYSQL323加密中生成的是16位字符串,而在MYSQLSHA1中生存的是41位字符串,其中*是不加入实际的密码运算中,通过观察在很多用户中都携带了“*”,在实际破解过程中去掉“*”,也就是说MYSQLSHA1加密的密码的实际位数是40位。
(二)MYSQL数据库文件结构
1.MYSQL数据库文件类型
MYSQL数据库文件共有“frm”、“MYD”“和MYI”三种文件,“.frm”是描述表结构的文件,
“.MYD”是表的数据文件,“.MYI”是表数据文件中任何索引的数据树。一般是单独存在一个文件夹中,默认是在路径“C:\Program Files\MYSQL\MYSQL Server 5.0\data”下。
2.MYSQL数据库用户密码文件
在MYSQL数据库中所有设置默认都保存在“C:\Program Files\MYSQL\MYSQL Server 5.0\data\MYSQL”中,也就是安装程序的data目录下,如图2所示,有关用户一共有三个文件即user.frm、user.MYD和user.MYI,MYSQL数据库用户密码都保存在user.MYD文件中,包括root用户和其他用户的密码。
(三)破解MYSQL密码
1.获取MYSQL数据库用户密码加密字符串
使用UltraEdit-32编辑器直接打开user.MYD文件,打开后使用二进制模式进行查看,如图3所示,可以看到在root用户后面是一串字符串,选中这些字符串将其复制到记事本中,这些字符串即为用户加密值,即506D1427F6F61696B4501445C90624897266DAE3。
注意:
(1)root后面的“*”不要复制到字符串中。
(2)在有些情况下需要往后面看看,否则得到的不是完整的MYSQLSHA1密码,总之其正确的密码位数是40位。
详解MYSQL数据库密码的加密方式及破解方法(1)相关推荐
- 详解MYSQL数据库密码的加密方式及破解方法
MYSQL加密方式:http://blog.csdn.net/listeningsea/article/details/8139641
- MYSQL数据库密码的加密方式及破解方法
转自http://hi.baidu.com/davice_li/blog/item/5f5b470be3307e32b0351db5.html MySQL数据库用户密码跟其它数据库用户密码一样,在应用 ...
- mysql 碎片率_详解Mysql数据库表碎片计算公式、碎片整理方法,值得收藏
概述 我们经常会使用VARCHAR.TEXT.BLOB等可变长度的文本数据类型.不过,当我们使用这些数据类型之后,就不得不做一些额外的工作--MySQL数据表碎片整理. 每当MySQL从你的列表中删除 ...
- mysql mgr 三节点_详解MySQL 5.7 MGR单主确定主节点方法
我们行MGR年底要上线了,每天都要看官方文档学习,做测试,坚持每天写一个小知识点,有想一起学习的么~ MySQL 5.7 MGR单主确定主节点是哪个,我们可以通过成员ID来判断,然后结合read_on ...
- [转]常见的用户密码加密方式以及破解方法
[作者]张辉,就职于携程技术中心信息安全部,负责安全产品的设计与研发. 作为互联网公司的信息安全从业人员经常要处理撞库扫号事件,产生撞库扫号的根本原因是一些企业发生了信息泄露事件,且这些泄露数据未加密 ...
- [渗透攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包
这是最近学习渗透和网站攻防的基础性文章,前面文章从数据库原理解读了防止SQL注入.SQLMAP的基础用法.数据库差异备份.Caidao神器.这篇文章将详细讲解MySQL数据库攻防知识,有点类似第一篇文 ...
- 修改servu数据库密码 servu加密方式
项目要求可以有用户自行修改servu密码.servu可以通过odbc访问access\mysql\sqlserver数据库.我们直接通过创建web来修改就可以了. 不过问题来了,密码是加密的...通过 ...
- php mysql source_详解MySQL数据库中有关source命令
这篇文章主要介绍了MySQL 数据库 source 命令详解及实例的相关资料,需要的朋友可以参考下 MySQL 数据库 source 命令详解及实例 MySQL 数据库 source 命令,该命令是数 ...
- mysql 编辑数据库内容_详解mysql数据库增删改操作
插入数据 insert into 表名(列名1,列名2,列名3) values(值1,值2,值3); insert into user(user_id,name,age) values(1,'nice ...
最新文章
- AWS — AWS Local Zone
- Linux常用命令: zip、unzip 压缩和解压缩命令
- Jmeter之BeanShell
- Linux下读取smBIOS源码,Linux下读取SMBIOS信息
- 位枚举(Bit Flags)
- linux80端口检查,Linux下基于端口的服务检查脚本
- Java中的对象、private关键字、this关键字、构造方法
- selenium设置js加载的时限,防止持续加载页面
- HALCON: HALCON 20.11.0.0 Progress主要新特性
- Python基础——continute与break(循环控制)
- UITableVIew与UICollectionView带动画删除cell时崩溃的处理
- k8s基本概念-如何使用私有regsitry
- 华为交换机做qos案例_华为交换机 01-08 QoS
- apache camel_使用Apache Camel开始使用REST服务
- VMware下安装Windows ME
- html页面拼接,表格数据
- (node:22344) [DEP0123] DeprecationWarning: Setting the TLS ServerName to an IP address is not permit
- 从零学习游戏服务器开发(一) 从一款多人联机实时对战游戏开始
- C++ setsockopt() 函数
- Redis基本事务的操作