[写入] 将 XSS 存储到 Onclick 事件中,使用尖括号和双引号 HTML 编码,单引号和反斜杠转义。
介绍
标题为将 XSS 存储到带尖括号和双引号的 onclick 事件中,HTML 编码和单引号和反斜杠转义的实验探讨了 Web 应用程序注释功能中的存储跨站点脚本 (XSS) 漏洞。此漏洞是由于 HTML 事件属性中用户输入的清理不足而引起的。
onclick
在本实验中:
- 尖括号 (, ) 和双引号 () 是 HTML 编码的,可防止直接注入新的 HTML 标记或属性。
<
>
" - 单引号 () 和反斜杠 () 被转义,从而限制在有效负载中使用某些字符。
' - 该质询需要绕过这些清理措施,以注入当用户点击评论作者姓名时触发的 JavaScript 有效负载(例如 )。
alert()
免责声明:本文档中描述的技术仅用于在 PortSwigger Labs 的受控环境中进行道德使用,用于教育和培训目的。严禁在经批准的环境之外未经授权使用这些方法,因为这是非法的、不道德的,并且可能导致严重后果。
负责任地行事、遵守所有适用法律并遵守既定的道德准则至关重要。严禁任何利用安全漏洞或损害他人安全、隐私或完整性的活动。
目录
- 漏洞摘要
- 复制步骤和概念验证(POC)
- 冲击
- 缓解
漏洞摘要
此实验在评论功能中包含存储的跨站点脚本 (XSS) 漏洞。攻击者可以将恶意 JavaScript 注入注释作者字段。
当受害者单击作者姓名时,有效负载(例如 )将执行。该挑战涉及制作绕过输入清理的有效负载(例如,尖括号/双引号的 HTML 编码和单引号/反斜杠的转义)。
alert()
复制步骤和概念验证(POC)
1. 打开 XSS 实验室并选择其中一篇示例文章。
2. 填写评论部分,在输入字段中包括有效负载。
3. 返回 Burp Suite 的 HTTP 历史记录并检查服务器的响应,其中显示了应用于有效负载的清理。
4. 请注意,该事件反映了评论部分的 URL 输入。
onclick
5. 尝试在 URL 表单中注入第二个有效负载:
/?'"><img src=x onerror=alert(1)>//
/?'"><imgsrc=x onerror=alert(1)>//
6. 使用开发人员工具检查浏览器的响应(按 F12)。
7. 观察某些 HTML 字符被转换回(单引号)
'
‘
8. 注入下一个有效负载:
/?'-top[`alert`](1)-'
9. 返回评论部分并点击用户名。
10. 有效负载成功执行,并触发一个带有 .
alert(1)
11. 实验室现已解决
冲击
-
攻击者可以窃取会话 Cookie 来冒充用户 -
存储型 XSS 会影响查看受感染评论的所有用户,从而扩大攻击的范围
缓解
-
利用 DOMPurify 等库清理 HTML - 将事件处理程序替换为更安全的替代方案(例如,具有严格验证的事件侦听器)
onclick
原文始发于微信公众号(安全狗的自我修养):将 XSS 存储到 Onclick 事件中:绕过尖括号、双引号和转义字符 — XSS Labs
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论