【MySQL】身份验证绕过、搭建【Docker】

本文详细介绍了MySQL的CVE-2012-2122漏洞,该漏洞允许通过不断的密码尝试来绕过身份验证。文章涵盖前期准备,包括Docker沙盒的安装和靶场搭建,然后通过docker-compose部署漏洞环境。文中还提供了两种攻击方法,一是利用msfconsole,二是使用shell命令,展示了如何复现漏洞并上传木马,最后提到了通过菜刀连接靶机shell及使用wireshark抓包分析。

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

 

CVE-2012-2122漏洞介绍

当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库

前期准备:

        0、安装Docker沙盒

        1、搭建vulhub 靶场

        2、下载vulhub源码

用docker-compose部署cve2012-2122漏洞 

 进入靶场目录,关闭防火墙,重启docker服务

 拉取镜像

 容器运行成功

关闭宿主机MySQL 

 

### 关于 VulHub 中 SQL 注入漏洞环境构建 #### 环境准备 为了搭建一个用于学习和测试的 SQL 注入漏洞环境,可以利用 Docker 和 VulHub 提供的镜像来快速部署。VulHub 是一个基于 Docker安全漏洞演示平台,能够帮助研究人员轻松设置各种 Web 应用程序的安全问题场景。 安装并配置好 Docker 后,在终端执行如下命令下载特定版本带有已知 SQL 注入缺陷的应用容器: ```bash git clone https://github.com/vulhub/vulhub.git cd vulhub/mysql/sql-d ``` 这组指令会启动 MySQL 数据库服务以及包含潜在 SQL 注入风险的 PHP 测试页面[^1]。 #### 实验过程 当上述服务正常运行后,可以通过浏览器访问 `http://localhost` 或者根据实际情况调整 IP 地址查看应用界面。此时应该能看到一个简单的登录表单或其他交互式输入框,这些地方往往是实施 SQL 注入攻击的目标位置。 尝试构造恶意查询语句提交给服务器端处理,观察响应结果的变化情况。例如,在用户名字段中输入 `' OR '1'='1` 并留空密码项再点击提交按钮,则可能绕过身份验证机制直接进入后台管理系统[^2]。 需要注意的是,实际操作过程中应当遵循合法合规的原则仅限于实验环境中进行探索而不应用于任何非法目的之上。 #### 安全加固建议 对于开发者而言,预防此类安全隐患的关键在于采用预编译语句(Prepared Statements)、存储过程等方式替代动态拼接 SQL 字符串的做法;同时启用参数化查询功能确保用户提供的数据不会被当作代码执行的一部分对待。另外定期审查应用程序源码质量也是必不可少的工作环节之一[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值