Atom CMS SQL注入(CVE-2022-25488)
*一、漏洞概述 **
*1.1 漏洞简介*
·漏洞名称:Atom CMS SQL注入
·漏洞编号:CVE-2022-25488
·漏洞类型:SQL注入
·漏洞威胁等级:超危
·影响范围:Atom CMS 2.0
·利用条件:默认配置
*1.2 组件描述*
Atom CMS是一个内容管理系统。
*1.3 漏洞描述*
Atom CMS 2.0版本 存在安全漏洞,该漏洞源于通过 /admin/ajax/avatar.php 中的 id 参数发现 Atom CMS 2.0版本 存在 SQL 注入漏洞。
*二、漏洞复现*
*2.1 应用协议*
http
*2.2 环境搭建*
1.按照提示下载即可https://github.com/fchatterji/AtomCMS
*2.3 漏洞复现 **
1.存在sql注入的地址为:/admin/ajax/avatar.php?id
在地址栏写入sql语句?id=-1 union select user()#
*三、漏洞分析*
*3.1 技术背景*
\
*3.2 代码分析*
$id没有做任何处理,直接写入sql 语句即可
<?php
include('../../config/connection.php');
$id = $_GET['id'];
$q = "SELECT avatar FROM users WHERE id = $id";
$r = mysqli_query($dbc, $q);
$data = mysqli_fetch_assoc($r);
?>
<div class="avatar-container" style="background-image: url('../uploads/<?php echo $data['avatar']; ?>')"></div>
*3.3 流量分析 **
请求头部id后跟随恶意的sql语句
*3.4 绕过方式*
\
*四、漏洞检测*
*4.1 组件版本自检*
以下版本受该漏洞影响:v 2.0
目前最高版本:
*4.2 漏洞触发前提自检*
*4.3 漏洞检测规则、插件编写思路*
以下为该漏洞请求包特征
1.admin/ajax/avatar.php?id=后跟恶意sql语句
*4.4 研判建议 **
观察请求头参数id后是否存在sql注入语句,查看响应体是否存在敏感信息
*五、防范建议*
*5.1 官方修复建议*
使用了预编译,输出sql注入语句时会出现报错
*5.2 临时修复建议*
写入sql过滤规则,黑名单等
六、*参考链接*
源码下载url:https://github.com/fchatterji/AtomCMS