@aegis-scan/skills 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/ATTRIBUTION.md +204 -0
  2. package/CHANGELOG.md +48 -3
  3. package/package.json +1 -1
  4. package/sbom.cdx.json +1 -1
  5. package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
  6. package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +1080 -0
  7. package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
  8. package/skills/compliance/aegis-native/brutaler-anwalt/LICENSE +43 -0
  9. package/skills/compliance/aegis-native/brutaler-anwalt/README.md +242 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +427 -14
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  21. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +63 -9
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +1581 -10
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +323 -31
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +610 -1
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +107 -1
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +81 -8
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/paragraphs.md +62 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/paragraphs.md +85 -0
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/paragraphs.md +112 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/paragraphs.md +71 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/articles.md +182 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +111 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +134 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/paragraphs.md +61 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/INDEX.md +93 -0
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +68 -0
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +185 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/paragraphs.md +57 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +137 -9
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +122 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/mistral-eu.md +123 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/openai-dpa.md +120 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/nextauth-tom.md +120 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/supabase-auth-tom.md +104 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/proxy-csp-pattern.md +93 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/payment/stripe-pci-tom.md +121 -0
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/plausible-pattern.md +107 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  197. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  198. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  199. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  200. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  201. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  202. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/AffiliateDisclaimer.tsx.example +54 -0
  203. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/COMPLIANCE-AUDIT-TRAIL-template.md +95 -0
  204. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSE-Section-UGC.md.example +77 -0
  205. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +156 -0
  206. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/LostFoundReportForm-consent.tsx.example +126 -0
  207. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/README.md +33 -0
  208. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/UmamiScript.tsx.example +64 -0
  209. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  210. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template.md +60 -0
  211. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-cron.ts.example +52 -0
  212. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-workflow.yml.example +47 -0
  213. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/proxy-strict-dynamic.ts.example +80 -0
  214. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/security.txt.example +26 -0
  215. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  216. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  217. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  218. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  219. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  220. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  221. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  222. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  223. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  224. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  225. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +262 -0
  226. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  227. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  228. package/skills/defensive/aegis-native/rls-defense/SKILL.md +85 -0
  229. package/skills/defensive/permoon-fork/README.md +40 -0
  230. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  231. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  232. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  233. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  234. package/skills/foundation/aegis-native/aegis-module-builder/SKILL.md +5 -1
  235. package/skills/foundation/aegis-native/aegis-orchestrator/SKILL.md +87 -4
  236. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +69 -9
  237. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  238. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  239. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  240. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  241. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  242. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  243. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  244. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  245. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  246. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  247. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  248. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  249. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  250. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  251. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  252. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  253. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  254. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  255. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  256. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  257. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  258. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  259. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  260. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  261. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  262. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  263. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  264. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  265. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  266. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  267. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  268. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  269. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  270. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  271. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  272. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  273. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  274. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  275. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  276. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  277. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  278. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  279. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  280. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  281. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  282. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  283. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  284. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  285. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  286. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  287. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  288. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  289. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  290. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  291. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  292. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  293. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  294. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  295. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  296. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  297. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  298. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  299. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  300. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  301. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  302. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  303. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  304. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  305. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  306. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  307. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  308. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  309. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  310. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  311. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  312. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  313. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  314. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  315. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  316. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  317. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  318. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  319. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  320. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  321. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  322. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  323. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  324. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  325. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  326. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  327. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  328. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  329. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  346. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  347. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  348. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  349. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  350. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  351. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  352. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  353. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  354. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  355. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  356. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  357. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  358. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  359. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  360. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  361. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  362. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  363. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  364. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  365. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  366. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  367. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  368. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  369. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  370. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  371. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  372. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  373. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  374. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  375. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  376. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  377. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
  378. package/skills/offensive/matty-fork/cicd-redteam/SKILL.md +531 -0
  379. package/skills/offensive/matty-fork/cloud-security/SKILL.md +106 -0
  380. package/skills/offensive/matty-fork/container-escape/SKILL.md +174 -0
  381. package/skills/offensive/matty-fork/mobile-pentester/SKILL.md +357 -0
  382. package/skills/offensive/matty-fork/subdomain-takeover/SKILL.md +154 -0
  383. package/skills/osint/elementalsouls-fork/offensive-osint/README.md +92 -0
  384. package/skills/osint/elementalsouls-fork/offensive-osint/SKILL.md +4177 -0
  385. package/skills/osint/elementalsouls-fork/osint-methodology/README.md +66 -0
  386. package/skills/osint/elementalsouls-fork/osint-methodology/SKILL.md +1695 -0
@@ -0,0 +1,213 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: firebase-firestore
5
+ description: Firebase/Firestore security testing covering security rules, Cloud Functions, and client-side trust issues
6
+ ---
7
+
8
+ # Firebase / Firestore
9
+
10
+ Security testing for Firebase applications. Focus on Firestore/Realtime Database rules, Cloud Storage exposure, callable/onRequest Functions trusting client input, and incorrect ID token validation.
11
+
12
+ ## Attack Surface
13
+
14
+ **Data Stores**
15
+ - Firestore (documents/collections, rules, REST/SDK)
16
+ - Realtime Database (JSON tree, rules)
17
+ - Cloud Storage (rules, signed URLs)
18
+
19
+ **Authentication**
20
+ - Auth ID tokens, custom claims, anonymous/sign-in providers
21
+ - App Check attestation (and its limits)
22
+
23
+ **Server-Side**
24
+ - Cloud Functions (onCall/onRequest, triggers)
25
+ - Admin SDK (bypasses rules)
26
+
27
+ **Infrastructure**
28
+ - Hosting rewrites, CDN/caching, CORS
29
+
30
+ ## Architecture
31
+
32
+ **Endpoints**
33
+ - Firestore REST: `https://firestore.googleapis.com/v1/projects/<project>/databases/(default)/documents/<path>`
34
+ - Realtime DB: `https://<project>.firebaseio.com/.json`
35
+ - Storage REST: `https://storage.googleapis.com/storage/v1/b/<bucket>`
36
+
37
+ **Auth**
38
+ - Google-signed ID tokens (iss: `accounts.google.com` or `securetoken.google.com/<project>`)
39
+ - Audience: `<project>` or `<app-id>`, identity in `sub`/`uid`
40
+ - Rules engines: separate for Firestore, Realtime DB, and Storage
41
+ - Functions bypass rules when using Admin SDK
42
+
43
+ ## High-Value Targets
44
+
45
+ - Firestore collections with sensitive data (users, orders, payments)
46
+ - Realtime Database root and high-level nodes
47
+ - Cloud Storage buckets with private files
48
+ - Cloud Functions (especially triggers that grant roles or issue signed URLs)
49
+ - Admin/staff routes and privilege-granting endpoints
50
+ - Export/report functions that generate signed outputs
51
+
52
+ ## Reconnaissance
53
+
54
+ **Extract Project Config**
55
+
56
+ From client bundle:
57
+ ```javascript
58
+ // apiKey, authDomain, projectId, appId, storageBucket, messagingSenderId
59
+ firebase.apps[0].options
60
+ ```
61
+
62
+ **Obtain Principals**
63
+ - Unauthenticated
64
+ - Anonymous (if enabled)
65
+ - Basic user A, user B
66
+ - Staff/admin (if available)
67
+
68
+ Capture ID tokens for each.
69
+
70
+ ## Key Vulnerabilities
71
+
72
+ ### Firestore Rules
73
+
74
+ Rules are not filters—a query must include constraints that make the rule true for all returned documents.
75
+
76
+ **Common Gaps**
77
+ - `allow read: if request.auth != null` — any authenticated user reads all data
78
+ - `allow write: if request.auth != null` — mass write access
79
+ - Missing per-field validation (allows adding `isAdmin`/`role`/`tenantId` fields)
80
+ - Using client-supplied `ownerId`/`orgId` instead of `resource.data.ownerId == request.auth.uid`
81
+ - Over-broad list rules on root collections (per-doc checks exist but list still leaks)
82
+
83
+ **Secure Patterns**
84
+ ```javascript
85
+ // Restrict write fields
86
+ request.resource.data.keys().hasOnly(['field1', 'field2', 'field3'])
87
+
88
+ // Enforce ownership
89
+ resource.data.ownerId == request.auth.uid &&
90
+ request.resource.data.ownerId == request.auth.uid
91
+
92
+ // Org membership check
93
+ exists(/databases/(default)/documents/orgs/$(org)/members/$(request.auth.uid))
94
+ ```
95
+
96
+ **Tests**
97
+ - Compare results for users A/B on identical queries; diff counts and IDs
98
+ - Cross-tenant reads: `where orgId == otherOrg`; try queries without org filter
99
+ - Write-path: set/patch with foreign `ownerId`/`orgId`; attempt to flip privilege flags
100
+
101
+ ### Firestore Queries
102
+
103
+ - Use REST to avoid SDK client-side constraints
104
+ - Probe composite index requirements (UI-driven queries may hide missing rule coverage)
105
+ - Explore `collectionGroup` queries that may bypass per-collection rules
106
+ - Use `startAt`/`endAt`/`in`/`array-contains` to probe rule edges and pagination cursors
107
+
108
+ ### Realtime Database
109
+
110
+ - Misconfigured rules frequently expose entire JSON trees
111
+ - Probe `https://<project>.firebaseio.com/.json` with and without auth
112
+ - Confirm rules use `auth.uid` and granular path checks
113
+ - Avoid `.read/.write: true` or `auth != null` at high-level nodes
114
+ - Attempt to write privilege-bearing nodes (roles, org membership)
115
+
116
+ ### Cloud Storage
117
+
118
+ **Common Issues**
119
+ - Public reads on sensitive buckets/paths
120
+ - Signed URLs with long TTL, no content-disposition controls, replayable across tenants
121
+ - List operations exposed: `/o?prefix=` enumerates object keys
122
+
123
+ **Tests**
124
+ - GET gs:// paths via HTTPS without auth; verify Content-Type and `Content-Disposition: attachment`
125
+ - Generate and reuse signed URLs across accounts and paths; try case/URL-encoding variants
126
+ - Upload HTML/SVG and verify `X-Content-Type-Options: nosniff`; check for script execution
127
+
128
+ ### Cloud Functions
129
+
130
+ `onCall` provides `context.auth` automatically; `onRequest` must verify ID tokens explicitly. Admin SDK bypasses rules—all ownership/tenant checks must be in code.
131
+
132
+ **Common Gaps**
133
+ - Trusting client `uid`/`orgId` from request body instead of `context.auth`
134
+ - Missing `aud`/`iss` verification when manually parsing tokens
135
+ - Over-broad CORS allowing credentialed cross-origin requests
136
+ - Triggers (onCreate/onWrite) granting roles based on document content controlled by client
137
+
138
+ **Tests**
139
+ - Call both onCall and onRequest endpoints with varied tokens; expect identical decisions
140
+ - Create crafted docs to trigger privilege-granting functions
141
+ - Attempt SSRF via Functions to project/metadata endpoints
142
+
143
+ ### Auth & Token Issues
144
+
145
+ **Verification Requirements**
146
+ - Issuer, audience (project), signature (Google JWKS), expiration
147
+ - Optionally App Check binding when used
148
+
149
+ **Pitfalls**
150
+ - Accepting any JWT with valid signature but wrong audience/project
151
+ - Trusting `uid`/account IDs from request body instead of `context.auth.uid`
152
+ - Mixing session cookies and ID tokens without verifying both paths equivalently
153
+ - Custom claims copied into docs then trusted by app code
154
+
155
+ **Tests**
156
+ - Replay tokens across environments/projects; expect strict `aud`/`iss` rejection
157
+ - Call Functions with and without Authorization; verify identical checks
158
+
159
+ ### App Check
160
+
161
+ App Check is not a substitute for authorization.
162
+
163
+ **Bypasses**
164
+ - REST calls directly to googleapis endpoints with ID token succeed regardless of App Check
165
+ - Mobile reverse engineering: hook client and reuse ID token flows without attestation
166
+
167
+ **Tests**
168
+ - Compare SDK vs REST behavior with/without App Check headers
169
+ - Confirm no elevated authorization via App Check alone
170
+
171
+ ### Tenant Isolation
172
+
173
+ Apps often implement multi-tenant data models (`orgs/<orgId>/...`). Bind tenant from server context (membership doc or custom claim), not client payload.
174
+
175
+ **Tests**
176
+ - Vary org header/subdomain/query while keeping token fixed; verify server denies cross-tenant access
177
+ - Export/report Functions: ensure queries execute under caller scope
178
+
179
+ ## Bypass Techniques
180
+
181
+ - Content-type switching: JSON vs form vs multipart to hit alternate code paths in onRequest
182
+ - Parameter/field pollution: duplicate JSON keys (last-one-wins in many parsers); sneak privilege fields
183
+ - Caching/CDN: Hosting rewrites keying responses without Authorization or tenant headers
184
+ - Race windows: write then read before background enforcements complete
185
+
186
+ ## Blind Enumeration
187
+
188
+ - Firestore: use error shape, document count, ETag/length to infer existence
189
+ - Storage: length/timing differences on signed URL attempts leak validity
190
+ - Functions: constant-time comparisons vs variable messages reveal authorization branches
191
+
192
+ ## Testing Methodology
193
+
194
+ 1. **Extract config** - Get project config from client bundle
195
+ 2. **Obtain principals** - Collect tokens for unauth, anonymous, user A/B, admin
196
+ 3. **Build matrix** - Resource × Action × Principal across Firestore/Realtime/Storage/Functions
197
+ 4. **SDK vs REST** - Exercise every action via both to detect parity gaps
198
+ 5. **Seed IDs** - Start from list/query paths to gather document IDs
199
+ 6. **Cross-principal** - Swap document paths, tenants, and user IDs across principals
200
+
201
+ ## Tooling
202
+
203
+ - SDK + REST: httpie/curl + jq for REST; Firebase emulator and Rules Playground for rapid iteration
204
+ - Rules analysis: script probes for common patterns (`auth != null`, missing field validation)
205
+ - Functions: fuzz onRequest with varied content-types and missing/forged Authorization
206
+ - Storage: enumerate prefixes; test signed URL generation and reuse patterns
207
+
208
+ ## Validation Requirements
209
+
210
+ - Owner vs non-owner Firestore queries showing unauthorized access or metadata leak
211
+ - Cloud Storage read/write beyond intended scope (public object, signed URL reuse, list exposure)
212
+ - Function accepting forged/foreign identity (wrong `aud`/`iss`) or trusting client `uid`/`orgId`
213
+ - Minimal reproducible requests with roles/tokens used and observed deltas
@@ -0,0 +1,387 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ # Frida — Dynamic Instrumentation & Runtime Hooking
4
+
5
+ Frida = inject JavaScript into running processes → hook functions, intercept calls, bypass checks, extract secrets at runtime. Works on Android, iOS, Linux, Windows, macOS binaries.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ # Frida tools (attacker machine):
11
+ pip install frida-tools --break-system-packages
12
+ pip install frida --break-system-packages
13
+
14
+ # Verify:
15
+ frida --version
16
+ frida-ps --version
17
+
18
+ # frida-server (target device — must match frida version exactly):
19
+ # Android: https://github.com/frida/frida/releases → frida-server-X.X.X-android-x86_64.xz
20
+ # Linux: frida-server-X.X.X-linux-x86_64.xz
21
+ # Get version: python3 -c "import frida; print(frida.__version__)"
22
+ ```
23
+
24
+ ---
25
+
26
+ ## Phase 1: Setup — Android Target
27
+
28
+ ```bash
29
+ # Extract frida-server for target arch:
30
+ xz -d frida-server-*-android-x86_64.xz
31
+ adb push frida-server-*-android-x86_64 /data/local/tmp/frida-server
32
+ adb shell chmod 755 /data/local/tmp/frida-server
33
+
34
+ # Start frida-server (as root on device):
35
+ adb shell su -c "/data/local/tmp/frida-server &"
36
+ # OR:
37
+ adb shell "/data/local/tmp/frida-server &" # some emulators don't need su
38
+
39
+ # Verify connection:
40
+ frida-ps -U # list processes on USB device
41
+ frida-ps -U | grep -i target_app
42
+
43
+ # Find app process name:
44
+ frida-ps -U -a -i # installed apps with package name
45
+ ```
46
+
47
+ ---
48
+
49
+ ## Phase 2: Setup — Linux/Native Process
50
+
51
+ ```bash
52
+ # Attach to running process:
53
+ frida -p <PID> -l hook.js # by PID
54
+ frida -n "processname" -l hook.js # by name
55
+
56
+ # Spawn new process with Frida:
57
+ frida -f /path/to/binary -l hook.js --no-pause
58
+
59
+ # Attach to specific function before main:
60
+ frida -f /path/to/binary --no-pause -l hook.js
61
+
62
+ # frida-server for remote target:
63
+ # On target:
64
+ ./frida-server -l 0.0.0.0:27042
65
+ # On attacker:
66
+ frida -H target_ip:27042 -n processname -l hook.js
67
+ ```
68
+
69
+ ---
70
+
71
+ ## Phase 3: Core JavaScript API
72
+
73
+ ```javascript
74
+ // hook.js — fundamental patterns
75
+
76
+ // ============================================================
77
+ // JAVA HOOKS (Android)
78
+ // ============================================================
79
+ Java.perform(function() {
80
+
81
+ // Hook a method:
82
+ var TargetClass = Java.use('com.example.app.TargetClass');
83
+ TargetClass.methodName.implementation = function(arg1, arg2) {
84
+ console.log('[*] methodName called: arg1=' + arg1 + ' arg2=' + arg2);
85
+ var result = this.methodName(arg1, arg2); // call original
86
+ console.log('[*] methodName returned: ' + result);
87
+ return result;
88
+ };
89
+
90
+ // Override return value (bypass check):
91
+ TargetClass.checkLicense.implementation = function() {
92
+ console.log('[*] checkLicense bypassed');
93
+ return true;
94
+ };
95
+
96
+ // Hook overloaded method (specify signature):
97
+ TargetClass.verify.overload('java.lang.String', 'int').implementation = function(s, i) {
98
+ console.log('[*] verify(' + s + ', ' + i + ')');
99
+ return this.verify(s, i);
100
+ };
101
+
102
+ // Enumerate all loaded classes:
103
+ Java.enumerateLoadedClasses({
104
+ onMatch: function(name) {
105
+ if (name.includes('crypto') || name.includes('security')) {
106
+ console.log('[Class] ' + name);
107
+ }
108
+ },
109
+ onComplete: function() {}
110
+ });
111
+
112
+ // Trace all methods in a class:
113
+ var methods = Java.use('com.example.app.CryptoHelper').class.getDeclaredMethods();
114
+ methods.forEach(function(method) {
115
+ console.log('[Method] ' + method.getName());
116
+ });
117
+
118
+ // Access static field:
119
+ var MyClass = Java.use('com.example.app.Config');
120
+ console.log('[*] SECRET_KEY = ' + MyClass.SECRET_KEY.value);
121
+
122
+ // Create new object:
123
+ var ArrayList = Java.use('java.util.ArrayList');
124
+ var list = ArrayList.$new();
125
+ list.add('item');
126
+
127
+ // Call static method:
128
+ var Utils = Java.use('com.example.app.Utils');
129
+ var result = Utils.decrypt('encrypted_data');
130
+ console.log('[*] Decrypted: ' + result);
131
+ });
132
+ ```
133
+
134
+ ---
135
+
136
+ ## Phase 4: Native Hooks (C/C++ functions)
137
+
138
+ ```javascript
139
+ // ============================================================
140
+ // NATIVE HOOKS (C/C++ via Interceptor)
141
+ // ============================================================
142
+
143
+ // Hook exported function by name:
144
+ Interceptor.attach(Module.findExportByName(null, 'strcmp'), {
145
+ onEnter: function(args) {
146
+ try {
147
+ var s1 = Memory.readUtf8String(args[0]);
148
+ var s2 = Memory.readUtf8String(args[1]);
149
+ if (s1 && s2 && s1.length > 3) {
150
+ console.log('[strcmp] "' + s1 + '" == "' + s2 + '"');
151
+ }
152
+ } catch(e) {}
153
+ },
154
+ onLeave: function(retval) {
155
+ // Force match (return 0 = strings equal):
156
+ // retval.replace(0);
157
+ }
158
+ });
159
+
160
+ // Hook function by address (when not exported):
161
+ var baseAddr = Module.findBaseAddress('libnative.so');
162
+ var funcAddr = baseAddr.add(0x1234); // offset from r2/objdump analysis
163
+
164
+ Interceptor.attach(funcAddr, {
165
+ onEnter: function(args) {
166
+ console.log('[*] func@0x1234 called');
167
+ console.log('[*] arg0 (int): ' + args[0].toInt32());
168
+ console.log('[*] arg1 (str): ' + Memory.readUtf8String(args[1]));
169
+ console.log('[*] arg2 (ptr): ' + args[2]);
170
+ },
171
+ onLeave: function(retval) {
172
+ console.log('[*] returned: ' + retval.toInt32());
173
+ retval.replace(1); // override return value
174
+ }
175
+ });
176
+
177
+ // Hook all calls to function (trampoline):
178
+ Interceptor.replace(funcAddr, new NativeCallback(function(arg0, arg1) {
179
+ console.log('[*] Replaced function called! arg0=' + arg0);
180
+ // Custom implementation:
181
+ return 1; // always return 1
182
+ }, 'int', ['int', 'pointer']));
183
+
184
+ // Read/write memory:
185
+ var addr = ptr('0x7f1234abcd');
186
+ console.log(Memory.readUtf8String(addr));
187
+ console.log(hexdump(addr, { length: 64 }));
188
+ Memory.writeUtf8String(addr, 'new_value');
189
+ Memory.writeByteArray(addr, [0x90, 0x90, 0x90]); // NOP patch
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Phase 5: Cryptography Tracing
195
+
196
+ ```javascript
197
+ // Hook Android crypto APIs to extract keys/plaintext:
198
+ Java.perform(function() {
199
+
200
+ // Hook javax.crypto.Cipher (AES/DES/etc):
201
+ var Cipher = Java.use('javax.crypto.Cipher');
202
+
203
+ Cipher.doFinal.overload('[B').implementation = function(input) {
204
+ console.log('[Cipher.doFinal] input hex: ' + bytesToHex(input));
205
+ var result = this.doFinal(input);
206
+ console.log('[Cipher.doFinal] output hex: ' + bytesToHex(result));
207
+ return result;
208
+ };
209
+
210
+ // Hook SecretKeySpec (extract key material):
211
+ var SecretKeySpec = Java.use('javax.crypto.spec.SecretKeySpec');
212
+ SecretKeySpec.$init.overload('[B', 'java.lang.String').implementation = function(key, algorithm) {
213
+ console.log('[SecretKeySpec] algorithm: ' + algorithm);
214
+ console.log('[SecretKeySpec] key (hex): ' + bytesToHex(key));
215
+ return this.$init(key, algorithm);
216
+ };
217
+
218
+ // Hook MessageDigest (SHA/MD5):
219
+ var MessageDigest = Java.use('java.security.MessageDigest');
220
+ MessageDigest.digest.overload('[B').implementation = function(input) {
221
+ console.log('[MessageDigest] input: ' + bytesToHex(input));
222
+ var result = this.digest(input);
223
+ console.log('[MessageDigest] hash: ' + bytesToHex(result));
224
+ return result;
225
+ };
226
+
227
+ // Helper:
228
+ function bytesToHex(bytes) {
229
+ var hex = '';
230
+ for (var i = 0; i < bytes.length; i++) {
231
+ hex += ('0' + (bytes[i] & 0xff).toString(16)).slice(-2);
232
+ }
233
+ return hex;
234
+ }
235
+ });
236
+ ```
237
+
238
+ ---
239
+
240
+ ## Phase 6: SSL Pinning Bypass
241
+
242
+ ```javascript
243
+ // Universal SSL pinning bypass:
244
+ Java.perform(function() {
245
+ // TrustManager bypass:
246
+ var X509TrustManager = Java.use('javax.net.ssl.X509TrustManager');
247
+ var SSLContext = Java.use('javax.net.ssl.SSLContext');
248
+
249
+ // Create loose TrustManager:
250
+ var TrustManager = Java.registerClass({
251
+ name: 'com.bypass.TrustManager',
252
+ implements: [X509TrustManager],
253
+ methods: {
254
+ checkClientTrusted: function(chain, authType) {},
255
+ checkServerTrusted: function(chain, authType) {},
256
+ getAcceptedIssuers: function() { return []; }
257
+ }
258
+ });
259
+
260
+ var TrustManagers = [TrustManager.$new()];
261
+ var sslContext = SSLContext.getInstance('TLS');
262
+ sslContext.init(null, TrustManagers, null);
263
+
264
+ // OkHttp3 pinning bypass:
265
+ try {
266
+ var OkHttpClient = Java.use('okhttp3.OkHttpClient');
267
+ var builder = OkHttpClient.Builder.$new();
268
+ builder.sslSocketFactory(sslContext.getSocketFactory(), TrustManager.$new());
269
+ builder.hostnameVerifier(Java.use('javax.net.ssl.HttpsURLConnection').getDefaultHostnameVerifier());
270
+ console.log('[*] OkHttp SSL bypass applied');
271
+ } catch(e) {}
272
+
273
+ // HttpsURLConnection bypass:
274
+ var HttpsURLConnection = Java.use('javax.net.ssl.HttpsURLConnection');
275
+ HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
276
+
277
+ console.log('[*] SSL pinning bypass loaded');
278
+ });
279
+ ```
280
+
281
+ ---
282
+
283
+ ## Phase 7: Root Detection Bypass
284
+
285
+ ```javascript
286
+ Java.perform(function() {
287
+ // Common root detection methods:
288
+ var methods_to_bypass = [
289
+ ['com.scottyab.rootbeer.RootBeer', 'isRooted'],
290
+ ['com.scottyab.rootbeer.RootBeer', 'detectRootManagementApps'],
291
+ ['com.example.app.Utils', 'isDeviceRooted'],
292
+ ['java.io.File', 'exists'], // careful — very broad
293
+ ];
294
+
295
+ methods_to_bypass.forEach(function(pair) {
296
+ try {
297
+ var cls = Java.use(pair[0]);
298
+ cls[pair[1]].implementation = function() {
299
+ console.log('[*] Bypassing ' + pair[0] + '.' + pair[1]);
300
+ return false;
301
+ };
302
+ } catch(e) { /* class not loaded */ }
303
+ });
304
+
305
+ // Bypass su binary check:
306
+ var Runtime = Java.use('java.lang.Runtime');
307
+ Runtime.exec.overload('java.lang.String').implementation = function(cmd) {
308
+ if (cmd.includes('su') || cmd.includes('which')) {
309
+ console.log('[*] Blocked exec: ' + cmd);
310
+ throw Java.use('java.io.IOException').$new('File not found');
311
+ }
312
+ return this.exec(cmd);
313
+ };
314
+ });
315
+ ```
316
+
317
+ ---
318
+
319
+ ## Phase 8: Frida Stalker (Code Tracing)
320
+
321
+ ```javascript
322
+ // Trace all instructions executed (Stalker):
323
+ // Use for: find which branch is taken, trace flag-check loop
324
+
325
+ Stalker.follow(Process.getCurrentThreadId(), {
326
+ events: {
327
+ call: true, // CALL instructions
328
+ ret: true, // RET instructions
329
+ exec: false, // every instruction (very verbose)
330
+ },
331
+ onReceive: function(events) {
332
+ var list = Stalker.parse(events);
333
+ list.forEach(function(event) {
334
+ console.log(JSON.stringify(event));
335
+ });
336
+ }
337
+ });
338
+
339
+ // Trace specific thread during function call:
340
+ var targetFunc = Module.findExportByName(null, 'check_flag');
341
+ Interceptor.attach(targetFunc, {
342
+ onEnter: function() {
343
+ Stalker.follow(this.threadId, {
344
+ events: { call: true, ret: true },
345
+ onReceive: function(events) {
346
+ console.log(Stalker.parse(events));
347
+ }
348
+ });
349
+ },
350
+ onLeave: function() {
351
+ Stalker.unfollow(this.threadId);
352
+ }
353
+ });
354
+ ```
355
+
356
+ ---
357
+
358
+ ## Phase 9: CLI Usage — frida-trace
359
+
360
+ ```bash
361
+ # Auto-generate hooks for functions matching pattern:
362
+ frida-trace -U -n com.example.app -i "Java_*check*" # native JNI funcs
363
+ frida-trace -U -n com.example.app -j '*!check*' # Java methods
364
+ frida-trace -U -n com.example.app -j 'com.example.app.MainActivity!*' # all methods
365
+
366
+ # Trace libc functions:
367
+ frida-trace -U -n com.example.app -i "strcmp" -i "strncmp" -i "memcmp"
368
+
369
+ # Output: generated JS handlers in __handlers__/ — edit to customize
370
+ # Default: logs function name + args
371
+ ```
372
+
373
+ ---
374
+
375
+ ## Pro Tips
376
+
377
+ 1. **Always hook `strcmp`/`memcmp`** — catches 80% of CTF flag checks instantly
378
+ 2. **`Java.use` + `.implementation`** = override any Java method; `.overload()` for overloaded methods
379
+ 3. **SSL pinning bypass** — load before app makes first HTTPS request; use `--no-pause` for spawned apps
380
+ 4. **Frida-trace generates stubs** automatically — edit `__handlers__/` files to customize output
381
+ 5. **`Module.findBaseAddress`** → add offset from `r2/objdump` → hook private functions
382
+ 6. **Memory.readUtf8String** can crash on bad pointers — always wrap in `try/catch`
383
+ 7. **Stalker** = slowest but most complete; use only for specific function tracing, not global
384
+
385
+ ## Summary
386
+
387
+ Frida flow: `frida-ps -U` → find process → write `hook.js` → `Java.perform()` for Android Java, `Interceptor.attach()` for native → hook `strcmp`/crypto APIs → run `frida -U -n app -l hook.js` → observe intercepted args/return values → extract secrets or bypass checks.