CVE-2024-2961[文件读取RCE问题]
CVE-2024-2961(文件读取 RCE 问题)
学习目标
- 基本了解 CVE-2024-2961 的原理
- 在 Ubuntu 环境下使用 pip 安装依赖库,并运行 python 脚本,理解 weget 命令
- 运用 CVE-2024-2961 自动化脚本进行实操
漏洞描述
这个漏洞能把一个看似人畜无害的任意文件读取,直接升级为远程代码执行(RCE)
基本原理就是 iconv 在转换 ISO-2022-CN-EXT 时出现越界写入,iconv 是 php://filter/ 使用过滤器时会使用的函数.
具体的原理更偏向于 pwn 的知识,这里我们不深究
初始环境的安装
原本以为只是一个小小的 CVE 复现,结果却用了我大半天的时间。
我们得先安装这两个 python 依赖库
1 | pip3 install pwntools |
完了之后把这个脚本给下载下来就能运行了
1 | wget https://raw.githubusercontent.com/ambionics/cnext-exploits/main/cnext-exploit.py |
但问题出在哪呢?
pwntools 这个库,它在安装时报有前置库
装前置库的时候,它又报有前置的前置库
这些都还是小问题,但有的库涉及到 c 语言编译,这又要在具有 c 编译的 python 环境下安装
这里又下了个 minggw64 启动虚拟环境运行 pip,把全部的东西下载好了,又告诉我 windows 系统下这个脚本存在路径不兼容问题
最后只有选择在 linux 环境下运行,我电脑里的 CentOS 也是运行不了的,最后装了个 Ubuntu,网络又经过了
一系列配置,最后才在 Ubuntu 的环境下顺利运行
复现过程
复现条件
靶机要求
- 系统底层:使用存在漏洞的
glibc版本 (≤2.39) 且ISO-2022-CN-EXT字符集未被禁用 。 - PHP 应用:存在任意文件读取漏洞,且
php://filter和zlib可用,通过复杂的过滤器链触发漏洞并劫持内存。
环境配置
这里就不需要多说了,在 Ubuntu 上运行这三条命令,脚本就装好且能正常运行了
1 | pip3 install pwntools |
漏洞利用
就比如这样一道题吧,我们正常读文件,有的文件是权限不够的,读文件根本拿不到 flag
1 | <?php |

但如果提升为 RCE,就有更多的机会
装了这个脚本后我们直接输入这么一个命令,其中黄底是我给这个脚本起的名字,复制时需要修改
1 | python3 CVE-2024-2961.py http://node1.anna.nssctf.cn:22883 "env>2.txt" |
这个 RCE 是没有回显的,所以我们才要像这样写入文件

提示利用成功就说明执行成功了,我们访问/2.txt 看看

flag 就出来了
本次 CVE 复现结束 🎆
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 拂云观 · legend1440!
![CVE-2022-47615[任意文件读取]](/img/BqvBbcdufoB3S8xJ1FQcnMsenkh.png)

