PHP前端开发

如何从MySQL-Front中读取用户密码

百变鹏仔 3小时前 #Python
文章标签 用户密码

本篇文章主要介绍了python3读取mysql-front的mysql密码的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧

前言

同样的套路又来了,继续尝试从配置文件中读取敏感的信息,这次轮到的是MySQL-Front

MySQL-Front就一款开源的mysql管理工具,官方网站www.mysqlfront.de/ 。

配置文件的路径:

MySQL-Front的配置文件存在用户目录下,环境变量是%appdata% 。

在windows7下的存储路径是:

C:Users%user%AppDataRoamingMySQL-FrontAccounts.xml

Accounts.xml这个XML文件里面存储了所有重要的信息,且密码默认不是加密的。上次我忘记mysql root用户的密码,打开这个文件立马就找回密码,

这个算是不加密的好处吧。→_→不过总有刁民想害朕,还是需要保护好这些重要的信息,以免被坏人读取到。

格式化XML

Accounts.xml 中的内容是被压缩成一行的。需要格式化成好看的格式。这类在线工具搜索一下就可以找得到。

Accounts.xml 格式化后的内容如下:


<?xml  version="1.0" encoding="utf-8"?><accounts> <default>127.0.0.1</default> <account> <lastlogin>42847.9391816088</lastlogin> <manualurl></manualurl> <connection>  <database></database>  <host>127.0.0.1</host>  <library>  <filename>libMySQL.dll</filename>  <tunnel_url></tunnel_url>  </library>  <password>root</password>  <port>3306</port>  <user>root</user> </connection> <favorites></favorites> </account> <account> <lastlogin>0</lastlogin> <manualurl></manualurl> <connection>  <database></database>  <host>127.0.0.1</host>  <library>  <filename>libMySQL.dll</filename>  <tunnel_url></tunnel_url>  </library>  <password>daqin</password>  <port>3306</port>  <user>daqin</user> </connection> <favorites></favorites> </account></accounts>

python处理XML、HTML的利器PyQuery

我出于要练习的目的,想要用python的XML标准库处理XML ,但是发python 内置提供了好几种方法:xml.sax xml.dom xml.minidom

以及还有xml.parsers.expat ,选择太多,还是决定用PyQuery,PyQuery是依赖于lxml实现的jquery风格的xml解析和处理库。

lxml算是python很重要的库了,已知pandas,BeautifulSoup等等这些库有部分功能依赖lxml。

输入命令安装即可:

pip install pyquery

看完教程后就能把代码写出来了↓↓↓

python3 读取 MySQL-Front 的密码:


# -*- coding: utf-8 -*-"""Created on 2017-04-22 22:53:35@author: codegay"""import osfrom pyquery import PyQuery as pyqxmlpath = os.environ['appdata']+r'MySQL-FrontAccounts.xml'root = pyq(filename=xmlpath)for r in root('connection').items(): print("----------------------------------------------") print('host:',r('host').text()) print('username:',r('user').text()) print('password:',r('password').text())

运行代码后输出:


----------------------------------------------host: 127.0.0.1username: rootpassword: root----------------------------------------------host: 127.0.0.1username: daqinpassword: daqin