ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OWASP Juice Shop 完整教程:3 步搭好你的 Web 安全漏洞靶场

OWASP Juice Shop 完整教程:3 步搭好你的 Web 安全漏洞靶场 OWASP Juice Shop 完整教程3 步搭好你的 Web 安全漏洞靶场【免费下载链接】juice-shopOWASP Juice Shop: Probably the most modern and sophisticated insecure web application项目地址: https://gitcode.com/gh_mirrors/ju/juice-shop想学 Web 安全最怕的不是没有工具而是没有一个合法挨打的实验对象。真实网站不能乱测自己写的代码又没什么漏洞可挖。OWASP Juice Shop 正是为此而生——它是一款由 OWASP 官方维护、刻意做坏的开源 Web 应用表面是一家卖果汁的网店内里却塞满了从 OWASP Top 10 到真实业务场景中的上百个安全缺陷。这篇 Juice Shop 快速上手教程会带你从零把它跑起来并学会用评分榜Score Board驱动自己的安全测试入门练习。一、先搞清楚这杯毒果汁到底能帮你什么Juice Shop 的官方描述只有一句话Probably the most modern and sophisticated insecure web application——大概是现存最现代、最复杂的不安全 Web 应用。它的定位很明确安全培训给学员一个真实感极强的目标系统边讲边练意识演示让开发、管理、业务人员亲眼看到漏洞长什么样CTF 比赛内置了完整的竞赛模式可直接作为赛事题目工具测试靶场给扫描器、Burp Suite、渗透测试脚本当小白鼠。它覆盖的漏洞类型包括 SQL 注入、跨站脚本XSS、越权访问、失效的认证、敏感数据泄露、文件上传、XXE、不安全的反序列化等等几乎把 OWASP Top 10 一网打尽。换句话说真实世界可能遇到的安全问题这里都有对应的剧情。这套教程适合三类人刚入门 Web 安全想找靶场练习的你、负责给团队做安全培训的讲师以及想验证自家安全工具效果的工程师。二、起步准备装好这三样一分钟验证环境Juice Shop 对新手非常友好不需要数据库、不需要单独装前端构建链最低要求只有两件事依赖说明Node.js官方支持 22.x、24.x、26.x 等当前 LTS 版本建议装最新 LTSnpm随 Node.js 一起安装无需额外配置浏览器打开http://localhost:3000用的Chrome / Edge / Firefox 均可小提示Node.js 版本低于 22.x 会无法运行装好之后用node -v确认版本号别用太老的版本踩坑。除了源码方式官方还提供三种更省事的运行途径打包好的可执行发行包解压即跑、Docker 镜像一条命令启动、以及 Vagrant 虚拟机适合想完全隔离环境的你。其中 Docker 方式对 Windows/macOS 用户最省心docker pull bkimminich/juice-shop docker run --rm -p 127.0.0.1:3000:3000 bkimminich/juice-shop看到终端没有任何报错浏览器能打开页面环境就算准备好了。下面我们重点讲最主流的源码安装方式。三、让毒果汁跑起来从拉取代码到打开首页源码方式安装只需要五条命令。先把仓库克隆到本地仓库地址为https://gitcode.com/gh_mirrors/ju/juice-shopgit clone https://gitcode.com/gh_mirrors/ju/juice-shop.git --depth 1 cd juice-shop npm install npm start然后打开浏览器访问http://localhost:3000看到果汁商城首页就说明启动成功了。首次运行npm install会同时构建前端和后端耐心等一两分钟属正常现象。如果好奇它内部是怎么转起来的可以顺着入口文件看项目根目录的app.ts是整个应用的启动开关它先做依赖校验再调用server.ts里的start()完成服务拉起async function app () { const { default: validateDependencies } await import(./lib/startup/validateDependenciesBasic) await validateDependencies() // 第一步检查 Node 版本等前置条件 const server await import(./server) await server.start() // 第二步启动 Express 服务并加载所有路由 } app().catch(err { throw err })而server.ts相当于这座商城的总电闸它初始化 Sequelize 数据模型、注入全部业务路由登录、购物车、商品搜索、评论……每一项都对应routes/目录下的一个文件并注册启动前的准备任务——例如lib/startup/customizeApplication.ts负责把配置里的商品、文案灌进数据库。理解了这个链路之后你想分析某个漏洞在哪段代码里就有了明确的地图。四、核心玩法评分榜是你最好的任务清单Juice Shop 和普通靶场最大的不同是它内置了一套游戏化任务系统——评分榜Score Board。它把所有漏洞设计成一个个可验证的挑战破解一个就点亮一个。打开页面后直接访问/#/score-board或通过导航菜单进入你会看到按注入、认证、敏感数据泄露、输入校验等类别分组的挑战清单每个挑战都有名字、描述和难度星级。你不需要漫无目的地瞎试跟着挑战走就行例如查看评分榜本身部分安装教程的第一个挑战就是找到评分榜入口它训练你留意隐藏路由。登录一个管理员账号挑战会提示你从注册、找回密码等入口寻找漏洞而不是硬猜密码。完成 SQL 注入在搜索框里输入特殊字符观察报错信息尝试用 UNION 查询把数据库里的表拖出来。每完成一个挑战页面右上角会弹出绿色提示并把你的破解进度实时写入评分榜。这种提示—尝试—验证的闭环是 Juice Shop 学习路径教程里最核心的练习方式比单纯看漏洞讲解有效得多。另一个值得玩的功能是内置聊天机器人。在 Support Chat 里和机器人对话本身就是一处精心设计的漏洞场景——它既能当普通客服也藏着提示注入Prompt Injection挑战适合想顺带体验 AI 安全问题的你。五、按需定制改配置文件把靶场变成你的训练场Juice Shop 的设置面板集中在config/目录默认读取default.yml。它是典型的 YAML 文件层级清晰、注释齐全改完重启服务即可生效。最常用的几个开关如下配置项位置作用服务端口server.port默认 3000冲突时改成其他端口挑战提示challenges.showHints设为false可关闭提示增加难度安全模式challenges.safetyModeauto/enabled/disabled控制危险挑战默认是否启用编码挑战challenges.codingChallengesEnabled是否显示代码修复类挑战never/solved/always商城改名application.name改成你自己的品牌名适合培训定制比如你想把商城改名为XX 安全训练营并关掉提示只需在config/default.yml里做两处小改动application: name: XX 安全训练营 challenges: showHints: false更省事的做法是直接复制一份配置config/下已经预置了ctf.yml、quiet.yml、tutorial.yml等现成模板分别对应 CTF 比赛、安静模式关闭通知、教程引导模式。把需要的模板改名为default.yml覆盖或用NODE_CONFIG环境变量指定就能快速切换运行形态。项目也提供了config.schema.ts来校验配置合法性写错了会在启动时报出明确提示不用担心改坏。六、收尾与延伸三个常见问题与下一步方向Q1启动时报 Node 版本不兼容怎么办升级到 22.x 及以上 LTS 版本node -v确认后重跑npm install npm start。Q2某个挑战卡住了能直接看答案吗能。官方配套的《Pwning OWASP Juice Shop》指南书对每个挑战都给出了逐步解法先在评分榜里开启提示Hints实在不行再查解法效果最好。Q3想拿它办一次内部 CTF 怎么弄把config/ctf.yml作为基础配置配合项目的 CTF 功能积分、旗帜、通知即可快速搭起比赛rsn/目录下还有配套的题目生成脚本。跑通安装只是第一步。接下来建议按评分榜从易到难→补看官方漏洞分类文档→把每个漏洞在源码里定位一遍的顺序推进你会发现每破解一个挑战对 Web 安全的理解就深一层。想深入的话data/static/challenges.yml记录了全部挑战定义routes/目录则藏着每个漏洞的案发现场翻代码和打靶场配合着来效果翻倍。【免费下载链接】juice-shopOWASP Juice Shop: Probably the most modern and sophisticated insecure web application项目地址: https://gitcode.com/gh_mirrors/ju/juice-shop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表