Zurückgelassener Debug-Code

Zurückgelassener Debug-Code

Das Tor war der Fehler. Ein Tippfehler ließ die Debug-Route offen.

Was ist Zurückgelassener Debug-Code?

Der Fehler liegt hier nicht in der Funktion, sondern im Schalter, der sie ausschalten soll. Eine Debug-Route schützt sich selbst mit einer falsch geschriebenen Umgebungsvariablen, der Vergleich wird zu undefined !== 'production' und die Route antwortet in der Produktion. Sie durchsuchen Debugpfade, bis /api/_debug/env das Datenbankkennwort, das JWT-Signaturgeheimnis und Live-Cloud-Schlüssel zurückgibt, und fälschen dann ein Admin-Token mit diesem Geheimnis. Der Fix rotiert alle durchgesickerten Anmeldeinformationen und schließt die Route zur Erstellungszeit aus dem Produktionspaket aus.

Was Sie lernen in Zurückgelassener Debug-Code

Zurückgelassener Debug-Code — Trainingsschritte

  1. Das Ziel einschätzen

    Bob ist ein Angreifer. Er verdient sein Geld damit, Daten aus Unternehmen abzuziehen, die etwas offengelegt haben, und diese dann zu verkaufen oder damit an ihr Geld zu gelangen. Heute ist sein Ziel Vessura, eine Beschaffungsplattform, die andere Unternehmen nutzen. Er beginnt wie jeder andere auf der öffentlichen Website und schätzt das Unternehmen ein, bevor er nach einem Einstieg sucht.

  2. Offengelegte Bereiche erfassen

    Auf der öffentlichen Website ist nichts ungewöhnlich: ein Login, ein Lieferantenverzeichnis, eine Support-Seite. Anwendungen enthalten aber mehr als nur ihre Eingangstür. In einem Build verbliebene Entwickler-Hilfskonstrukte bleiben für jeden erreichbar, der danach sucht. Deshalb erfasst Bob jeden Pfad, auf den die API des Portals tatsächlich antwortet.

  3. Die Debug-Route aufrufen

    Bob rekonstruiert die Anfrage, die der Scan markiert hat. Er richtet den API-Tester auf den Debug-Pfad und sendet ein einfaches GET – ohne Login und ohne Token –, um zu sehen, was zurückkommt.

  4. Alle Secrets auf einmal

    Die Antwort ist keine Fehlerseite. Sie enthält die gesamte Prozessumgebung eines Produktionsservers und wird einer Anfrage ohne Login übergeben.

  5. Ein Admin-Token fälschen

    Der Dump lieferte Bob das JWT_SECRET , den Schlüssel, mit dem die Anwendung jedes Session-Token signiert. Im selben Terminal erstellt er sein eigenes Token, setzt die Rolle auf admin, und der Server akzeptiert es als echten Login.

  6. Als Admin anmelden

    Jetzt verwendet Bob das Token. Er ruft die interne Lieferanten-API auf, einen nur für angemeldete Admins bestimmten Endpunkt, und übermittelt das gefälschte Token in einem Authorization -Header, damit der Server ihn als Admin behandelt. Im linken Terminal befindet sich noch das Token, das er gerade erstellt hat.

  7. Das Lieferantenverzeichnis ist offen

    Der Server vertraute dem Token und antwortete. Bob liest nun über eine öffentliche API das interne Lieferantenverzeichnis – ohne eigenes Konto.

  8. Wissenscheck

    Sie haben gerade gesehen, wie ein einziger zurückgelassener Pfad alle Secrets und anschließend eine Admin-Sitzung preisgab. Prägen Sie sich ein, warum.

  9. Die DLP-Warnung geht ein

    Sie verantworten das Beschaffungsportal von Vessura. Über Nacht schlug die Überwachung ausgehender Datenverluste bei einer Antwort an, die aktive Secrets vom Server nach außen übermittelte. Security Operations hat Ihnen die Details per E-Mail geschickt.

  10. Den Handler öffnen

    Öffnen Sie den Debug-Handler und sehen Sie sich an, wie er entscheidet, ob er antwortet.

Abdeckung der Sicherheits-Frameworks

OWASP Top 10

  • A02:2025 Security Misconfiguration
  • A05:2021 Security Misconfiguration

CWE

  • CWE-489 Active Debug Code
  • CWE-215 Insertion of Sensitive Information Into Debugging Code

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security