【juice-shop】★★ Reflected XSS:反射型跨站脚本攻击
0x01 任务简报
💡 核心线索 (Hints)1. 查找一个 URL 参数,它的值出现在它指向的页面中。
2. 尝试通过提交用 HTML 标签包裹的文本(在屏幕上容易被发现,例如 <h1> 或 <strike>)来探测跨站脚本漏洞。
3. 有效负载:<iframe src="javascript:alert('xss')">
0x02 实战:复现漏洞
这篇的引导非常完整,我们就从引导来完成这个挑战。
🔑 前置条件:登录账户
需要登录才能进行挑战,随便注册登录一下,继续。


📍 第一步:进入保存的地址
点击导航栏中的"账户" → “订单和支付” → “我的保存地址”。


🧪 第二步:尝试地址页面的 XSS
添加一个新地址,使用 <iframe src="javascript:alert(xss)"> 作为城市名称提交。
值得学习的思路:我们应该怀疑任何一个可以输入的地方。

然而,这里并没有触发 XSS,地址页面不存在该漏洞,需要换一个方向。
🛒 第三步:下单
将任意商品添加到购物车,完成购买流程:
添加购物车 → 结账 → 选择地址 → 选择送货速度 → 选择付款方式(信用卡或借记卡,随便填写卡信息)→ 下单并支付。



🔍 第四步:查看追踪订单页面
进入"追踪订单"页面,观察 URL 中的 id 参数。

注意到 URL 中的 id 参数值与页面上显示的订单号是一样的,这里可能存在相同的前端代码片段。

💉 第五步:注入有效负载
将 URL 中 id 参数的值替换为 XSS 有效负载:
|
|

✅ 第六步:完成挑战
按下回车后可能没有立即反应,此时只需 F5 刷新一下即可触发,警告框弹出后确认关闭,挑战完成。