
Writeup VAPT complet d'OWASP CICD-Goat — 9 flags CTFd capturés, 4 constats critiques + 5 à sévérité élevée (dont CVE-2024-23897) mappés à l'OWASP Top 10 CI/CD Security Risks, avec des PoC, des mesures de remédiation et des résumés prêts pour les entretiens.
Une évaluation complète des vulnérabilités et un test d'intrusion contre OWASP CICD-Goat — un environnement CI/CD délibérément vulnérable (Jenkins, Gitea, GitLab, CTFd) — cartographié de bout en bout par rapport aux OWASP Top 10 CI/CD Security Risks.
La plupart des writeups sur la sécurité CI/CD restent soit purement théoriques (une slide expliquant la « poisoned pipeline execution »), soit purement dans la course au flag CTF (une ligne « voici le flag, suivant »). Ce dépôt tente de faire ni l'un ni l'autre : chaque constat ci-dessous est une vulnérabilité entièrement validée et étayée par un PoC, cartographiée à une catégorie de risque OWASP CI/CD-SEC spécifique, rédigée de la manière dont vous voudriez réellement l'expliquer lors d'un entretien ou dans un rapport client réel — y compris les impasses, les mauvaises hypothèses et la façon dont elles ont été corrigées.
Si vous préparez un entretien en AppSec/DevSecOps/sécurité CI-CD, si vous préparez une mission de pentest impliquant une chaîne d'outils CI/CD, ou si vous voulez simplement une visite concrète et pratique de ce à quoi ressemblent réellement la « Poisoned Pipeline Execution » ou une « Insufficient Credential Hygiene » sur le réseau — ceci est écrit pour vous.
Règles d'engagement complètes : docs/00-engagement-overview.md.
⚠️ Tous les tests de ce dépôt ont été réalisés contre le lab Docker Compose local, jetable et intentionnellement vulnérable du testeur. Aucun système de production, infrastructure partagée ou donnée tierce n'a été impliqué. Déployez votre propre copie de CICD-Goat depuis le dépôt officiel avant d'essayer quoi que ce soit de tout cela vous-même.
Plus 6 constats informatifs / de support (contrôles positifs, confirmations de frontières RBAC, divulgation d'informations mineure) dans findings/informational/.
Plusieurs constats ne sont pas indépendants — l'un permet ou complète directement un autre. C'est la partie qui a tendance à impressionner en entretien plus que n'importe quel constat isolé :
9 des 11 défis CTFd résolus et flags vérifiés — voir la référence croisée complète des défis, y compris un cas documenté honnêtement (Dormouse/flag9) où la frontière de contrôle d'accès a tenu sous attaque soutenue.
Chaque fichier ci-dessous est directement lié — l'arborescence des dossiers montre simplement comment ils sont organisés.
| Fichier | Contenu |
|---|---|
recon/01-fingerprinting.md | Phase 1 — empreinte non authentifiée de chaque service du périmètre |
recon/02-authenticated-enumeration.md | Phase 2 — énumération authentifiée une fois l'accès initial obtenu |
| Fichier | Contenu |
|---|---|
ctfd/challenge-cross-reference.md | Référence croisée complète flag par flag, y compris l'investigation bloquée Dormouse/flag9 et la correction Duchess/flag4 |
.
├── docs/ # Engagement context, methodology, mappings, remediation, interview prep
│ ├── 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 and authenticated enumeration
│ ├── 01-fingerprinting.md
│ └── 02-authenticated-enumeration.md
├── findings/ # One file per confirmed finding, full PoC + remediation
│ ├── F-010-...md ... F-021-...md
│ └── informational/ # INFO/LOW severity supporting observations
├── ctfd/
│ └── challenge-cross-reference.md
└── LICENSE.md
docs/04-interview-prep.md — des résumés oraux d'un paragraphe pour chaque constat majeur, plus les questions de suivi courantes.docs/03-remediation-roadmap.md — une checklist priorisée et actionnable.docs/02-owasp-top10-cicd-mapping.md pour la taxonomie de référence autour de laquelle tout ce dépôt est organisé.Chaque constat ici est cartographié par rapport aux OWASP Top 10 CI/CD Security Risks (2023) — un tableau de référence complet (CICD-SEC-1 à CICD-SEC-10) se trouve dans docs/02-owasp-top10-cicd-mapping.md, car il est constamment référencé tout au long des constats individuels.
Ce dépôt documente des tests réalisés exclusivement contre un lab d'entraînement local, auto-hébergé et intentionnellement vulnérable (OWASP CICD-Goat), à des fins éducatives et de portfolio. Rien ici ne cible, ne référence ou n'a été testé contre un système de production, un service tiers ou un identifiant réel. N'utilisez aucune technique de ce dépôt contre des systèmes que vous ne possédez pas ou pour lesquels vous ne disposez pas d'une autorisation écrite explicite de test.
« Les meilleurs testeurs d'intrusion pensent d'abord comme des développeurs et ensuite comme des attaquants. Si vous comprenez pourquoi le code a été écrit d'une certaine manière, vous trouverez toujours plus qu'un scanner ne le fera jamais. »
J'aborde chaque mission en trois phases :
1. Comprendre avant d'attaquer — Lisez l'application. Utilisez-la comme un vrai utilisateur. Comprenez la logique métier avant de toucher au moindre outil.
2. Manuel d'abord, outils ensuite — Les scanners automatisés trouvent ce pour quoi ils sont configurés. Les bugs intéressants sont toujours trouvés en réfléchissant, pas en scannant.
3. Rapporter comme un développeur — Un constat que les développeurs ne peuvent pas comprendre ou reproduire est un constat qui ne sera pas corrigé.
Orientation future — Red Teaming : OSCP → CRTO → OSEP, CRTP, CRTL, CRTE
Ce contenu est sous licence CC BY 4.0. Vous êtes libre de réutiliser ou d'adapter tout ou partie de ce writeup — attribuez simplement clairement à Dheeraj Kumar Jayaswal avec un lien vers ce dépôt. CICD-Goat lui-même est un projet distinct de Cider Security — allez mettre une étoile à l'original.
LinkedIn — ouvert au conseil, à la collaboration et aux discussions sur la sécurité.
Les retours, corrections et PR (par exemple pour flag9/Dormouse, ou le suivi Duchess/flag4 dans la référence croisée CTFd) sont les bienvenus — voir CONTRIBUTING.md.
| Dépôt | Contenu |
|---|
| CICD-Goat-Vapt-Writeup (ce dépôt) | Writeup VAPT complet contre OWASP CICD-Goat — 16 constats dont CVE-2024-23897, cartographiés aux OWASP Top 10 CI/CD Security Risks, avec PoC et résumés prêts pour l'entretien |
| From-Dev-To-Attacker | Mon journal de terrain phare — 67 writeups originaux sur les schémas de vulnérabilités, écrits du point de vue d'un développeur, avec un cadrage de l'impact métier en entreprise dans les domaines de l'impôt sur le revenu, de la banque, du commerce de détail, du e-commerce, de la logistique de fret et de l'éducation |
| From-Pentester-To-Red-Teamer | Ma feuille de route structurée sur 24 mois pour passer du pentest Web/API au Red Teaming — phases, labs, certifications et progression suivie ouvertement au fur et à mesure |
| AppSec-From-The-Trenches | Référence d'outils et de méthodologie de pentest — comment j'utilise réellement Burp Suite, Nmap, Metasploit, Hydra, Hashcat, et plus encore, ainsi que ma méthodologie WAPT |
| API-From-The-Trenches | Série approfondie sur la sécurité des API — couverture de l'OWASP API Top 10, BOLA, attaques JWT, tests GraphQL, méthodologie complète |
| Bug-Bounty-Hunting-Companion | Rapports de bug bounty réels et divulgués publiquement, découpés en checklists reproductibles |
| DarkWeb-From-The-Trenches | Méthodologie de renseignement sur les menaces et d'OSINT sur le dark web — surveillance des fuites d'identifiants, suivi des ransomwares, TI de pré-engagement |
| .pcap-Arsenal | Captures de paquets organisées par protocole, pour l'analyse et l'apprentissage aux niveaux Web/API/Réseau |
| Champ | Valeur |
|---|
| Cible | OWASP CICD-Goat — déploiement Docker Compose local |
| Type de mission | Lab d'apprentissage auto-dirigé autorisé (grey-box) |
| Stack technique | Jenkins 2.332.1, Gitea 1.16.5, GitLab 15.11.13-ee, CTFd, Docker Compose |
| Périmètre | localhost:3000 (Gitea), :8080/:50000 (Jenkins), :4000 (GitLab), :8000 (CTFd), :8008 (prod-sim) |
| Méthodologie | Phase 0–3 (Périmètre → Empreinte → Identification des vulnérabilités → Exploitation) |
| ID | Titre | Sévérité | Cartographie OWASP CI/CD | Flag CTFd |
|---|
| F-010 | Exposition de secrets dans les logs de console de build Jenkins → vol d'identifiants → écriture non autorisée dans le dépôt | CRITICAL | CICD-SEC-6, -4, -2 | flag1, flag2 |
| F-013 | La logique d'auto-merge non sécurisée contourne la revue de code (heuristique de diff mot à mot sur l'ensemble de la PR) | CRITICAL | CICD-SEC-1, -5 | flag10 |
| F-016 | CVE-2024-23897 — lecture arbitraire de fichiers via Jenkins CLI sur le contrôleur | CRITICAL | CICD-SEC-7 | flag8 |
| F-017 | Token d'enregistrement de runner partagé GitLab → vol de secrets CI/CD à l'échelle de l'instance | CRITICAL | CICD-SEC-2, -6 | flag11 |
| F-019 | Exécution de code sur le nœud contrôleur Jenkins via le contournement du label d'agent | CRITICAL | CICD-SEC-5, -4 | flag5 |
| F-018 | Dépôt de pipeline découplé + contournement du filtre d'exclusion de branche | HIGH | CICD-SEC-4, -6 | flag3 |
| F-020 | Le système de fichiers d'agent partagé expose les identifiants d'un job FreeStyle | HIGH | CICD-SEC-6, -5 | flag6 |
| F-021 | Le contournement de la configuration Checkov SAST permet une mauvaise configuration IaC non détectée | HIGH | CICD-SEC-1, -8 | flag7 |
| F-014 | Clé secrète de session Flask dérivée d'une variable de pipeline CI/CD | HIGH | CICD-SEC-6 | flag11 (via F-017) |
| Fichier | Contenu |
|---|
docs/00-engagement-overview.md | Règles d'engagement, périmètre, stack technique |
docs/01-methodology.md | Méthodologie de test phase par phase utilisée tout au long |
docs/02-owasp-top10-cicd-mapping.md | Taxonomie de référence complète CICD-SEC-1 à -10 |
docs/03-remediation-roadmap.md | Checklist de remédiation priorisée et actionnable |
docs/04-interview-prep.md | Résumés oraux de chaque constat + questions de suivi probables |
docs/05-lessons-learned.md | Rétrospective — ce qui a fonctionné, ce qui n'a pas fonctionné, ce qu'il faut faire différemment la prochaine fois |
| Fichier |
|---|
| Fichier |
|---|
| Certification | Organisme | Statut |
|---|
| 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 (parcours OSCE3) | OffSec | 🔄 En cours |