问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
Cacti SQL注入漏洞分析(CVE-2023-51448)
漏洞分析
一次php环境下SQL注入漏洞分析
前言 -- Cacti提供了一个操作监控和故障管理框架。在1.2.25及更早版本中,可以通过'pollers.php'脚本执行任意SQL代码。授权用户可能能够执行任意SQL代码。易受攻击的组件是'pollers.php'。漏洞的影响-任意SQL代码执行。截至发布时,补丁似乎不存在。 环境搭建 ---- 在include下config.php中配置好数据库连接信息 ![image-20240326175937912](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-a787d04e95769731e4038bac0be3bb061b1a54b8.png) 使用小皮面板创建数据库 ![image-20240326180033945](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-02fa9bfa1db2d372245cb554a80223d99172f74b.png) 数据库连接软件连接,导入根目录下cati.sql文件 ![image-20240326180104855](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-3448a15f8bc51e830da48c125c9854a3e0eeca2c.png) 访问到就ok ![image-20240326180138595](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-2458926f0c11abb9db82eeb62b1c0e92ae483ab3.png) 漏洞复现 ---- ![img](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-6aa24ab02cfd1f823645813bb374d058e3c9f116.png) 漏洞分析 ---- 根据漏洞简介,最终在pollers.php文件第427行发现可疑点,很明显的sql拼接 ![image-20240326162900790](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-f98d982a84ff25aa927f9de21ac510261fc47b09.png) 寻找一下`poller_host_duplicate`方法的调用处,在该文件中只有一处位于`form_save`方法的321行调用到 ![image-20240326163127989](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-ac229b366856032423018ff8716d3a822ce734e2.png) 继续寻找发现在action参数为save时,`form_save`方法会被调用到 ![image-20240326163710695](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-e041e31b15fa4937229cc414038588fcc4fde85d.png) 现在的调用链就很清楚了 ```php action="save"-->from_save()-->poller_host_duplicate()-->sql注入 ``` 可以看到`$host`变量的值由 `form_save`方法`$save['dbhost']`传递,通过`form_input_validate(get_nfilter_request_var('dbhost'), 'dbhost', '', true, 3)`来获取 ![image-20240326164148631](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-8269b9d8a0e404a938268c1d5c40b62871220a2b.png) ![image-20240326165609235](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-baddce5ee3e691d73a8eee470ee8b285109394b4.png) 在`get_nfilter_request_var`方法用来获取请求中`dbhost`变量的值 ![image-20240326172313144](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-4a9ec874eedc7c6ec374fa2c1dc04ed90d2c9923.png) 在`form_input_validate`方法中也没有对sql注入的防范,以至于`$save['dbhost']`就是用户输入的值 ![image-20240326172203359](https://shs3.b.qianxin.com/attack_forum/2024/03/attach-77e1cfb92e028556887d7c7a1356bddb9b68c665.png) 总结 -- 关键的两个参数`dbhost`和`action`,`dbhost`参数是注入点,`action`的值需要为`save`
发表于 2024-04-03 09:00:01
阅读 ( 13676 )
分类:
漏洞分析
0 推荐
收藏
3 条评论
RCE
2024-04-07 10:55
CVE 编号是不是不对? https://avd.aliyun.com/detail?id=AVD-2023-51448
RCE
回复
RCE
刚开始那会儿看不一致 可能后来阿里云修正了
Yu9
回复
RCE
师傅,和你发的这个一样哈!
请先
登录
后评论
请先
登录
后评论
Yu9
9 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!