某HR系统组合漏洞挖掘过程

前言

某天在项目中遇到一个奇怪的人才管理系统,fofa跑了一下发现用的还挺多,所以就有了后面的审计过程。在互联网翻到一份过期的源码,本地搭建起来开始审计。

审计过程

先看一下常见的RCE漏洞,发现这套系统大量的代码调用了beetl这个库,这个库是国内一个大佬开发的模板引擎,类似freemarker。

找到这套模板引擎漏洞触发点在GroupTemplate#getTemplate,全局搜了一下调用点发现在ComputationRuleUtil#getValue这个方法中有一处调用并且没有写死模版内容,其他多处都写死了模板内容。

可以看到该方法中拼接了s2,s2最终是来自于String src这个参数,期间被rule方法做了处理,观察rule方法可以发现,当我们传入的第一个字符串参数不包含@sum@avg就会直接返回我们传入的参数

下面全局搜索哪里调用了ComputationRuleUtil#getValue这个方法。

找到PerformanceIndicatorServiceImpl#checkRule方法中有调用,参数也是从外部接收的

继续查找checkRule的调用位置,定位到入口点/checkRule,到此请求参数rule并未发现任何过滤。

后面看了一下shiro的鉴权配置,发现该接口并不是前台的。

后面看了一下项目用的spring是低版本的存在一个登录绕过漏洞,可以通过/druid/../xxxx形式直接访问我们找到的后台路由。构造回显效果如下

由于beetl高版本有黑名单过滤常见命令执行的payload,这里可以利用反射加载js去构造。

声明:该漏洞已通报给相关单位修复,本文章仅供代码审计学习

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1.章 方案背景 5 1.1. XX集团概述 5 1.2. XX集团HR项目背景 5 第2.章 现状分析及建设思路 6 2.1. XX集团人力资源管理诊断及应对措施 6 2.1.1. 主要管理问题 6 2.1.2. 主要应对措施 6 2.2. XX集团HR建设思路 9 2.2.1. HR建设模式选择 9 2.2.2. HR建设阶段规划 9 第3.章 需求分析 13 3.1. 业务需求 13 3.1.1. 组织规划 13 3.1.2. 职位管理 13 3.1.3. 员工关系 13 3.1.4. 薪酬福利 13 3.1.5. 绩效管理 13 3.1.6. 培训管理 14 3.1.7. 招聘管理 14 3.2. 功能需求 14 3.2.1. 人事管理 14 3.2.2. 薪酬福利 15 3.2.3. 考勤休假 15 3.2.4. 培训管理 16 3.2.5. 招聘管理 16 3.2.6. 绩效管理 16 3.2.7. 报表中心 17 3.2.8. 员工自助 17 3.2.9. 业务后台管理 17 3.3. 非功能性需求及技术要求 17 3.3.1. 响应实效要求 17 3.3.2. 可靠性要求 18 3.3.3. 容量和吞吐量 18 3.3.4. 可扩展性要求 18 3.3.5. 用户界面及操作性要求 18 3.4. 信息安全保障需求 18 3.5. 设备需求 19 第4.章 XXHR总体设计 20 4.1. 系统概述 20 4.2. 系统设计原则 20 4.3. 系统体系架构 21 4.4. 系统技术结构 23 4.5. 网络拓扑结构 23 4.6. 系统特点 24 4.6.1. 功能特点 24 4.6.2. 技术特点 27 第5.章 XXHR解决方案 30 5.1. 总体建设目标 30 5.2. HR系统功能介绍 30 5.2.1. 组织规划 31 5.2.2. 员工关系管理 34 5.2.3. 合同管理 41 5.2.4. 薪酬福利管理 42 5.2.5. 考勤休假管理 50 5.2.6. 培训管理 53 5.2.7. 招聘管理 58 5.2.8. 绩效管理 62 5.2.9. 报表中心 68 5.2.10. 员工自助 71 5.2.11. 业务后台维护 72 5.3. 协同流程平台 77 5.3.1. 概述 77 5.3.2. 系统建设目标 77 5.3.3. 协同流程平台介绍 77 5.3.4. 流程管理工具的组成 81 5.3.5. 全生命周期的流程管理 83 第6.章 技术解决方案 91 6.1. XX集团技术和软硬件配置 91 6.1.1. 技术要求及配置现状 91 6.1.2. 软硬件配置推荐 91 6.2. 技术路线 93 6.2.1. 选择先进的B/S运算模式 93 6.2.2. 选择先进的J2EE多层体系架构 94 6.2.3. 采用优秀的 Java 语言 95 6.2.4. 采用先进的设计模式 95 6.2.5. 强大的二次开发平台 96 6.2.6. 安装/配置方案 97 6.2.7. 技术支持方案 97 6.2.8. 安全方案 98 第7.章 实施方案 102 7.1. 项目实施计划 102 7.1.1. 项目各阶段实施计划 102 7.1.2. 项目实施进度 103 7.2. 项目管理 106 7.2.1. 项目组组织机构 106 7.2.2. 各级项目组织的任务和权限 107 7.2.3. 项目实施组织中各成员的任务和权限 108 7.2.4. 项目开发组织中各成员的任务和权限 111 7.2.5. XX项目组成员简介 113 7.3. 项目风险及对策 115 7.3.1. 时机不成熟的风险 115 7.3.2. 项目实施过程的风险 116 7.4. 成功关键因素 117 第8.章 质量保证措施 121 8.1. 测试任务与步骤 121 8.1.1. 制定测试策略和过程 121 8.1.2. 设计测试用例和数据 122 8.1.3. 建立测试环境 125 8.1.4. 测试执行 125 8.2. 工程系统集成测试 126 第9.章 培训、技术支持与服务计划 130 9.1. 培训方案 130 9.1.1. 培训意义 130 9.1.2. 培训目标 130 9.1.3. 培训对象 130 9.1.4. 培训方式 131 9.2. 技术支持与服务计划 131 9.2.1. VIP贵宾服务 131 9.2.2. 软件开发及客户化服务 131 9.2.3. 应用软件实施服务 132 9.2.4. 应用软件维护及支持服务 132 9.2.5. 服务模式 132 第10.章 验收方法和标准 134 10.1. 验收原则 134 10.2. 验收阶段 134 10.3. 验收规则 134 10.3.1. 试点功

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值