在对ecodotempo.com.br网站进行分析时,发现了一个存储型跨站脚本(XSS)漏洞。该漏洞允许攻击者将恶意脚本注入到某些字段中,这些字段随后会未经适当清理便渲染给其他用户,具体出现在未认证(已断开连接)区域的首页上。
ecodotempo.com.br/colecoes/itens/cadastrar_realizar.php
name="nome" and name="descricao"
在对ecodotempo.com.br网站进行分析时,发现了一个存储型跨站脚本(XSS)漏洞。该漏洞允许攻击者将恶意脚本注入到某些字段中,这些字段随后会未经适当清理便渲染给其他用户,具体出现在未认证(已断开连接)区域的首页上。
注入的脚本被持久化存储在应用后端,并在任何访问受影响页面的访客浏览器中执行,没有任何转义机制或内容安全策略(CSP)保护。
在针对ecodotempo.com.br的测试过程中,该存储型XSS漏洞具体出现在“物品集合”中的物品创建流程。攻击者能够在物品创建的“名称”或“描述”字段中注入恶意payload,而系统未启用任何缓解机制——例如输入验证、代码级过滤器、Web应用防火墙(WAF)或HTTP安全标头。
在创建包含恶意脚本的集合后,退出登录并访问集合的主页,导航并点击某个已注册的物品后,payload会在浏览器中自动执行,并弹出窗口。在测试中,这一行为被用于演示cookie窃取。该行为确认了缺乏适当的清理,并且攻击者的确有可能在受害者浏览器中执行任意脚本。以下证据部分包含示例图片。
注意:除了cookie窃取,该漏洞还可能被用于多种恶意目的,例如将用户重定向到有害网站、泄露敏感数据、为钓鱼攻击篡改页面内容,或代表用户执行操作,如影响部分所述。
在ecodotempo.com.br未认证区域的首页上存在存储型XSS漏洞,带来了重大的安全风险。由于注入的脚本被永久存储并向每个访问受影响页面的用户提供,这为一系列客户端攻击打开了大门。攻击者可利用此漏洞在不知情访客的浏览器中执行任意JavaScript,可能窃取会话cookie、将用户重定向到恶意网站、未经用户同意代表用户执行操作,或操纵页面内容进行钓鱼攻击。由于该漏洞暴露在可公开访问的区域,因此增加了被大规模利用的可能性,尤其是通过自动化机器人或定向攻击活动,可能削弱用户对平台的信任并破坏其完整性。
为修复ecodotempo.com.br未认证区域首页上发现的存储型XSS漏洞,应采取以下措施:
所有用户输入在存储或渲染之前,必须在客户端和服务器端均进行适当的清理和验证。具体而言,任何将在HTML上下文中显示的输入,应对特殊字符如<、>、"、'和&进行编码,以防止脚本执行。此外,应用程序应根据数据注入的上下文(HTML、JavaScript、属性、URL等)实施输出编码。
同时强烈建议实施内容安全策略(CSP),限制未经授权脚本的执行,并禁用内联脚本以及从不可信来源加载外部脚本。应将定期代码审查和自动化安全测试(例如使用OWASP ZAP或Burp Suite等工具)纳入开发生命周期,以便尽早检测并防止类似缺陷。
最后,应识别并移除系统中已存储的任何恶意payload,以消除现有风险。