Zum Hauptinhalt springen

Bericht: Challenge "CAPTCHA-Bypass"

Nur für Testzwecke

Dieses Werkzeug ist ausschließlich für Ausbildung und autorisierte Penetrationstests gedacht. Es gegen Systeme einzusetzen, für die du keine ausdrückliche Testerlaubnis hast, ist strafbar und unethisch.

Projekt: OWASP Juice Shop, Challenge "CAPTCHA Bypass" (fehlerhafter Automatisierungsschutz)
Werkzeuge: Kali Linux mit Burp Suite
Autor: Pascal Nehlsen
GitHub-Link: https://github.com/PascalNehlsen/juice-shop-challenges/blob/main/challenges/captcha-bypass.md

Inhalt

  1. Einführung
  2. Ziel
  3. Vorgehen
  4. Fazit

Einführung

Der OWASP Juice Shop ist eine absichtlich verwundbare Webanwendung, die Sicherheitslücken vorführt. Dieser Bericht beschreibt die Schritte, mit denen ich die Challenge "CAPTCHA Bypass" gelöst habe.

Ziel

Ziel der Challenge ist es, das CAPTCHA im Feedback-Bereich zu umgehen, sodass mit einem einzigen gelösten CAPTCHA mehr als 10 Feedbacks innerhalb von 20 Sekunden abgeschickt werden.

Vorgehen

Schritt 1: Kundenfeedback schreiben

Zuerst bin ich in den Feedback-Bereich gegangen und habe wie üblich ein Feedback für den OWASP Juice Shop ausgefüllt.

Feedback schreiben

Hier kam die CAPTCHA-Abfrage. In diesem Fall war die Rechenaufgabe 5 + 6 - 1 zu lösen, also 10.

Vor dem Absenden habe ich die Intercept-Funktion im Proxy von Burp Suite aktiviert.

Request abfangen

Nach dem Absenden habe ich in der HTTP-History die ein- und ausgehenden Requests geprüft. Ich fand einen POST an /api/Feedbacks/. Im JSON des Requests sah ich folgende Schlüssel:

  • "captchaIds": enthält die Kennung des CAPTCHA
  • "captcha": enthält das errechnete Ergebnis (10)
  • "comment": enthält die eigentliche Feedback-Nachricht
  • "rating": die Bewertung für den Shop

POST-Request

Schritt 2: CAPTCHA mit Burp Suite Intruder umgehen

Diesen POST-Request schickte ich an den Intruder von Burp Suite, mit dem sich viele Requests in schneller Folge senden lassen.

Der Intruder war so eingestellt:

  • Attack Type: Sniper
  • Payload Options: keine
  • Payloads: Null Payloads
  • Generate: 20 Payloads

Mit diesen Einstellungen erzeugte der Intruder in kurzer Zeit 20 HTTP-Requests. In den Ergebnissen kam bei jedem Status 201 zurück, alle wurden also verarbeitet.

Intruder-Request

Zur Bestätigung bin ich zurück in den Feedback-Bereich und sah alle 20 Einträge nacheinander gelistet.

Ergebnis

Fazit

Der Test hat die Challenge gelöst, indem das CAPTCHA einmal gelöst und mit Burp Suite umgangen wurde, sodass innerhalb der erlaubten Zeit mehrere Feedbacks abgeschickt werden konnten.

Challenge gelöst


Repository: https://github.com/PascalNehlsen/juice-shop-challenges/blob/main/challenges/captcha-bypass.md