Weblogic 10.3.6 AES密码解密:从任意文件读取到后台登录的3步实战

Weblogic 10.3.6 AES凭据解密实战:从文件读取到权限获取的三步进阶

1. 中间件安全测试的核心突破点

在企业级Java应用生态中,Weblogic作为主流中间件长期占据重要地位,其安全性直接关系到业务系统的防护等级。当传统弱口令爆破无法奏效时,安全测试人员需要掌握更精细化的技术手段。本方案将聚焦Weblogic 10.3.6版本中加密凭据的解密全流程,通过任意文件读取漏洞实现权限提升的完整技术路径。

典型测试环境特征:

  • Weblogic版本:10.3.6(11g)
  • Java环境:JDK 1.6
  • 存在漏洞:前台任意文件读取
  • 加密方式:AES对称加密(老版本可能使用3DES)

关键文件定位表:

文件类型默认路径存储内容获取方式
加密密钥./security/SerializedSystemIni.datAES加密密钥BurpSuite二进制读取
配置文件./config/config.xml加密后的管理员密码直接下载或Burp读取

2. 加密凭据获取实战

2.1 密钥文件精准获取

SerializedSystemIni.dat作为二进制密钥文件,需要特殊处理避免数据损坏:

# 使用curl测试文件读取(仅作验证,实际需用Burp) curl -v "http://target:7001/hello/file.jsp?path=./security/SerializedSystemIni.dat" --output SerializedSystemIni.dat

BurpSuite专业操作流程

  1. 拦截文件读取请求
  2. 右键响应体选择"Copy to file"
  3. 保存时确保无额外字符添加
  4. 使用Hex编辑器验证文件头尾完整性

常见错误处理:

  • 文件头出现HTTP响应头信息 → 需手动删除
  • 编码转换导致数据损坏 → 保持原始二进制格式

2.2 加密密码提取技巧

config.xml中的密码字段定位需要关注特定标签:

<!-- 关键加密字段示例 --> <node-manager-password-encrypted>{AES}K9bWjC5JkE8LtX7v</node-manager-password-encrypted>

提取时注意:

  • 避免混淆password-encryptedcredential-encrypted
  • 完整复制包括{AES}前缀的整个字符串
  • Windows环境需注意换行符导致的解析错误

3. 解密工具链实战

推荐使用开源解密工具weblogic_decrypt.jar(已验证兼容10.3.6版本):

// 解密命令示例 java -jar weblogic_decrypt.jar \ SerializedSystemIni.dat \ "{AES}K9bWjC5JkE8LtX7v"

参数解析

  • 第一个参数:密钥文件路径
  • 第二个参数:config.xml中提取的加密字符串
  • 输出结果:明文密码(如Oracle@123

工具执行常见问题:

错误类型解决方案
无效密钥检查SerializedSystemIni.dat完整性
解密失败确认加密前缀{AES}包含在参数中
版本不兼容尝试使用JDK 1.6环境运行

进阶技巧:

  • 对于老版本3DES加密,需使用专用解密工具
  • 内存受限环境可添加JVM参数:-Xmx512m

4. 安全防护建议

企业防御方案

  1. 文件权限控制

    • 设置SerializedSystemIni.dat为400权限
    • 限制config.xml的web访问路径
  2. 加密方案升级

    • 迁移至非对称加密方案
    • 定期轮换加密密钥
  3. 漏洞检测

    • 部署文件读取漏洞检测规则
    • 监控异常配置文件访问行为

渗透测试注意事项

  • 合法授权前提下进行测试
  • 加密凭据仅用于安全评估
  • 测试完成后及时清理解密工具

实际测试中发现,Weblogic 12c之后版本加密机制有所增强,但10.3.6等老版本在未打补丁情况下仍存在风险。建议企业用户及时升级到官方支持版本。