freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

DedeCMS-V5.7.91-UTF8后台广告分类管理存在XSS漏洞
2023-04-12 22:55:27
所属地 北京

漏洞描述

DedeCMS-V5.7.91-UTF8后台广告分类管理存在XSS漏洞

影响版本

DedeCMS-V5.7.91-UTF8

漏洞分析

adtype_main.php

1681311230_6436c5fe5d2a944394eaf.png!small

根据代码分析

在这段代码中,我们可以看到当 $check_new 存在且 $pname_new 不为空时,将 $pname_new 插入到数据库中作为广告类型名称。这里的 $pname_new 可以通过用户输入进行设置,如果用户输入恶意脚本或者HTML标签,则可能会导致XSS漏洞。

例如,如果攻击者将 pname_new 的值设置为以下内容:

<script>alert('XSS Attack!')</script>

那么在执行这个代码片段之后,数据库中的广告类型名称将会被设置为 "<script>alert('XSS Attack!')</script>"。当用户访问网站并显示这些广告类型时,这段脚本将会被执行,弹出一个恶意警告框。

这就是XSS漏洞的本质,攻击者通过注入恶意代码来在受害者的浏览器中执行自己的代码,从而窃取用户的信息或者进行其他恶意行为。在这个例子中,攻击者可以使用 pname_new 参数构造一个针对该网站用户的XSS攻击,如果网站没有对用户输入进行适当的过滤和验证,则可能会导致安全漏洞。

漏洞复现

http://192.168.6.139:8080/DedeCMS-V5.7.91-UTF8/uploads/dede/adtype_main.php

负载:"><script>alert(1)</script>

1681311215_6436c5ef60613a2e1f6f9.png!small

pname_new参数存在XSS

1681311208_6436c5e861f66c1ba808f.png!small

保存好,刷新页面弹窗,还是存储型XSS漏洞。

1681311200_6436c5e0b2b0bd1ed99ab.png!small

修复建议

为了修复"pname_new"参数中的XSS漏洞,可以使用PHP内置的"htmlspecialchars"函数对任何可能被解释为HTML或脚本代码的特殊字符进行编码。可以按如下方式修改代码:

if(isset($check_new) && $pname_new!='')

{

$pname_new = htmlspecialchars($pname_new, ENT_QUOTES, 'UTF-8');

$query = "INSERT INTO `#@__myadtype`(typename) VALUES('{$pname_new}');";

$dsql->ExecuteNoneQuery($query);

}

header("Content-Type: text/html; charset={$cfg_soft_lang}");

ShowMsg("成功更新广告分类列表!", 'adtype_main.php');

exit;

通过使用 PHP 内置的 "htmlspecialchars" 函数并设置 "ENT_QUOTES" 标记来修复 "pname_new" 参数中的 XSS 漏洞,任何单引号或双引号都将被替换为相应的 HTML 实体。这将防止用户通过 "pname_new" 参数将脚本代码注入页面。

# dedecms漏洞 # XSS漏洞 # 织梦内容管理系统
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者