本文作者:S0u1

0×00 简介

OWASP JUICE SHOP是一个开源的web应用靶场,里面包含了共记47个漏洞挑战任务,囊括了OWASP TOP 10的各个点,是一个很不错的渗透测试练手项目。

0×01 环境搭建

我使用的测试环境为kali2+docker。

搭建过程如下:

1.安装docker(可自行百度kali安装docker教程)

2.下载https://github.com/bkimminich/juice-shop

3.运行docker pull bkimminich/juice-shop

4.运行docker run -d -p 3000:3000 bkimminich/juice-shop

5.打开浏览器访问localhost:3000即可看到JUICE SHOP页面(也可以在本机上访问虚拟机的ip地址加上端口号)

看到该页面即表示搭建成功:

0×02 开始玩耍

一开始进入这个页面,可能不知道要干啥。又不像DVWA那样对各个漏洞进行了分类提供选择。

这时候我们看一手页面源代码,就很舒服:

发现了几行被注释掉的东西,有个Score Board页面,懂点英语的大概都知道是个啥了。

直接进去看看,里面有任务的名称,简要描述,难度等级以及完成状态:

同时,当你顺利进入这个页面的时候,你就已经完成第一项任务了,页面上会有一个原谅色的提示框,以后每一次完成任务,都会看见它一次:

0×03

下面就开始写每一题的完成攻略了。大家可以先自己去尝试一下,有些题目我也还没做出来。大家一起努力,有些题目应该有很多种不同的思路可以完成。

1.Error Handling

在登录页面账号处输入一个单引号’,然后填入任意密码,点击Log in。
就会出现报错了,可以看到这里将整个SQL语句都显示了出来。

2.XSS Tier 1

根据题目的描述,是使用<script>alert("XSS1")</script>这个payload来进行一次反射型XSS。
这边一眼就瞄到了搜索框,直接插语句试试,就成功了:

3.Login Admin

根据在Error Handling里看到的SQL语句,直接进行构造:
SELECT * FROM Users WHERE email=” or 1=1 — AND password = ‘xxxxxx’;
所以在Email处直接输入’ or 1=1 –,密码处任意填写,即可成功登录。
到购物车里看看,可以看到登录的是admin用户:

4.Password Strength

这个要求我们在不通过预先更改密码或sql注入的方式登录到Admin账户,结合题目密码强度,猜测应该是弱口令问题。使用BP的inturder模块进行一下爆破。

一下就跑出来了,密码是admin123,登录一下吧。

5.Zero Stars

在Contact Us这个界面可以看到打星功能。这里在没有填内容和打星前是不能点击submit按钮的。不过这里只是前端校验,可以通过把它的disabled属性直接删除,来进行绕过。

然后直接提交,就可以完成这个任务了。
当然,也可以通过BP进行抓包,将数据包里的rating的值改为0。

6.Confidential Document

在About Us这个界面,可以看到有一个链接供我们点击:

点击后,发现是一个markdown文件的下载,链接格式是:localhost:3000/ftp/legal.md?md_debug=true

这里有个敏感的ftp目录,尝试一下是可以访问的,然后点击第一个文件即可完成任务:

7.Forgotten Sales Backup&&Forgotten Developer Backup

这题承接上一题,有一个coupons_2013.md.bak的文件和一个package.json.bak,直接访问会显示错误:Only .md and .pdf files are allowed!

这里使用00截断,访问192.168.200.129:3000/ftp/coupons_2013.md.bak%2500.md
192.168.200.129:3000/ftp/package.json.bak%2500.md
即可。

8.Admin Section

这一题我是直接猜测路径,admin、administrator不行,administration成功访问到了:

9.Five-Star Feedback

这题得要做出上面一题才能做,页面的右边就是评价,登录到Admin账号把五星的全给删除就ok了。

10.Basket Access

在点击Your Bakset前进行抓包,有一个包是这样的:

GET /rest/basket/4 HTTP/1.1
Host: 192.168.200.129:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6NywiZW1haWwiOiJ0ZXN0QHRlc3QuY29tIiwicGFzc3dvcmQiOiI2OTVlYzk0NWMxMmQ2NzMxOTgyM2Q3ZDcxM2U5MjFhNSIsImNyZWF0ZWRBdCI6IjIwMTctMTEtMDIgMDY6MDE6MDEuMDAwICswMDowMCIsInVwZGF0ZWRBdCI6IjIwMTctMTEtMDIgMDY6MDE6MDEuMDAwICswMDowMCJ9LCJpYXQiOjE1MDk2MDI1MTQsImV4cCI6MTUwOTYyMDUxNH0.BCD9yWxs1viKSlL5j-nhtWqKCW_eovZ5hoSu3fhgUhA
Referer: http://192.168.200.129:3000/
Cookie: continueCode=mVOzpKQaWAD4HXuph6tecwIRiqfvSauEhWtyc3IvT4ieHVughgADEonejg6l; io=ENtxNgoEQGfvP05jAAAH; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6NywiZW1haWwiOiJ0ZXN0QHRlc3QuY29tIiwicGFzc3dvcmQiOiI2OTVlYzk0NWMxMmQ2NzMxOTgyM2Q3ZDcxM2U5MjFhNSIsImNyZWF0ZWRBdCI6IjIwMTctMTEtMDIgMDY6MDE6MDEuMDAwICswMDowMCIsInVwZGF0ZWRBdCI6IjIwMTctMTEtMDIgMDY6MDE6MDEuMDAwICswMDowMCJ9LCJpYXQiOjE1MDk2MDI1MTQsImV4cCI6MTUwOTYyMDUxNH0.BCD9yWxs1viKSlL5j-nhtWqKCW_eovZ5hoSu3fhgUhA
Connection: close
If-None-Match: W/"99-9QdKEP5stGr2mvgcEwoFif7Oe9I"

GET请求的url:/rest/basket/4,这个4很让人在意啊。
把它修改成1或者其它的一些数字,就到达别人的购物车了。

11.Christmas Special

在商品列表中找不到有关Christmas Special的商品,考虑可能是sql语句中对于日期之类的做了限制。看看能不能用or 1=1之类的让它全部暴露出来。
在查询处进行抓包,虽然没有成功,但是暴露出了完整的sql语句:

AND deletedAt IS NULL应该就是我们找不到目标商品的罪魁祸首了。根据SQL语句的结构对它进行闭合和注释:

登录任意账号,将这个商品加入购物车,然后点击checkout即可:

0×03 To Be Continued…

OWASP JUICE SHOP部分题解的更多相关文章

  1. web学习测试环境

    ref:https://www.owasp.org/index.php/OWASP_Vulnerable_Web_Applications_Directory_Project/Pages/Offlin ...

  2. <java基础学习>RE 基础语法(2)

    Java Modifiers(java修饰符): Like other languages, it is possible to modify classes, methods, etc., by u ...

  3. 题解 【POJ1157】LITTLE SHOP OF FLOWERS

    先把题目意思说一下: 你有F束花,编号为\(1\)~\(F\)(\(1<=F<=100\)),\(V\)个花瓶,编号为\(1\) ~\(V\)(\(1<=V<=100\)), ...

  4. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  5. sgu 104 Little shop of flowers 解题报告及测试数据

    104. Little shop of flowers time limit per test: 0.25 sec. memory limit per test: 4096 KB 问题: 你想要将你的 ...

  6. [POJ1157]LITTLE SHOP OF FLOWERS

    [POJ1157]LITTLE SHOP OF FLOWERS 试题描述 You want to arrange the window of your flower shop in a most pl ...

  7. HDU 4884 TIANKENG’s rice shop (模拟)

    TIANKENG's rice shop 题目链接: http://acm.hust.edu.cn/vjudge/contest/123316#problem/J Description TIANKE ...

  8. HDU 4122 Alice's mooncake shop 单调队列优化dp

    Alice's mooncake shop Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem ...

  9. Codeforces Round #325 (Div. 2) B. Laurenty and Shop 前缀和

    B. Laurenty and Shop Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/p ...

随机推荐

  1. synchronized的简单理解

    synchronized能够保证在同一时刻只有一个线程执行该段代码. 使用synchronized能够防止多个线程同时并发访问程序的某些资源. synchronized既可以修饰变量,也可以修饰方法, ...

  2. 【bzoj1911】[Apio2010]特别行动队

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4048  Solved: 1913[Submit][Statu ...

  3. mybatis开发Dao的Mapper动态代理方式

    1. 开发规范Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体跟Dao原始方法中接口实现类的方法相 ...

  4. checkbox数据回显问题

    一.问题 在用复选框的时候,最常用的无非就是全选,全不选,数据回显等问题!要做的比较灵活!最近做项目的时候,就遇到这些问题,下面从js和JQueyr两方面解决一下全选,全不选,数据回显的问题. 二.H ...

  5. cron.c

    /* $OpenBSD: cron.c,v 1.39 2007/02/18 23:59:03 jmc Exp $ */ /* Copyright 1988,1990,1993,1994 by Paul ...

  6. 咏南CS开发框架新的界面风格

    咏南CS开发框架新的界面风格 这种风格完全和WINDOWS桌面一样,符合用户的操作习惯. 我的桌面的图标和WINDOWS桌面一样分为二类:1)快捷方式  2)文件夹. 如果快捷方式较多,看得人眼花缭乱 ...

  7. Lucene 分页搜索实现

    Lucene中有两种分页查询方式 1.一次查询出大量数据,然后根据页码定位是哪个文档,其实就是暴力获取了 2.通过调用searchAfter来实现 我们都知道collect是lucene中对搜索到的文 ...

  8. MSP430 G2553 计时/计数器 Timer_A

    MSP430G2553包含了两个16-bit Timer_A计时/计数器.本文简单介绍了Timer_A的功能和寄存器使用,本文及后续的随笔部分参考了"Scientific Instrumen ...

  9. Javascript设计模式理论与实战:工厂方法模式

    本文从简单工厂模式的缺点说起,引入工厂方法模式,介绍的工厂方法模式的基本知识,实现要点和应用场景,最后举例进行说明工厂方法模式的应用.在之前的<Javascript设计模式理论与实战:简单工厂模 ...

  10. Docker在github上的站点

    https://github.com/docker (docker在github上的官方地址) https://github.com/dockerfile (docker官方镜像的Dockerfile ...