u5cms URL重定向漏洞 (CVE-2022-32444)
*一、漏洞概述 **
*1.1 漏洞简介*
·漏洞名称:u5cms URL重定向漏洞
·漏洞编号:CVE-2022-32444
·漏洞类型:URL重定向漏洞
·漏洞威胁等级:中危
·影响范围:u5cms 8.3.5
·利用条件:默认配置
*1.2 组件描述*
u5cms是u5cms开源的一种中型网站内容管理系统。
*1.3 漏洞描述*
u5cms 8.3.5版本存在安全漏洞,该漏洞源于/loginsave.php 中存在 URL 重定向漏洞,攻击者利用该漏洞可以使用户跳转到钓鱼网页。
*二、漏洞复现*
*2.1 应用协议*
http
*2.2 环境搭建*
1.下载源码到本地:https://codeload.github.com/u5cms/u5cms/zip/refs/tags/v8.3.5
提前载入数据库即可
*2.3 漏洞复现 **
1.漏洞url为/loginsave.php?u=
,输入payload
http://127.0.0.7/u5cms-8.3.5/loginsave.php?u=http://127.0.0.1/
*三、漏洞分析*
*3.1 技术背景*
\
*3.2 代码分析*
接收参数u时仅仅做了非空判断,未作任何限制处理
#/loginsave.php
if (isset($u5samlsalt)&&$u5samlsalt!='') {
require('saml.inc.php');
if (!isset($_POST['u']) || empty($_POST['u'])) {
// in case SAML-Login and not backend user
$_POST['u']=$_COOKIE['u5samlusername'];
$sql_a="SELECT * FROM intranetsalt";
$result_a=mysql_query($sql_a);
if ($result_a==false) {
echo 'SQL_a-Query failed!<p>'.mysql_error().'<p><font color=red>'.$sql_a.'</font><p>';
}
$row_a = mysql_fetch_array($result_a);
$salt=$row_a['salt'];
$_POST['p']=floor(crc32(u5flatidnlower($_COOKIE['u5samlusername']).$salt));
}
}
$_POST['u']=u5flatidn($_POST['u']);
*3.3 流量分析 **
GET请求,漏洞url:/loginsave.php?u=
参数u后跟随url,响应体状态码为302,location后跟随参数u后url[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aX3YULH2-1692175134524)(image-20230815144207353.png)]
*3.4 绕过方式*
\
*四、漏洞检测*
*4.1 组件版本自检*
以下版本受该漏洞影响:u5cms 8.3.5
目前最高版本:12.2.2
*4.2 研判建议 **
将GET请求头在本地测试观察页面是否跳转即可
*五、防范建议*
*5.1 官方修复建议*
无修复
*5.2 临时修复建议*
写入过滤规则,黑名单等
六、*参考链接*
源码下载url:https://codeload.github.com/u5cms/u5cms/zip/refs/tags/v8.3.5