HTML注入到XSS:绕过过滤器的实战技巧

本文详细记录了从发现HTML注入漏洞到成功绕过安全过滤器实现XSS攻击的全过程。作者通过测试javascript URI方案在链接标签中的使用,最终成功执行了跨站脚本攻击,展示了实际漏洞挖掘中的技术细节和挑战。

从HTML注入到XSS:一次完整的安全漏洞挖掘历程

1. 起点:HTML注入

我从产品描述字段开始测试。第一个积极的信号是简单的HTML标签被接受了!

初始测试载荷: <u>test</u>

结果: 成功渲染!单词"test"在产品页面上显示为带下划线。这立即确认了HTML注入的存在。

我的下一个想法?是时候将其升级为完整的XSS(跨站脚本攻击)了。

2. 障碍:当过滤器反击时

尝试让JavaScript自动执行很困难。该网站显然在后台运行着复杂的过滤器。它阻止了所有常见的技巧:

系统已经将危险的标签和属性列入黑名单。例如,当我尝试使用经典的 <img src=x onerror=alert('XSS')> 载荷时,系统立即剥离了onerror属性。同样,任何尝试在 <details> 等标签上使用ontoggle等事件处理程序的企图都被完全移除。甚至连高风险标签 <iframe> 也被完全过滤。

这表明他们的保护重点在于将已知的危险属性和标签列入黑名单。

3. 成功的绕过:用户交互式XSS

由于自动执行属性被过滤,我决定专注于过滤器忘记禁止的内容:标准链接标签(<a>)内的javascript: URI方案。

系统允许 <a> 标签通过,并且没有过滤href内容中的javascript:前缀。

1
<a href="javascript:alert('SECURITY_BYPASS_SUCCESSFUL: Session Data Accessible');">点击我确认XSS</a>

“不幸的是,这个漏洞被标记为重复。似乎’重复诅咒’即使在外部漏洞赏金项目中也在追随着我!😅”

关注更多内容:https://www.linkedin.com/in/mohamed-elzyny?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计