存储型XSS(Cross-Site Scripting)是一种常见的Web安全漏洞,它允许攻击者将恶意脚本注入到Web应用程序中,当其他用户访问包含这些恶意脚本的页面时,脚本将在他们的浏览器中执行,可能导致信息泄露、会话劫持或其他恶意活动,以下是关于CMS(内容管理系统)存储型XSS的CVE(Common Vulnerabilities and Exposures)详细分析:
定义 :存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库,当下一次从数据库中获取该数据时程序也未对其进行过滤,页面再次执行XSS代码,存储型XSS可以持续攻击用户。
危害 :存储型XSS攻击方式主要是嵌入一段远程或者第三方域上的JS代码,并在目标域执行这些代码,存储型XSS会造成Cookie泄露,破坏页面正常的结构与样式,重定向访问恶意网站等。
2、 具体案例分析
:CVE-2018-19178,在JEESNS 1.3中,com/lxinet/jeesns/core/utils/XssHttpServletRequestWrapper.java允许通过HTML EMBED元素进行存储型XSS攻击。
:CVE-2018-19170,JPress v1.0-rc.5中,通过前面三个输入字段,可进行存储型XSS攻击。
:CVE-2018-19089,Tianti是基于Java的轻量级CMS解决方案,Tianti 2.3通过tianti-module-admin/user/ajax/save_role name参数在用户列表模块存在存储型XSS漏洞。
:CVE-2018-17369,easyCms是一个开源cms系统,发表文章时,EasyCMS 1.3存在存储型XSS漏洞四个字段受到影响:标题,关键字,摘要和内容。
3、 示例代码分析
缺陷代码
:示例源于SamateJuliet Test Suite for Java v1.3,源文件名:CWE80_XSS__CWE182_Servlet_database_01.java,上述示例代码操作是获取用户姓名输出到页面,在第46行获取数据库连接对象,第49行创建查询语句查询id等于0的用户姓名,在第55行将结果集赋值给data,在第108行仅过滤 |
滇ICP备2022003334号-8 滇ICP备2022003334号-8