question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Customization of the juice shop

See original GitHub issue

As a security awareness trainer in a company I want to shock and fear my audience as much as possible. Therefore I need to customize the juice shop with the look and feel of the company I am giving the training to.

The following things need to be done:

  • - Changing the name and title of the shop
  • - Replacement of all occurrences of juice-sh.op with a configurable domain (so you can login for example with admin@<domain>
  • - Adding of x random users
  • - Creation of customized products to create a relation for the audience (make sure “Change Product Challenge” and “Christmas Special Challenge” is still working)
  • - Do not display notifications of solved challenges as they destroy the flow of a story
  • - Make bootstrap theme configurable for be able to pick one close to the corporate color scheme
  • Make the Twitter and Facebook URLs on the /basket screen configurable
  • Make the favicon.ico customizable (or at least removable if set to null)

I created a draft shell script which does everything described except deletion of existing products: https://github.com/wurstbrot/juice-shop/blob/master/customize.bash

In case the script suits the need for contributing, I will create a pull request. Otherwise I have the following suggestions to implement it: Configuration takes place over a json file with default values:

{
	"domain": "juice-sh.op",
	"companyName": "Juice Shop",
	"logoUrl": "",
	"numberOfFakeUsers": 100,
	"challengeNotifications": true,
	"products": [{
		"name": "Apple Juice (1000ml)",
		"description": "The all-time classic.",
		"price": 1.99,
		"image": "apple_juice.jpg"
	}, {
		"name": "Orange Juice (1000ml)",
		"description": "Made from oranges hand-picked by Uncle Dittmeyer.",
		"price": 2.99,
		"image": "orange_juice.jpg"
	}, {
		"name": "Eggfruit Juice (500ml)",
		"description": "Now with even more exotic flavour.",
		"price": 8.99,
		"image": "eggfruit_juice.jpg"
	}]
}

The company name will be used from the configuration file, e.g. for title. If no logoUrl is given, it will use the default file. Otherwise on startup the logo will be downloaded and replaced on the file system. This allows the usage of the shop without internet connection.

To integrate users and products, the function createProduct in data/datacreator.js will iterate through the defined products. In case that a needed object name like image is not given, it needs to use a default one. In case the price or description is not given, a random price/name will be generated. Images for products will be downloaded on startup.

The standard users will be created as before with the given domain. Every file which contains the domain needs to use the configuration domain (e.g. tests). Extra random users will be generated with random emails and passwords.

Notifications can be hidden by adding .alert {display:none;} to app/css/app.css

The suggestions here are to discus how I will implement it.

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:9 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
bkimminichcommented, Mar 24, 2017

@wurstbrot: A little extrawurst that might be nice: Making the Twitter and Facebook URLs on the /basket screen configurable?

0reactions
lock[bot]commented, Nov 4, 2019

This thread has been automatically locked because it has not had recent activity after it was closed. 🔒 Please open a new issue for regressions or related bugs.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Customization of the juice shop · Issue #277
The following things need to be done: - Changing the name and title of the shop; - Replacement of all occurrences of juice-sh.op...
Read more >
bkimminich/juice-shop - Gitter
See here for documentation of custom configs: https://pwning.owasp-juice.shop/part1/customization.html. BNYBLN030. @BNYBLN030. ok, i try this. BNYBLN030.
Read more >
Customization - juice-shop-clone
Via a YAML configuration file placed in /config , the OWASP Juice Shop can be customized in its product inventory and look &...
Read more >
Juice Shop - secureCodeBox
Values ; customConfig, string, nil, When set, passes in the custom configuration specified below and sets NODE_ENV accordingly ref: https://pwning.owasp-juice.
Read more >
Juice Bar Menu Templates and Designs - MustHaveMenus
Jul 9, 2021 - Create a customizable menu using the Juice Bar Menu template. ... and Designs - MustHaveMenus Smoothie Menu, Smoothie Shop,...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found