OWASP Juice Shop logo

OWASP Juice Shop to specjalnie przygotowana, zawierająca luki bezpieczeństwa, aplikacja webowa. W aplikacji poza podatnościami OWASP Top Ten, zaimplementowano masę innych luk bezpieczeństwa pochodzących z innych źródeł. OWASP Juice Shop został w całości napisany w języku JavaScript (Node.js, Express, Angular). Wykorzystuję również SQLITE DB oraz REST API. Aplikacja jest świetnym narzędziem do nauki testów bezpieczeństwa.

Może być wykorzystana m.in do:

  • pokazów szkoleniowych mających podnieść świadomość użytkowników nowoczesnych aplikacji webowych,
  • wydarzeń typu CTF (Capture-The-Flag)
  • nauki różnego rodzaju narzędzi do testów bezpieczeństwa (np. Burp Suite, OWASP ZAP etc).

OWASP Juice Shop został stworzony przez Björna Kimminicha i jest rozwijany, utrzymywany i tłumaczony przez zespół wolontariuszy.

Rodzaje instalacji

OWASP Juice Shop oferuję kilka różnych typów instalacji w zależności od twoich osobistych preferencji.

  • Instalacja w „chmurze” jako:
    • aplikacja typu „one-click”. Wymagania: darmowe konto na serwerze Heroku, ale jest to chyba najwygodniejsza opcja.
    • kontener w usłuce Amazon Elastic Compute Cloud (Amazon EC2). Wymagania: Konto w AWS z podpiętą kartą płatniczą, darmowe do 750h w miesiącu.
    • kontener w usłudze Azure Portal. Wymagania: Konto w Azure – darmowe przez 12 miesięcy.
    • kontener w usłudze Google Compute Engine (GCE). Wymagania: Konto w usłudze Google Cloud, darmowe przez 90 dni, dostępne środki 300USD.
  • Instalacja na lokalnym środowisku:
    • bezpośrednio ze źródeł. Wymagania: zainstalowany wcześniej Node.js oraz Git.
    • przy pomocy przygotowanych do pobrania pakietów. Wymagania: zainstalowany wcześniej Node.js.
    • jako kontener Dockera. Wymagania: zainstalowany wcześniej Docker, gotowy kontener tu: DockerHub – Juice Shop.
    • jako kontener Vagrant. Wymagania: zainstalowany wcześniej Virtualbox oraz Vagrant.

Szczegółowe kroki instalacji dostępne są w j. angielskim, pod tym odnośnikiem.

WAŻNE: W przypadku gdy zdecydujemy się na instalację na serwerze Heroku lub jako kontener Dockera, to ze względów bezpieczeństwa niektóre zadania są domyślnie wyłączone. Wynika to z faktu iż, niektóre wyzwania mogą spowodować potencjalne szkody lub stanowić zagrożenie dla twojego komputera, np. wyzwania XXE, SSTi i Deserializacja. Zadania tego typu są domyślnie oznaczone jako ’niedostępne’ odfiltrowane na tablicy wyników.

Poniżej pełna lista:

  • Perform a persisted XSS attack with <iframe src=”javascript:alert(`xss`)”> without using the frontend application at all.
  • Overwrite the Legal Information file.
  • Perform a Remote Code Execution that would keep a less hardened application busy forever.
  • Bypass the Content Security Policy and perform an XSS attack with <script>alert(`xss`)</script> on a legacy page within the application.
  • Perform a persisted XSS attack with <iframe src=”javascript:alert(`xss`)”> bypassing a client-side security mechanism.
  • Perform a persisted XSS attack with <iframe src=”javascript:alert(`xss`)”> through an HTTP header.
  • Gain read access to an arbitrary local file on the web server.
  • Let the server sleep for some time.
  • All your orders are belong to us! Even the ones which don’t.
  • Perform a reflected XSS attack with <iframe src=”javascript:alert(`xss`)”>.
  • Infect the server with juicy malware by abusing arbitrary command execution.
  • Perform a Remote Code Execution that occupies the server for a while without using infinite loops.
  • Embed an XSS payload </script><script>alert(`xss`)</script> into our promo video.
  • Retrieve the content of C:\Windows\system.ini or /etc/passwd from the server.
  • Give the server something to chew on for quite a while.

  • Dostępna jest także wersja demo OWASP Juice Shop dostępna tutaj lub tutaj. Jednakże, nie jest to zalecana opcja do rozpoczęcia swojej przygody z hackingiem.
  • MultiJuicer – instalacja dla wielu użytkowników.
    • OWASP Juice Shop ma jedno podstawowe i bardzo ważne ograniczenie. Jedna instancja aplikacji jest przeznaczona do wykorzystania tylko przez jednego użytkownika. Ma to związek m.in ze śledzeniem postępów w rozwiązywaniu kolejnych zadań. Dlatego też, gdy chcemy poprowadzić szkolenie w grupie lub wydarzenie typu CTF, to musimy skorzystać z dodatkowych narzędzi konfiguracyjnych takich jak MultiJuicer wymagający platformy Kubernetes.

Pwning OWASP Juice Shop

PWNIING OWASP JUICE SHOP

Ciekawą rzeczą wyróżniającą OWASP JuiceShop na tle innych podobnych aplikacji jest dołączony poradnik użytkownika/trenera „Pwning OWASP Juice Shop” . Dokument ten zawiera pełny przegląd luk bezpieczeństwa zaimplementowanych w aplikacji, w tym wskazówki, jak je wykryć i wykorzystać. Jeśli użytkownik utknie przy rozwiązywaniu danego zadania, na końcu poradnika zostały dodane kompletne, prowadzące krok po kroku, instrukcje jak rozwiązać dany problem.

Dołączona jest również obszerna dokumentacja niestandardowego rebrandingu, wsparcie CTF, przewodnik trenera i wiele innych.

Pwning OWASP Juice Shop jest publikowany na licencji CC BY-NC-ND 4.0 i jest dostępny bezpłatnie w formacie PDF, Kindle i ePub na LeanPub. Możesz także przeglądać całą zawartość online.

Odnośniki