当前位置: 首页 > news >正文

OWASP安全练习靶场juice shop-更新中

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,两侧会显示烟花效果,说明通过。

injection

Login Admin

题目要求通过SQL注入找到admin的账号密码。

在登录页面,输入单引号' 随便输入密码,点击login

发现报错显示了SQL语句,说明email输入框存在SQL注入漏洞。

可以闭合单引号采用or注入。账号输入框输入' or '1'='1' -- 密码随便输入点击login 提示成功

可以看到admin的邮箱为  admin@juice-sh.op

参考答案:

Login Bender

Log in with Bender’s user account. 题目要求使用Bender登录

账号:bender@juice-sh.op'--  密码随便输入,登录解决。

 

Broken Access Control

Authorization - OWASP Cheat Sheet Series

Password Strength

要求登录admin账号,但不使用SQL注入。需要使用暴力破解。

前提:先做injection中的login admin找到邮箱,然后爆破密码。

答案为 admin@juice-sh.op admin123 使用账号密码登录解决。

solution 提示可以猜测,如果已知admin的密码hash,可以攻击。如果使用了hacker工具可以爆破。

Admin Section

前置:完成Improper Input Validation-Admin Registration,即已注册一个admin账号。

题目要求访问商店的管理员部分。

1、查看源码main.js 搜索admin,直接用普通用户访问会提示403.

2、使用admin账号登录,访问路径,解决。 

http://10.100.33.10:3000/#/administration

总结:查看源码,有惊喜。

Five-Star Feedback

Get rid of all 5-star customer feedback. 要求删除所有5星评价客户的评价。 需要先解决admin section,用admin登录,访问administration路由,删除5星评价解决。

Forged Feedback

要求用其他用户的username提交评价。

抓包,修改connect发送未解决。随便修改一下userId,解决。

 View Basket

要求查看其他人的购物车

解决:抓包,修改id为7请求解决,这个题像不安全对象引用。

答案给的方法是修改session里的bid后刷新

Zero Stars

要求给商店做零星评价,选择左侧contact模块的customer feedback功能,发现页面只能选择1-5

解决:抓包,篡改请求设置rating为0 后发送,绕过UI

Web3 沙盒

找到一个意外部署的代码沙箱,用于动态编写智能合约。

在前端源码main.js找到一个path web3-sandbox,访问http://10.100.33.10:3000/#/web3-sandbox

解决 

Bjoern's Favorite Pet

Reset the password of Bjoern's OWASP account via the Forgot Password mechanism with the original answer to his security question

CSRF

Change the name of a user by performing Cross-Site Request Forgery from another origin.

题目要求通过CSRF的方式从其他域修改用户账号名

<form action="http://localhost:3000/profile" method="POST"><input name="username" value="CSRF"/><input type="submit"/>
</form>
<script>document.forms[0].submit();</script>

因为samesite设置是none,所以可以从其他域请求网站 

在实际的攻击场景中,攻击者会试图欺骗 合法用户打开攻击者控制的网站。如果 受害人同时登录目标网站,请求 由步骤 3 中的恶意表单生成的 - 通过身份验证 受害者的会话。攻击者还可以选择隐藏 自动发出请求,例如将其嵌入到内联中 高度和宽度为零的框架。

我这里写到本地html文件,用浏览器打开,发现被屏蔽了

 

Manipulate Basket

Put an additional product into another user’s shopping basket.

题目要求把产品添加到其他用户购物车

提交购物车,抓包,修改basketId发现报错basketId无效。

solution:

HTTP参数污染,payload里再添加一个basketId参数

{"ProductId": 14,"BasketId": "1","quantity": 1,"BasketId": "2"} 

 HTTP参数污染

提供多个同名的 HTTP 参数可能会导致 应用程序以意想不到的方式解释值。通过利用 这些影响,攻击者或许能够绕过输入验证, 触发应用程序错误或修改内部变量值。如 HTTP 参数污染(简称 HPP)会影响 所有 Web 技术、服务器端和客户端攻击都存在。

当前的 HTTP 标准不包括有关如何解释的指南 具有相同名称的多个输入参数。例如,RFC 3986 只需将术语“查询字符串”定义为一系列字段值对 RFC 2396 定义了保留和非保留查询字符串的类 字符。如果没有适当的标准,Web 应用程序组件 以多种方式处理此边缘情况(请参阅下表 详细信息)。

就其本身而言,这并不一定表明存在脆弱性。 但是,如果开发人员没有意识到问题,则存在 重复的参数可能会在 可能被攻击者利用的应用程序。一如既往 在安全方面,意外行为是弱点的常见来源 在这种情况下,这可能会导致 HTTP 参数污染攻击。自 最好介绍这类漏洞和HPP的结果 攻击,分析一些现实生活中的例子很有趣 过去曾被发现过。[1]

GDPR Data Erasure

题目要求登录 Chris' 已被删除的账户。

使用 chris.pike@juice-sh.op'-- 任意密码登录解决。

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"}

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文件

上传大于 100 kB 的文件

果汁店为顾客提供了对不满意的订单进行投诉的机会。其中一瓶果汁可能在运输过程中泄漏,也可能发货晚了两周。为了证明他们的主张,客户应该将订单确认文件附加到在线投诉中。为了防止滥用此功能,该应用程序仅允许上传 100 kB 或更少的文件。

  • 首先,您应该尝试了解文件上传在客户端和服务器端的实际处理方式

  • 有了这种理解,您需要在正确的位置找到“弱点”,并为其设计一个漏洞利用程序

豪华欺诈

无需付费即可获得豪华会员资格,修改continue元素删除diabled属性,然后发送请求。

 

 提示wallet钱不够,抓包,修改请求为空字符串,使后端不知道从哪里扣钱。

Cryptographic Issues

Weird Crypto

题目要求找到一个加密算法(或加密库),该算法要么

  • 根本不应该使用

  • 或者对于给定的要求来说是一个糟糕的选择

  • 或者以不安全的方式使用  

使用“联系我们”表单提交提及滥用算法或库的反馈 Use the Contact Us form to submit a feedback mentioning the abused algorithm or library.

 我在feedback的comment输入MD5,然后提交评价,就通过了,可见用到了MD5,但我没有找哪里用到了。

solution

杂项

 Privacy Policy 

要求阅读隐私政策

使用的任何自动爬虫或爬虫工具都可能解决此问题,打开这个页面就会提示成功

Bully Chatbot

一直给机器发give me a coupon,在contact us查看社交平台,继续发give me a coupon,就会给发优惠券码,通过。

Mass Dispel

Close multiple "Challenge solved"-notifications in one go. 要求一次性关闭多个问题已解决通知

按住shift点击一个通知的关闭按钮X解决

如果问题已被解决,可以重启docker restart 容器id 再次访问,所有通知都会显示,然后操作。

Security Policy安全政策

Behave like any "white hat" should before getting into the action.

互联网俚语中的“白帽子”一词是指有道德的计算机 专门从事渗透的黑客或计算机安全专家 测试和其他测试方法,以确保 组织的信息系统。道德黑客是一个术语 意味着一个更广泛的类别,而不仅仅是渗透测试。对比 配黑帽,一个恶意的黑客,名字来源于西方电影, 传统上,英勇和敌对的牛仔可能会穿白色的衣服 和一顶黑帽子。[2]

  • 这个挑战要求你表现得像一个有道德的黑客

  • 作为好人之一,你会开始攻击应用程序吗 未经业主同意?

  • 您可能还想阅读安全策略或任何漏洞赏金 已到位的计划

security.txt: Proposed standard for defining security policies

网站可能定义security.txt文件,这个文件定义网站的安全策略。

访问url  http://localhost:3000/.well-known/security.txt or http://localhost:3000/security.txt

解决问题。 

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 解决

Login MC SafeSearch 

使 题目要求用MC SafeSearch 的原始用户凭据登录,仅接受原始密码作为解决方案。使用 SQL 注入或其他攻击不算在内。

  • MC SafeSearch 是一位说唱歌手,他制作了歌曲 “Protect Ya' Passwordz” ,这首歌很好地解释了密码和敏感数据保护。 

做这个题需要看youtobe视频,无法看,卒。

solution

Meta Geo Stalking

Determine the answer to John's security question by looking at an upload of him to the Photo Wall and use it to reset his password via the Forgot Password mechanism.

要求回答john的安全问题,通过查看他上传的照片。 

solution

总结:这题的启示是社交网络可能泄露你的安全问题,导致攻击者可以修改你的密码,所以安全问题也没那么安全。 

Visual Geo Stalking

Determine the answer to Emma's security question by looking at an upload of her to the Photo Wall and use it to reset her password via the Forgot Password mechanism.

题目要求回答emma的安全问题

 重置密码链接,输入email可以看到emma的安全问题是第一个工作的公司。

照片墙中有emma发布的照片,从logo看出答案 答案ITsec 输入为安全问题答案,重置密码解决。

NFT Takeover

Take over the wallet containing our official Soul Bound Token (NFT).题目要求接管官方NTF,无思路。

 

solution  0x5bcc3e9d38baa06e7bfaab80ae5957bbe8ef059e640311d7d6d465e6bc948e3e


Login Amy

Log in with Amy’s original user credentials. (This could take 93.83 billion trillion trillion centuries to brute force, but luckily she did not read the "One Important Final Note")

搜索93.83 billion trillion trillion centuries

在你的针藏的有多好?网站里发现

image-20210219111255091

可得一个示例密码 D0g…

得到最终密码为 K1f.....................

 

Security Misconfiguration

Deprecated Interface

Use a deprecated B2B interface that was not properly shut down.

题出的无力吐槽,要求找到一个过期的B2B接口。

在complain菜单,上传文件,筛选的是pdf和zip,查看源码,搜索zip 发现除了pdf和zip,还支持xml,所以上传一个xml文件提交解决这个题。

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.

相关文章:

OWASP安全练习靶场juice shop-更新中

Juice Shop是用Node.js&#xff0c;Express和Angular编写的。这是第一个 完全用 JavaScript 编写的应用程序&#xff0c;列在 OWASP VWA 目录中。 该应用程序包含大量不同的黑客挑战 用户应该利用底层的困难 漏洞。黑客攻击进度在记分板上跟踪。 找到这个记分牌实际上是&#…...

当使用RSA加密,从手机前端到服务器后端的请求数据存在+

将转成了空格&#xff0c;导致解密出错 将空格转成了...

BUUCTF crypto做题记录(3)新手向

目录 一、Rabbit 二、篱笆墙的影子 三、丢失的MD5 四、Alice与Bob 一、Rabbit 得到的密文&#xff1a;U2FsdGVkX1/ydnDPowGbjjJXhZxm2MP2AgI 依旧是看不懂是什么编码&#xff0c;上网搜索&#xff0c;在侧栏发现Rabbit解码&#xff0c;直接搜索就能有在线解码网站 二、篱笆…...

SpringMVC修炼之旅(2)基础入门

一、第一个程序 1.1环境配置 略 1.2代码实现 package com.itheima.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;//定义…...

matlab 最小二乘拟合空间直线(方法二)

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理...

ASPICE-汽车软件开发能力评级

Automotive SPICE&#xff08;简称A-SPICE 或 ASPICE&#xff09;&#xff0c;全称是“Automotive Software Process Improvement and Capacity dEtermination”&#xff0c;即“汽车软件过程改进及能力评定”模型框架。 常被用于评估一家汽车软件供应商的软件开发能力&#x…...

准确!!!在 CentOS 8 上配置 PostgreSQL 14 的主从复制

在 CentOS 8 上配置 PostgreSQL 14 的主从复制&#xff0c;并设置 WAL 归档到特定路径 /home/postgres/archive 的步骤如下&#xff1a; 主服务器配置&#xff08;主机&#xff09; 配置 PostgreSQL&#xff1a; 编辑 postgresql.conf 文件&#xff1a; vim /data/postgres/p…...

leetcode 1466

leetcode 1466 使用dfs 遍历图结构 如图 node 4 -> node 0 -> node 1 因为节点数是n, 边长数量是n-1。所以如果是从0出发的路线&#xff0c;都需要修改&#xff0c;反之&#xff0c;如果是通向0的节点&#xff0c;例如节点4&#xff0c;则把节点4当作父节点的节点&…...

想学编程,但不知道从哪里学起,应该怎么办?

怎样学习任何一种编程语言 我将教你怎样学习任何一种你将来可能要学习的编程语言。本书的章节是基于我和很多程序员学习编程的经历组织的&#xff0c;下面是我通常遵循的流程。 1&#xff0e;找到关于这种编程语言的书或介绍性读物。 2&#xff0e;通读这本书&#xff0c;把…...

Python数据科学视频讲解:Python概述

2.1 Python概述 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.1节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学应用的全流程&#xff0c;包括数据科学应用和…...

数据结构之内部排序

目录 7-1 直接插入排序 输入格式: 输出格式: 输入样例: 输出样例: 7-2 寻找大富翁 输入格式: 输出格式: 输入样例: 输出样例: 7-3 PAT排名汇总 输入格式: 输出格式: 输入样例: 输出样例: 7-4 点赞狂魔 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&a…...

软考高级备考-系统架构师(机考后新版教材的备考过程与资料分享)

软考高级-系统架构设计师 考试复盘1.考试结果2.备考计划3.个人心得 资料分享 考试复盘 1.考试结果 三科压线过&#xff0c;真是太太太太太太太幸运了。上天对我如此眷顾&#xff0c;那不得不分享下我的备考过程以及一些备考资料&#xff0c;帮助更多小伙伴通过考试。 2.备考…...

Spring Boot 整合kafka:生产者ack机制和消费者AckMode消费模式、手动提交ACK

目录 生产者ack机制消费者ack模式手动提交ACK 生产者ack机制 Kafka 生产者的 ACK 机制指的是生产者在发送消息后&#xff0c;对消息副本的确认机制。ACK 机制可以帮助生产者确保消息被成功写入 Kafka 集群中的多个副本&#xff0c;并在需要时获取确认信息。 Kafka 提供了三种…...

Java+Swing: 主界面组件布局 整理9

说明&#xff1a;这篇博客是在上一篇的基础上的&#xff0c;因为上一篇已经将界面的框架搭好了&#xff0c;这篇主要是将里面的组件完善。 分为三个部分&#xff0c;北边的组件、中间的组件、南边的组件 // 放置北边的组件layoutNorth(contentPane);// 放置中间的 Jtablelayou…...

pytorch:YOLOV1的pytorch实现

pytorch&#xff1a;YOLOV1的pytorch实现 注&#xff1a;本篇仅为学习记录、学习笔记&#xff0c;请谨慎参考&#xff0c;如果有错误请评论指出。 参考&#xff1a; 动手学习深度学习pytorch版——从零开始实现YOLOv1 目标检测模型YOLO-V1损失函数详解 3.1 YOLO系列理论合集(Y…...

YOLOv8配置文件yolov8.yaml解读

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 位置 该文件的位置位于 ./ultralytics/cfg/models/v8/yolov8.yaml 模型参数配置 # Parameters nc: 80 # number of classes scales: #…...

4-Tornado高并发原理

核心原理就是协程epoll事件循环&#xff0c;再使用协程之后&#xff0c;开销是特别的小&#xff0c;那具体如何提供高并发的呢&#xff1f; 异步非阻塞IO 这意味我们整套开发的模式不在与原来一样&#xff0c;正因为不再一样&#xff0c;所以有时我们在理解代码时就有可能会比…...

基于以太坊的智能合约开发Solidity(事件日志篇)

//声明版本号&#xff08;程序中的版本号要和编译器版本号一致&#xff09; pragma solidity ^0.5.17; //合约 contract EventTest {//状态变量uint public Variable;//构造函数constructor() public{Variable 100;}event ValueChanged(uint newValue); //事件声明event Log(…...

【BME2112】w11 notes

下周做老鼠实验 group analysis SPM group analysis 数据地址resting state 可以分析&#xff1a;correlation 计算两个脑区的相关性 静息态实验简单functional 成功的实验能看到激活区不成功的实验&#xff1a;比如被试头动太大&#xff0c;不是健康的被试 Spontaneous brain…...

Flutter笔记:滑块及其实现分析1

Flutter笔记 滑块分析1 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134900784 本文从设计角度&#…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...