【juice-shop】★ DOM XSS:搜索框里的“魔法”

利用 Angular 的盲目信任,在搜索框实现首次代码注入与弹窗触发。

【juice-shop】★ DOM XSS:搜索框里的“魔法”

0x01 任务简报

💡 核心线索 (Hints)
  1. 找回显:寻找一个输入后内容会直接跳进 HTML 的字段。
  2. 看本质:别被表面迷惑,重点在于程序如何处理你的输入。
🎓 实战动作 (Action)
目标:屏幕顶部的 Search field(搜索栏)
预热:尝试搜索 owasp 并回车。
变招:尝试注入 HTML/JS 代码进行 XSS 攻击

0x02 实战:复现漏洞

1. 准备武器 (Payload) 从计分板直接复制这行“弹窗指令”备用:

1
<iframe src="javascript:alert(`xss`)">

2. 寻找靶心 根据提示,目标就在这里:

3. 触发陷阱 将 Payload 填入搜索框 -> 回车 -> Boom! 弹窗出现,漏洞确认。


0x03 源码审计:编码挑战

🔍 找到它 (Find It)

漏洞位于 第 6 行

🛠️ 修复它 (Fix It)

面对四个选项,为什么选 Fix 2

选项 处理方式 安全评价 结论
Fix 1 trustScript ❌ 依然执行 JS 换个姿势被黑
Fix 2 直接赋值 Angular 自动编码 真·修复
Fix 3 trustResourceUrl ❌ 依然加载恶意链接 掩耳盗铃
Fix 4 trustStyle ❌ 可能导致 CSS 注入 治标不治本

0x04 参考资料

使用 Hugo 构建
主题 StackJimmy 设计