ServiceNow多版本输入验证与模板注入漏洞利用分析

本文详细分析了ServiceNow平台CVE-2024-4879漏洞,涉及输入验证不当导致的远程代码执行,包含漏洞原理、利用代码实现及数据库配置提取技术。

ServiceNow多版本 - 输入验证与模板注入漏洞分析

漏洞概述

ServiceNow平台存在输入验证漏洞(CVE-2024-4879),影响Vancouver、Washington DC和Utah多个版本。该漏洞允许未经身份验证的远程攻击者执行代码,CVSS评分为9.8(严重)。

技术细节

受影响版本

  • Utah Patch 10 Hot Fix 3之前所有版本
  • Utah Patch 10a Hot Fix 2之前所有版本
  • Vancouver Patch 6 Hot Fix 2之前所有版本
  • Vancouver Patch 7 Hot Fix 3b之前所有版本
  • Vancouver Patch 8 Hot Fix 4之前所有版本
  • Vancouver Patch 9之前所有版本
  • Vancouver Patch 10之前所有版本
  • Washington DC Patch 1 Hot Fix 2b之前所有版本
  • Washington DC Patch 2 Hot Fix 2之前所有版本
  • Washington DC Patch 3 Hot Fix 1之前所有版本
  • Washington DC Patch 4之前所有版本

漏洞原理

漏洞存在于ServiceNow的模板注入机制中,攻击者可通过精心构造的Jelly模板实现远程代码执行。

利用代码分析

核心利用载荷

1
exploit_path = "/login.do?jvar_page_title=%3Cstyle%3E%3Cj:jelly%20xmlns:j=%22jelly%22%20xmlns:g=%27glide%27%3E%3Cg:evaluate%3Egs.addErrorMessage(668.5*2);%3C/g:evaluate%3E%3C/j:jelly%3E%3C/style%3E"

技术实现

  1. 输入验证绕过:通过URL参数注入恶意模板
  2. 模板注入:利用Jelly模板的evaluate功能执行任意代码
  3. 信息提取:通过文件读取获取数据库配置信息

功能特性

  • 支持单目标和批量扫描
  • 多线程并发检测
  • 详细的日志输出系统
  • 自动化的配置信息提取
  • SSL验证禁用支持

检测方法

脚本通过发送特定载荷并检查响应中是否包含"1337"(668.5*2的结果)来判断漏洞存在性。

影响范围

  • 未经身份验证的远程代码执行
  • 系统完全沦陷
  • 数据泄露
  • 服务中断

技术依赖

  • requests>=2.25.1
  • colorama>=0.4.4
  • urllib3

防护建议

及时更新到最新补丁版本,加强输入验证和过滤机制。


comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计