此脚本演示了如何利用系统中使用 iconv 库时对字符编码转换处理不当的漏洞(如 CVE-2024-2961 所述)。它允许攻击者通过利用 PHP filter 链和有缺陷的编码处理来读取服务器上的任意文件。
该脚本自动化上传精心构造的有效载荷、获取结果文件并显示其内容的过程。它基于文章中详细描述的研究成果:Iconv CVE-2024-2961:利用字符编码转换
脚本遵循以下步骤:
有效载荷创建
创建一个 PHP filter 链有效载荷,利用 iconv 编码转换来读取服务器上的任何文件。该有效载荷旨在绕过常规限制,从而允许访问诸如 /etc/passwd 或其他敏感文件。
文件上传
向目标服务器的 admin-ajax.php 端点发送 POST 请求,伪装成图片上传。有效载荷隐藏在请求中,使服务器将其当作合法文件进行处理。
文件下载
上传有效载荷后,脚本下载现在包含目标文件内容的文件。最后,提取并显示这些内容。
requests 库(使用 pip install requests 安装)iconv 和 PHP 版本的易受攻击服务器。克隆仓库或下载脚本:
git clone https://github.com/kyotozx/CVE-2024-2961-Remote-File-Read.git
cd CVE-2024-2961-Remote-File-Read
运行脚本:
python3 lfi.py
根据提示操作:
/etc/passwd)。1)。脚本执行内容:
远程文件读取利用 - CVE-2024-2961
输入要读取的文件路径(例如 /etc/passwd):/etc/passwd
输入上传用的数字 ID(例如 1):1
文件上传成功:http://blog.bigbang.htb/wp-content/uploads/2025/01/1-50.png
文件内容:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
本脚本仅供教育和授权测试目的使用。未经明确许可,请勿在系统上使用。