内容提要
作者测试企业邮箱系统时发现存储型XSS漏洞,利用抓包绕过长度限制改变企业名称。文章提到了XSS的技巧和注意事项。
延伸解读
存储型XSS的触发点:扫码登录环节
文章指出,扫码登录时选择账号的页面会渲染企业名称,若企业名称包含未转义的HTML标签,便会触发存储型XSS。这一触发点容易被忽略,因为安全测试常聚焦于主功能页面,而登录流程中的展示环节可能缺乏同等防护。作者通过注册新企业并抓包绕过长度限制,成功注入payload,说明在账号选择等边缘交互点也需进行XSS测试。
抓包绕过长度限制的实战意义
在注册或修改企业名称时,前端通常有长度限制,但作者通过抓包修改GET和POST请求,绕过了这一限制,从而写入完整的XSS payload。这提醒测试者,前端限制不可信,后端若未做同等校验,攻击者仍可提交超长或恶意内容。对于企业邮箱这类多用户系统,此类漏洞可能影响其他用户,如扫码登录时触发。
XSS payload的变形与绕过技巧
文章分享了两个绕过案例:一是<video>标签中<source>被过滤,通过改用<video onloadstart=alert(1) autoplay source src=...>成功触发;二是markdown中利用javascript:伪协议和onerror事件。这些例子表明,当常规payload被过滤时,可尝试标签属性、事件处理器或协议变形。测试时使用<h1>xss</h1>等明显标签有助于快速识别触发点。
Q&A
什么是存储型XSS漏洞?
存储型XSS漏洞是一种安全漏洞,攻击者可以将恶意脚本存储在服务器上,当用户访问时执行这些脚本。
作者是如何发现XSS漏洞的?
作者通过测试企业邮箱系统,利用抓包技术绕过长度限制,成功更改企业名称,从而发现了存储型XSS漏洞。
在测试中,作者使用了哪些技术来触发XSS攻击?
作者使用了抓包技术修改请求,成功触发了XSS攻击,并展示了不同的payload示例。
扫码登录时触发XSS漏洞的原因是什么?
扫码登录时触发XSS漏洞是因为在选择登录账号时,某些标签未被正确转义,导致恶意脚本得以执行。
作者提到的payload示例有什么作用?
作者提供的payload示例展示了如何绕过安全机制并成功触发XSS攻击,帮助理解攻击方式。
在测试过程中,作者发现了多少个XSS点?
作者在测试过程中发现了多个XSS点,但大部分没有危害。