Juice Shop是用Node.js,Express和Angular编写的。这是第一个 完全用 JavaScript 编写的应用程序,列在 OWASP VWA 目录中。
该应用程序包含大量不同的黑客挑战 用户应该利用底层的困难 漏洞。黑客攻击进度在记分板上跟踪。 找到这个记分牌实际上是(简单的)挑战之一!
除了黑客和意识培训用例外,渗透测试 代理或安全扫描程序可以将 Juice Shop 用作“几内亚” pig“-应用程序来检查他们的工具如何应对 JavaScript 密集型应用程序前端和 REST API。
部署
docker pull bkimminich/juice-shop
docker run --rm -p 3000:3000 bkimminich/juice-shop
需要挖掘的漏洞内容 寻找记分牌 :: Pwning OWASP Juice Shop (owasp-juice.shop)
访问ip:3000,打开后先注册一个用户,否则功能无法操作。
前记:
这个靶场的难点在于,只给出问题,范围在整个系统,需要去找题的答案在哪个功能上。
查找记分牌
没有直接给出记分牌页面,需要找出url。
search的地址为 http://ip:3000/#/search
刷新搜索看到某个接口返回内容
猜测url为 http://ip:3000/#/score-board
访问后显示了记分牌页面
访问后会显示成功找到
挑战通过后,点击后面的按钮运行coding challenge,如找到记分牌这个任务,勾选记分牌相关的几行代码,点击submit,两侧会显示烟花效果,说明通过。
Broken Access Control
Authorization - OWASP Cheat Sheet Series
Forged Feedback
要求用其他用户的username提交评价。
抓包,修改connect发送未解决。随便修改一下userId,解决。
View Basket
要求查看其他人的购物车
解决:抓包,修改id为7请求解决,这个题像不安全对象引用。
Zero Stars
要求给商店做零星评价,选择左侧contact模块的customer feedback功能,发现页面只能选择1-5
解决:抓包,篡改请求设置rating为0 后发送,绕过UI
XSS
DOM XSS
在搜索框输入 <iframe src="javascript:alert(`xss`)">回车,会显示一个alert
不合适的输入验证
Bonus Payload
商品搜索框输入如下代码回车成功
<iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true"></iframe>
Improper Input Validation
Admin Registration
题目要求注册为管理员权限的用户。
提交body {"email":"admin","password":"admin","role":"admin"}
Deluxe Fraud
Obtain a Deluxe Membership without paying for it.
Missing Encoding
photo-wall有一个小猫图片未显示,查看元素,可以看到src地址,在新标签页打开,
发现传给服务器的url变为如下,导致图片未显示。因为#号被浏览器解释了are interpreted by your browser as HTML anchors 所以需要将#编码为%23 即可显示图片
http://10.100.33.10:3000/assets/public/images/uploads/%F0%9F%98%BC-
Repetitive Registration
题目要求注册用户时不用输入验证密码
解决:抓包,修改passwordRepeat为空提交。
Upload Type
要求上传非pdf和zip的文件
抓接口,通过接口上传非zip文件
杂项
Privacy Policy
要求阅读隐私政策
使用的任何自动爬虫或爬虫工具都可能解决此问题,打开这个页面就会提示成功
Bully Chatbot
一直给机器发give me a coupon,在contact us查看社交平台,继续发give me a coupon,就会给发优惠券码,通过。
Mass Dispel
Close multiple "Challenge solved"-notifications in one go. 要求一次性关闭多个问题已解决通知
Sensitive Data Exposure
Confidential Document
题目要求找到一个秘密文件。看了solution才知道从哪入手。
在about us 页面有一个文件链接地址 http://10.100.33.10:3000/ftp/legal.md
去掉url中的文件引用,可以看到ftp目录所有文件,随便点击一个,解决该问题。
Exposed Metrics
题目要求找到监控端点,提示给了监控用的是prometheus
访问ip:3000/metrics 解决
Security Misconfiguration
Error Handlingstar_rate
Provoke an error that is neither very gracefully nor consistently handled.
Error Handling - OWASP Cheat Sheet Series
Unvalidated Redirects
Outdated Allowlist
Let us redirect you to one of our crypto currency addresses which are not promoted any longer.