OWASP - Juice Shop
OWASP - Juice Shop
Overview
This project is a great resource for who looking to gain hands-on experience with web application security concepts and tools, covering a wide range of vulnerabilities such as SQL injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), and more. It offers challenges of varying difficulty levels, making it suitable for beginners as well as more experienced security professionals.
Catagory of vulnerabilities
Link: OWASP Juice Shop
Tasks
Status | Name | Description | Solution |
---|---|---|---|
✓ | API-only XSS | Perform a persisted XSS attack with <iframe src="javascript:alert(xss)"> without using the frontend application at all. | |
✓ | Access Log | Gain access to any access log file of the server. | |
✓ | Admin Registration | Register as a user with administrator privileges. | |
✗ | Admin Section | Access the administration section of the store. | just like Score Board |
✓ | Allowlist Bypass | Enforce a redirect to a page you are not supposed to redirect to. | |
✓ | Arbitrary File Write | Overwrite the Legal Information file. | |
✓ | Bjoern’s Favorite Pet | Reset the password of Bjoern’s OWASP account via the Forgot Password mechanism with the truthful answer to his security question. | |
✓ | Blockchain Hype | Learn about the Token Sale before its official announcement. | |
✓ | Blocked RCE DoS | Perform a Remote Code Execution that would keep a less hardened application busy forever. | |
✗ | Bonus Payload | Use the 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> in the DOM XSS challenge. | Copy and paste the code into search bar |
✗ | Bully Chatbot | Receive a coupon code from the support chatbot. | Just spam the chat until it tells you the coupon code :laughing: |
✓ | CAPTCHA Bypass | Submit 10 or more customer feedbacks within 10 seconds. | |
✓ | Change Bender’s Password | Change Bender’s password into slurmCl4ssic without using SQL Injection or Forgot Password. | |
✓ | Christmas Special | Order the Christmas special offer of 2014. | |
✓ | CSP Bypass | Bypass the Content Security Policy and perform an XSS attack with on a legacy page within the application. | |
✓ | Client-side XSS Protection | Perform a persisted XSS attack with <iframe src="javascript:alert(xss)"> bypassing a client-side security mechanism. | |
✗ | Confidential Document | Access a confidential document. | Visit About Us page and we will see a link to /ftp |
✓ | Cross-Site Imaging | Stick cute cross-domain kittens all over our delivery boxes. | |
✓ | CSRF | Change the name of a user by performing Cross-Site Request Forgery from another origin. | |
✗ | DOM XSS | Perform a DOM XSS attack with <iframe src="javascript:alert(xss)">. | Copy and paste the code into search bar |
✓ | Database Schema | Exfiltrate the entire DB schema definition via SQL Injection. | |
✓ | Deluxe Fraud | Obtain a Deluxe Membership without paying for it. | |
✓ | Deprecated Interface | Use a deprecated B2B interface that was not properly shut down. | |
✓ | Easter Egg | Find the hidden easter egg. | |
✓ | Email Leak | Perform an unwanted information disclosure by accessing data cross-domain. | |
✗ | Empty User Registration | Register a user with an empty email and password. | Just like DRY |
✓ | Ephemeral Accountant | Log in with the (non-existing) accountant acc0unt4nt@juice-sh.op without ever registering that user. | |
✗ | Error Handling | Provoke an error that is neither very gracefully nor consistently handled. | In the login page, input some special characters like * -- # |
✓ | Expired Coupon | Successfully redeem an expired campaign coupon code. | |
✗ | Exposed Metrics | Find the endpoint that serves usage data to be scraped by a popular monitoring system. popular monitoring system | Visit the document page in description and we will see the example link /metrics |
✓ | Extra Language | Retrieve the language file that never made it into production. | |
✗ | Five-Star Feedback | Get rid of all 5-star customer feedback. | Visit administrator page and remove 5 stars comment |
✓ | Forged Coupon | Forge a coupon code that gives you a discount of at least 80%. | |
✓ | Forged Feedback | Post some feedback in another user’s name. | |
✓ | Forged Review | Post a product review as another user or edit any user’s existing review. | |
✓ | Forged Signed JWT | Forge an almost properly RSA-signed JWT token that impersonates the (non-existing) user rsa_lord@juice-sh.op. | |
✓ | Forgotten Developer Backup | Access a developer’s forgotten backup file. | |
✓ | Forgotten Sales Backup | Access a salesman’s forgotten backup file. | |
✓ | Frontend Typosquatting | Inform the shop about a typosquatting imposter that dug itself deep into the frontend. (Mention the exact name of the culprit) | |
✓ | GDPR Data Erasure | Log in with Chris’ erased user account. | |
✓ | GDPR Data Theft | Steal someone else’s personal data without using Injection. | |
✓ | HTTP-Header XSS | Perform a persisted XSS attack with <iframe src="javascript:alert(xss)"> through an HTTP header. | |
✓ | Imaginary Challenge | Solve challenge #999. Unfortunately, this challenge does not exist. | |
✓ | Kill Chatbot | Permanently disable the support chatbot so that it can no longer answer customer queries. | |
✓ | Leaked Access Logs | Dumpster dive the Internet for a leaked password and log in to the original user account it belongs to. (Creating a new account with the same password does not qualify as a solution.) | |
✓ | Leaked Unsafe Product | Identify an unsafe product that was removed from the shop and inform the shop which ingredients are dangerous. | |
✓ | Legacy Typosquatting | Inform the shop about a typosquatting trick it has been a victim of at least in v6.2.0-SNAPSHOT. (Mention the exact name of the culprit) | |
✓ | Local File Read | Gain read access to an arbitrary local file on the web server. | |
✗ | Login Admin | Log in with the administrator’s user account. | ' OR '1'='1'-- |
✗ | 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”) | After reading Hint, we know that her husband’s name is Kif and search One Important Final Note we will see Password Pading . Copy the dot with her husband’s name, and replace vowel with 1 |
✗ | Login Bender | Log in with Bender’s user account. | email'-- |
✓ | Login Bjoern | Log in with Bjoern’s Gmail account without previously changing his password, applying SQL Injection, or hacking his Google account. | |
✗ | Login Jim | Log in with Jim’s user account. | email'-- |
✗ | Login MC SafeSearch | Log in with MC SafeSearch’s original user credentials without applying SQL Injection or any other bypass. | After listening to his song, we know that his password is Mr. Noodles and change some o to 0 |
✓ | Login Support Team | Log in with the support team’s original user credentials without applying SQL Injection or any other bypass. | |
✓ | Manipulate Basket | Put an additional product into another user’s shopping basket. | |
✗ | Mass Dispel | Close multiple “Challenge solved”-notifications in one go. | Press Shift and click X button |
✗ | 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. | Download the Hiking image and use Exiftool to get GPS Position |
✓ | Mint the Honey Pot | Mint the Honey Pot NFT by gathering BEEs from the bee haven. | |
✓ | Misplaced Signature File | Access a misplaced SIEM signature file. | |
✗ | Missing Encoding | Retrieve the photo of Bjoern’s cat in “melee combat-mode”. | Using Cyber chef we will see the URL encoding of the img link or just replace # with #23 |
✓ | Multiple Likes | Like any review at least three times as the same user. | |
✓ | Nested Easter Egg | Apply some advanced cryptanalysis to find the real easter egg. | |
✗ | NFT Takeover | Take over the wallet containing our official Soul Bound Token (NFT). | Visit About Us and scroll down Comment section, we will notice 1 user with comment NFT , visit Bip39 to get your private key |
✓ | NoSQL DoS | Let the server sleep for some time. (It has done more than enough hard work for you) | |
✓ | NoSQL Exfiltration | All your orders are belong to us! Even the ones which don’t! | |
✓ | NoSQL Manipulation | Update multiple product reviews at the same time. | |
✓ | Outdated Allowlist | Let us redirect you to one of our crypto currency addresses which are not promoted any longer. | |
✗ | Password Strength | Log in with the administrator’s user credentials without previously changing them or applying SQL Injection. | Using FUZZ to brufe force with default-passwords.txt wordlist |
✓ | Payback Time | Place an order that makes you rich. | |
✓ | Poison Null Byte | Bypass a security control with a Poison Null Byte to access a file not meant for your eyes. | |
✓ | Premium Paywall | Unlock Premium Challenge to access exclusive content. | |
✗ | Privacy Policy | Read our privacy policy. | After login as Admin using basic SQL Injection, use can browse to Privacy Policy to complete the task |
✓ | Privacy Policy Inspection | Prove that you actually read our privacy policy. | |
✓ | Product Tampering | Change the href of the link within the OWASP SSL Advanced Forensic Tool (O-Saft) product description into https://owasp.slack.com. | |
✗ | Reflected XSS | Perform a reflected XSS attack with <iframe src="javascript:alert(`xss)">. | Visit Order History and Tracking , replace id value with malicious string | |
✗ | Repetitive Registration | Follow the DRY principle while registering a user. | Using Burp Suite to inspect and change PasswordRepeat to empty |
✓ | Reset Bender’s Password | Reset Bender’s password via the Forgot Password mechanism with the truthful answer to his security question. | |
✓ | Reset Bjoern’s Password | Reset the password of Bjoern’s internal account via the Forgot Password mechanism with the truthful answer to his security question. | |
✓ | Reset Jim’s Password | Reset Jim’s password via the Forgot Password mechanism with the truthful answer to his security question. | |
✓ | Reset Morty’s Password | Reset Morty’s password via the Forgot Password mechanism with his obfuscated answer to his security question. | |
✓ | Reset Uvogin’s Password | Reset Uvogin’s password via the Forgot Password mechanism with the original answer to his security question. | |
✓ | Retrieve Blueprint | Deprive the shop of earnings by downloading the blueprint for one of its products. | |
✓ | SSRF | Request a hidden resource on server through server. | |
✓ | SSTi | Infect the server with juicy malware by abusing arbitrary command execution. | |
✗ | Score Board | Find the carefully hidden ‘Score Board’ page. | F12 to inspect the web, on Sources group click on main.js file and search for Score Board |
✓ | Security Policy | Behave like any “white hat” should before getting into the action. | |
✓ | Server-side XSS Protection | Perform a persisted XSS attack with <iframe src="javascript:alert(xss)"> bypassing a server-side security mechanism. | |
✓ | Steganography | Rat out a notorious character hiding in plain sight in the shop. (Mention the exact name of the character) | |
✓ | Successful RCE DoS | Perform a Remote Code Execution that occupies the server for a while without using infinite loops. | |
✓ | Supply Chain Attack | Inform the development team about a danger to some of their credentials. (Send them the URL of the original report or an assigned CVE or another identifier of this vulnerability) | |
✓ | Two Factor Authentication | Solve the 2FA challenge for user “wurstbrot”. (Disabling, bypassing or overwriting his 2FA settings does not count as a solution) | |
✓ | Unsigned JWT | Forge an essentially unsigned JWT token that impersonates the (non-existing) user jwtn3d@juice-sh.op. | |
✓ | Upload Size | Upload a file larger than 100 kB. | |
✓ | Upload Type | Upload a file that has no .pdf or .zip extension. | |
✓ | User Credentials | Retrieve a list of all user credentials via SQL Injection. | |
✓ | Video XSS | Embed an XSS payload </script> into our promo video. | |
✗ | View Basket | View another user’s shopping basket. | Using Burp Suite to inspect and change Basket value |
✓ | 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. | |
✓ | Vulnerable Library | Inform the shop about a vulnerable library it is using. (Mention the exact library name and version in your comment) | |
✓ | Wallet Depletion | Withdraw more ETH from the new wallet than you deposited. | |
✗ | Web3 Sandbox | Find an accidentally deployed code sandbox for writing smart contracts on the fly. | Just like Score Board |
✓ | Weird Crypto | Inform the shop about an algorithm or library it should definitely not use the way it does. | |
✓ | XXE Data Access | Retrieve the content of C:\Windows\system.ini or /etc/passwd from the server. | |
✓ | XXE DoS | Give the server something to chew on for quite a while. | |
✗ | Zero Stars | Give a devastating zero-star feedback to the store. | Using Burp Suite to inspect and change Rating to 0 |