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

【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. 寻找靶心 根据提示,目标就在这里:

/posts/2026/juice-shop-dom-xss/assets/Pastedimage20260328172956.png

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

/posts/2026/juice-shop-dom-xss/assets/Pastedimage20260328173107.png


0x03 源码审计:编码挑战

🔍 找到它 (Find It)

漏洞位于 第 6 行:

/posts/2026/juice-shop-dom-xss/assets/Pastedimage20260328173222.png

🛠️ 修复它 (Fix It)

/posts/2026/juice-shop-dom-xss/assets/Pastedimage20260328173242.png

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

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

0x04 参考资料