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