SeaCMS v12.9 中未经身份验证的 SQL 注入漏洞 (CVE-2024-29275)

admin 2024年5月28日11:13:28评论35 views字数 979阅读3分15秒阅读模式

一、概述

SeaCMS 是一款基于 PHP 的免费、开源的网站内容管理系统,主要用于管理视频点播资源。近日在 SeaCMS v12.9 版本中发现了一个严重的 SQL 注入漏洞 (CVE-2024-29275),攻击者可以利用该漏洞在未经身份验证的情况下执行任意 SQL 命令,进而可能获得系统的敏感信息或执行任意代码。

二、漏洞细节

该漏洞位于 dmku/index.php 文件中,用户提供的数据未经适当的清理就直接用于 SQL 查询,从而导致了 SQL 注入。以下是问题代码的片段:

// 代码片段示例,展示漏洞存在的位置$sql = "SELECT * FROM table WHERE id = " . $_GET['id'];

在上述代码中,id 参数没有经过任何过滤或转义,直接拼接到 SQL 查询语句中,使得攻击者可以通过该参数注入恶意 SQL 命令。

三、漏洞复现

1. 概念验证 (PoC)

可以通过以下 URL 进行漏洞验证:

http://<your-domain>/js/player/dmplayer/dmku/?ac=del&id=(select(0)from(select(sleep(10)))v)&type=list

2. 复现步骤

  1. 启动一个 SeaCMS v12.9 的测试环境。

  2. 在浏览器中访问上述 URL。

  3. 如果服务器延迟了指定的时间(例如 10 秒),则说明存在 SQL 注入漏洞。

SeaCMS v12.9 中未经身份验证的 SQL 注入漏洞 (CVE-2024-29275)

SeaCMS v12.9 中未经身份验证的 SQL 注入漏洞 (CVE-2024-29275)

四、漏洞影响

该漏洞允许未经身份验证的远程攻击者通过 id 参数注入任意 SQL 命令,可能导致数据库数据泄露、篡改,甚至执行任意代码。

五、修复建议

目前,官方已经发布了补丁来修复此漏洞。用户应尽快更新到最新版本以避免风险。

修复方法

  1. 升级到最新版本:下载并安装最新版本的 SeaCMS。

  2. 代码修复:对用户输入的参数进行严格的过滤和转义,使用预处理语句来执行 SQL 查询。

// 使用预处理语句防止 SQL 注入
$stmt = $mysqli->prepare("SELECT * FROM table WHERE id = ?");
$stmt->bind_param("i", $_GET['id']);
$stmt->execute();

结论

SQL 注入漏洞是 Web 应用程序中常见且危害严重的漏洞。开发者应始终确保对用户输入进行适当的过滤和转义,并使用预处理语句来执行 SQL 查询。

原文始发于微信公众号(云梦安全):SeaCMS v12.9 中未经身份验证的 SQL 注入漏洞 (CVE-2024-29275)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月28日11:13:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SeaCMS v12.9 中未经身份验证的 SQL 注入漏洞 (CVE-2024-29275)https://cn-sec.com/archives/2786922.html

发表评论

匿名网友 填写信息