帝国CMS(EmpireCMS) v7.5 前台XSS漏洞复现

本文详细描述了一个JavaScript中因未经过滤直接使用URL参数作为HTML标签属性导致的安全漏洞。通过开启会员空间功能并访问特定页面,攻击者可以构造payload触发XSS攻击。分析了Request函数的处理方式,指出代码在处理url参数时缺乏安全检查,允许恶意脚本执行。提供了一个示例payload以演示漏洞利用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 漏洞描述

该漏洞是由于JavaScript获取url的参数,没有经过任何过滤直接当作a标签和img标签的href属性和src属性输出

二. 漏洞复现

  1. 需要开启会员空间功能,登录后台开启会员空间功能(系统设置>用户设置>开启会员空间)
    在这里插入图片描述

  2. 漏洞出现的我位置是/e/Viewimg/index.html 浏览代码,发现代码存在漏洞
    分析代码:通过Request函数获取地址栏的url,并作为img和a标签的src属性和href属性然后经过document.with输出到页面
    在这里插入图片描述

  3. 跟进Request函数
    分析代码:通过windows.location获取当前url地址,根据传入的url参数,获取当前参数的起始位置和结束位置
    例如,地址是index.html?url=JavaScript:alert(document.cookie)经过Request函数处理就变成了JavaScript:alert(document.cookie

    在这里插入图片描述

  4. url地址经过Request函数处理之后,然后把url地址中的参数和值部分直接拼接当作a标签的href属性的值和img
    标签的src标签的值
    在这里插入图片描述

  5. 通过上面分析,可以发现代码没有对url的参数做过滤就直接拼接成a和img标签的属性的值,因此可以构造payload:?url=JavaScript:alert(/xss/)

  6. 浏览器访问

http://localhost:84/upload/e/Viewimg/index.html?url=javascript:alert(/xss/)
 

在这里插入图片描述

点击图片便可触发
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值