
Vollständiges VAPT-Write-up zu OWASP CICD-Goat — 9 CTFd-Flags erbeutet, 4 kritische + 5 hohe Befunde (inkl. CVE-2024-23897), zugeordnet zu den OWASP Top 10 CI/CD Security Risks, mit PoCs, Abhilfemaßnahmen und interviewtauglichen Zusammenfassungen.
Eine vollständige Schwachstellenbewertung & Penetrationstest gegen OWASP CICD-Goat — eine absichtlich verwundbare CI/CD-Umgebung (Jenkins, Gitea, GitLab, CTFd) — durchgängig abgebildet auf die OWASP Top 10 CI/CD Security Risks.
Die meisten CI/CD-Security-Writeups bleiben entweder rein theoretisch (eine Folie, die „Poisoned Pipeline Execution" erklärt) oder rein CTF-Flag-Jagd (ein Einzeiler „hier ist die Flag, weiter"). Dieses Repo versucht beides nicht: Jedes Finding unten ist eine vollständig validierte, PoC-gestützte Schwachstelle, abgebildet auf eine spezifische OWASP CI/CD-SEC-Risikokategorie, geschrieben so, wie man es tatsächlich in einem Interview oder einem echten Kundenbericht erklären möchte — inklusive der Sackgassen, der falschen Annahmen und wie sie korrigiert wurden.
Wenn du für ein AppSec-/DevSecOps-/CI-CD-Security-Interview lernst, dich auf ein Pentest-Engagement mit einer CI/CD-Toolchain vorbereitest oder einfach einen konkreten, praxisnahen Rundgang möchtest, wie „Poisoned Pipeline Execution" oder „Insufficient Credential Hygiene" tatsächlich auf dem Draht aussehen — dann ist das für dich geschrieben.
Vollständige Rules of Engagement: docs/00-engagement-overview.md.
⚠️ Alle Tests in diesem Repo wurden gegen das eigene lokale, wegwerfbare, absichtlich verwundbare Docker-Compose-Lab des Testers durchgeführt. Es waren keine Produktionssysteme, keine geteilte Infrastruktur und keine Daten Dritter beteiligt. Starte deine eigene Kopie von CICD-Goat aus dem offiziellen Repo, bevor du selbst etwas davon ausprobierst.
Dazu 6 informative / unterstützende Findings (Positivkontrollen, Bestätigungen von RBAC-Grenzen, geringfügige Informationsoffenlegung) in findings/informational/.
Mehrere Findings sind nicht unabhängig — eines ermöglicht oder vervollständigt direkt ein anderes. Das ist der Teil, der in einem Interview tendenziell mehr beeindruckt als jedes einzelne Finding für sich:
9 von 11 CTFd-Challenges gelöst und Flag-verifiziert — siehe die vollständige Challenge-Cross-Reference, inklusive eines ehrlich dokumentierten Falls (Dormouse/flag9), bei dem die Access-Control-Grenze unter anhaltendem Angriff standhielt.
Jede Datei unten ist direkt verlinkt — der Ordnerbaum zeigt nur, wie sie organisiert sind.
| Datei | Was darin enthalten ist |
|---|---|
recon/01-fingerprinting.md | Phase 1 — unauthentifiziertes Fingerprinting jedes Dienstes im Scope |
recon/02-authenticated-enumeration.md | Phase 2 — authentifizierte Enumeration nach Erlangung des initialen Zugriffs |
| Datei | Was darin enthalten ist |
|---|---|
ctfd/challenge-cross-reference.md | Vollständige Flag-für-Flag-Cross-Reference, inklusive der blockierten Dormouse/flag9-Untersuchung und der Duchess/flag4-Korrektur |
.
├── docs/ # Engagement-Kontext, Methodik, Mappings, Remediation, Interview-Vorbereitung
│ ├── 00-engagement-overview.md
│ ├── 01-methodology.md
│ ├── 02-owasp-top10-cicd-mapping.md
│ ├── 03-remediation-roadmap.md
│ ├── 04-interview-prep.md
│ └── 05-lessons-learned.md
├── recon/ # Phase 1 & 2 — Fingerprinting und authentifizierte Enumeration
│ ├── 01-fingerprinting.md
│ └── 02-authenticated-enumeration.md
├── findings/ # Eine Datei pro bestätigtem Finding, vollständiger PoC + Remediation
│ ├── F-010-...md ... F-021-...md
│ └── informational/ # INFO/LOW unterstützende Beobachtungen
├── ctfd/
│ └── challenge-cross-reference.md
└── LICENSE.md
docs/04-interview-prep.md — Zusammenfassungen jedes wichtigen Findings im Sprechstil, ein Absatz pro Finding, plus häufige Folgefragen.docs/03-remediation-roadmap.md — eine priorisierte, umsetzbare Checkliste.docs/02-owasp-top10-cicd-mapping.md für die Referenztaxonomie, um die dieses ganze Repo organisiert ist.Jedes Finding hier ist auf die OWASP Top 10 CI/CD Security Risks (2023) abgebildet — eine vollständige Referenztabelle (CICD-SEC-1 bis CICD-SEC-10) befindet sich in docs/02-owasp-top10-cicd-mapping.md, da sie durchgängig in den einzelnen Findings referenziert wird.
Dieses Repository dokumentiert Tests, die ausschließlich gegen ein lokales, selbst gehostetes, absichtlich verwundbares Trainingslab (OWASP CICD-Goat) durchgeführt wurden, zu Bildungs- und Portfolio-Zwecken. Nichts hier zielt auf ein Produktionssystem, einen Drittanbieterdienst oder echte Credentials ab, referenziert diese oder wurde dagegen getestet. Verwende keine Technik aus diesem Repo gegen Systeme, die dir nicht gehören oder für die du keine ausdrückliche schriftliche Autorisierung zum Testen hast.
„Die besten Penetrationstester denken zuerst wie Entwickler und erst dann wie Angreifer. Wenn du verstehst, warum Code auf eine bestimmte Weise geschrieben wurde, wirst du immer mehr finden als ein Scanner jemals finden wird."
Ich gehe jedes Engagement in drei Phasen an:
1. Verstehen, bevor du angreifst — Lies die Anwendung. Nutze sie als echter Benutzer. Verstehe die Geschäftslogik, bevor du auch nur ein einziges Tool anfasst.
2. Erst manuell, dann Tools — Automatisierte Scanner finden, was sie konfiguriert wurden zu finden. Die interessanten Bugs werden immer durch Denken gefunden, nicht durch Scannen.
3. Wie ein Entwickler berichten — Ein Finding, das Entwickler nicht verstehen oder reproduzieren können, ist ein Finding, das nicht behoben wird.
Zukünftige Ausrichtung — Red Teaming: OSCP → CRTO → OSEP, CRTP, CRTL, CRTE
Dieser Inhalt ist unter CC BY 4.0 lizenziert. Du darfst diesen Write-up gerne wiederverwenden oder anpassen — nenne nur klar Dheeraj Kumar Jayaswal als Urheber mit einem Link zurück zu diesem Repository. CICD-Goat selbst ist ein separates Projekt von Cider Security — gib dem Original einen Stern.
LinkedIn — offen für Beratung, Zusammenarbeit und Security-Diskussionen.
Feedback, Korrekturen und PRs (z. B. für flag9/Dormouse oder das Duchess/flag4-Follow-up in der CTFd-Cross-Reference) sind willkommen — siehe CONTRIBUTING.md.
| Repository | Was darin enthalten ist |
|---|
| CICD-Goat-Vapt-Writeup (dieses Repo) | Vollständiger VAPT-Writeup gegen OWASP CICD-Goat — 16 Findings inklusive CVE-2024-23897, abgebildet auf die OWASP Top 10 CI/CD Security Risks, mit PoCs und interviewtauglichen Zusammenfassungen |
| From-Dev-To-Attacker | Mein Flaggschiff-Feldjournal — 67 originale Write-ups zu Schwachstellenmustern, geschrieben aus der Perspektive eines Entwicklers, mit unternehmensbezogener Domain-Impact-Einordnung über Income Tax, Banking, Retail, E-commerce, Freight Logistics und Education |
| From-Pentester-To-Red-Teamer | Meine strukturierte 24-Monats-Roadmap für den Übergang vom Web/API-Pentesting ins Red Teaming — Phasen, Labs, Zertifizierungen und offen dokumentierter Fortschritt |
| AppSec-From-The-Trenches | Referenz zu Pentest-Tools & Methodik — wie ich Burp Suite, Nmap, Metasploit, Hydra, Hashcat und mehr tatsächlich einsetze, plus meine WAPT-Methodik |
| API-From-The-Trenches | Deep-Dive-API-Security-Serie — OWASP API Top 10 Coverage, BOLA, JWT-Angriffe, GraphQL-Testing, vollständige Methodik |
| Bug-Bounty-Hunting-Companion | Echte, öffentlich offengelegte Bug-Bounty-Reports, aufbereitet als reproduzierbare Checklisten |
| DarkWeb-From-The-Trenches | Threat-Intelligence- & Dark-Web-OSINT-Methodik — Monitoring von Credential-Leaks, Ransomware-Tracking, Pre-Engagement-TI |
| .pcap-Arsenal | Nach Protokoll organisierte Packet Captures für Web-/API-/Network-Layer-Analyse und Lernen |
| Feld | Wert |
|---|
| Ziel | OWASP CICD-Goat — lokales Docker-Compose-Deployment |
| Engagement-Typ | Autorisierte selbstgesteuerte Lernumgebung (Grey-Box) |
| Tech-Stack | Jenkins 2.332.1, Gitea 1.16.5, GitLab 15.11.13-ee, CTFd, Docker Compose |
| Scope | localhost:3000 (Gitea), :8080/:50000 (Jenkins), :4000 (GitLab), :8000 (CTFd), :8008 (prod-sim) |
| Methodik | Phase 0–3 (Scope → Fingerprinting → Vulnerability ID → Exploitation) |
| ID | Titel | Schweregrad | OWASP CI/CD Mapping | CTFd Flag |
|---|
| F-010 | Secrets-Exposition in Jenkins-Build-Konsolenlogs → Credential-Diebstahl → unbefugter Repo-Schreibzugriff | CRITICAL | CICD-SEC-6, -4, -2 | flag1, flag2 |
| F-013 | Unsichere Auto-Merge-Logik umgeht Code-Review (PR-weite Word-Diff-Heuristik) | CRITICAL | CICD-SEC-1, -5 | flag10 |
| F-016 | CVE-2024-23897 — Jenkins CLI beliebiges Datei-Lesen auf dem Controller | CRITICAL | CICD-SEC-7 | flag8 |
| F-017 | GitLab Shared-Runner-Registrierungstoken → instanzweiter CI/CD-Secret-Diebstahl | CRITICAL | CICD-SEC-2, -6 | flag11 |
| F-019 | Code-Ausführung auf dem Jenkins-Controller-Node via Agent-Label-Override | CRITICAL | CICD-SEC-5, -4 | flag5 |
| F-018 | Decoupled-Pipeline-Repo + Umgehung des Branch-Exclusion-Filters | HIGH | CICD-SEC-4, -6 | flag3 |
| F-020 | Gemeinsames Agent-Dateisystem legt FreeStyle-Job-Credential offen | HIGH | CICD-SEC-6, -5 | flag6 |
| F-021 | Checkov-SAST-Config-Override ermöglicht unentdeckte IaC-Fehlkonfiguration | HIGH | CICD-SEC-1, -8 | flag7 |
| F-014 | Flask-Session-Secret-Key abgeleitet aus einer CI/CD-Pipeline-Variable | HIGH | CICD-SEC-6 | flag11 (via F-017) |
| Datei | Was darin enthalten ist |
|---|
docs/00-engagement-overview.md | Rules of Engagement, Scope, Tech-Stack |
docs/01-methodology.md | Phasenweise Testmethodik, die durchgängig verwendet wurde |
docs/02-owasp-top10-cicd-mapping.md | Vollständige Referenztaxonomie CICD-SEC-1 bis -10 |
docs/03-remediation-roadmap.md | Priorisierte, umsetzbare Remediation-Checkliste |
docs/04-interview-prep.md | Zusammenfassungen jedes Findings im Sprechstil + wahrscheinliche Folgefragen |
docs/05-lessons-learned.md | Retrospektive — was funktioniert hat, was nicht, was beim nächsten Mal anders gemacht werden sollte |
| Datei |
|---|
| Datei |
|---|
| Zertifizierung | Aussteller | Status |
|---|
| Certified Ethical Hacker (CEH) | EC-Council | ✅ 2021 |
| AWS Certified Solutions Architect – Associate | Amazon Web Services | ✅ 2022 |
| AWS Certified Cloud Practitioner | Amazon Web Services | ✅ 2022 |
| Executive Certificate in Cyber Security | IIT Kanpur | ✅ 2026 |
| OSWE — OffSec Web Expert (OSCE3-Track) | OffSec | 🔄 In Bearbeitung |