@voidagency/web-scanner 0.0.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 (59) hide show
  1. package/README.md +198 -0
  2. package/dist/aggregator.d.ts +65 -0
  3. package/dist/aggregator.d.ts.map +1 -0
  4. package/dist/aggregator.js +546 -0
  5. package/dist/aggregator.js.map +1 -0
  6. package/dist/categories.d.ts +59 -0
  7. package/dist/categories.d.ts.map +1 -0
  8. package/dist/categories.js +278 -0
  9. package/dist/categories.js.map +1 -0
  10. package/dist/cli.d.ts +12 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +457 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/config.d.ts +19 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +121 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/coverage.d.ts +49 -0
  19. package/dist/coverage.d.ts.map +1 -0
  20. package/dist/coverage.js +165 -0
  21. package/dist/coverage.js.map +1 -0
  22. package/dist/enrichers/nvd.d.ts +55 -0
  23. package/dist/enrichers/nvd.d.ts.map +1 -0
  24. package/dist/enrichers/nvd.js +326 -0
  25. package/dist/enrichers/nvd.js.map +1 -0
  26. package/dist/report.d.ts +12 -0
  27. package/dist/report.d.ts.map +1 -0
  28. package/dist/report.js +460 -0
  29. package/dist/report.js.map +1 -0
  30. package/dist/runners/nuclei.d.ts +59 -0
  31. package/dist/runners/nuclei.d.ts.map +1 -0
  32. package/dist/runners/nuclei.js +531 -0
  33. package/dist/runners/nuclei.js.map +1 -0
  34. package/dist/runners/testssl.d.ts +16 -0
  35. package/dist/runners/testssl.d.ts.map +1 -0
  36. package/dist/runners/testssl.js +179 -0
  37. package/dist/runners/testssl.js.map +1 -0
  38. package/dist/runners/zap.d.ts +30 -0
  39. package/dist/runners/zap.d.ts.map +1 -0
  40. package/dist/runners/zap.js +389 -0
  41. package/dist/runners/zap.js.map +1 -0
  42. package/dist/types.d.ts +172 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +6 -0
  45. package/dist/types.js.map +1 -0
  46. package/package.json +54 -0
  47. package/templates/drupal-api-index-exposed.yaml +81 -0
  48. package/templates/drupal-api-user-detail.yaml +76 -0
  49. package/templates/drupal-api-user-listing.yaml +59 -0
  50. package/templates/drupal-dev-files-exposed.yaml +73 -0
  51. package/templates/drupal-file-path-disclosure.yaml +59 -0
  52. package/templates/drupal-files-listing.yaml +63 -0
  53. package/templates/drupal-install-error-disclosure.yaml +62 -0
  54. package/templates/drupal-theme-lockfiles.yaml +79 -0
  55. package/templates/drupal-version-detect.yaml +89 -0
  56. package/templates/http-options-enabled.yaml +56 -0
  57. package/templates/nextjs-version-detect.yaml +35 -0
  58. package/templates/php-version-detect.yaml +37 -0
  59. package/zap.yaml +33 -0
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Test Categories Configuration
3
+ * Maps scanner tags to human-readable test categories
4
+ * Used to track test coverage and show "Nothing found" results
5
+ *
6
+ * Supports both ZAP (primary) and Nuclei (supplementary)
7
+ */
8
+ /**
9
+ * Define all test categories
10
+ * Order matters - this is how they'll appear in the report
11
+ *
12
+ * ZAP Plugin IDs reference:
13
+ * - 10003: Vulnerable JS Library (Retire.js)
14
+ * - 10038: CSP Header Not Set
15
+ * - 10020: Missing X-Frame-Options
16
+ * - 10035: Strict-Transport-Security Not Set
17
+ * - 10021: X-Content-Type-Options Missing
18
+ * - 10098: Cross-Domain Misconfiguration (CORS)
19
+ * - 10202: Absence of Anti-CSRF Tokens
20
+ * - 90003: Sub Resource Integrity Missing
21
+ * - 10037: X-Powered-By Information Leak
22
+ * - 10036: Server Version Leak
23
+ * - 10027: Information Disclosure - Suspicious Comments
24
+ * - 10031: User Controllable HTML Attribute (XSS hint)
25
+ * - 10017: Cross-Domain JavaScript Source
26
+ */
27
+ export const TEST_CATEGORIES = [
28
+ // Vulnerable Components (ZAP primary) - Most specific first
29
+ {
30
+ id: 'js-libraries',
31
+ name: 'JavaScript Library CVEs',
32
+ description: 'Vulnerable JavaScript libraries (jQuery, Bootstrap, etc.)',
33
+ tags: ['js-library', 'outdated-component'],
34
+ sources: ['zap'],
35
+ zapPluginIds: ['10003'],
36
+ },
37
+ // Security Headers (ZAP + Nuclei) - Remove broad "misconfig" tag
38
+ {
39
+ id: 'security-headers',
40
+ name: 'Security Headers',
41
+ description: 'HTTP security headers like HSTS, CSP, X-Frame-Options, X-Content-Type-Options',
42
+ tags: ['header', 'headers', 'csp', 'hsts', 'clickjacking', 'x-frame-options', 'x-content-type'],
43
+ templatePatterns: ['*-header*', '*security-header*'],
44
+ sources: ['zap', 'nuclei'],
45
+ zapPluginIds: ['10038', '10020', '10035', '10021', '10063'],
46
+ },
47
+ // CORS (ZAP + Nuclei)
48
+ {
49
+ id: 'cors',
50
+ name: 'CORS Misconfiguration',
51
+ description: 'Cross-Origin Resource Sharing misconfigurations',
52
+ tags: ['cors', 'cross-domain'],
53
+ templatePatterns: ['*cors*'],
54
+ sources: ['zap', 'nuclei'],
55
+ zapPluginIds: ['10098'],
56
+ },
57
+ // CSRF (ZAP primary)
58
+ {
59
+ id: 'csrf',
60
+ name: 'Cross-Site Request Forgery',
61
+ description: 'Missing Anti-CSRF tokens in forms',
62
+ tags: ['csrf'],
63
+ templatePatterns: ['*csrf*'],
64
+ sources: ['zap'],
65
+ zapPluginIds: ['10202'],
66
+ },
67
+ // SRI (ZAP primary)
68
+ {
69
+ id: 'sri',
70
+ name: 'Subresource Integrity',
71
+ description: 'External scripts missing integrity attribute',
72
+ tags: ['sri', 'integrity'],
73
+ sources: ['zap'],
74
+ zapPluginIds: ['90003'],
75
+ },
76
+ // Sensitive Files (Nuclei primary) - BEFORE info-disclosure to catch file exposures
77
+ {
78
+ id: 'sensitive-files',
79
+ name: 'Sensitive Files',
80
+ description: 'Backup files, config files (composer.json, .env), database dumps, lock files',
81
+ tags: ['backup', 'config', 'file', 'dev', 'lockfile', 'npm', 'yarn', 'theme'],
82
+ templatePatterns: ['*backup*', '*config*', '*.log', '*.bak', '*composer*', '*env*', '*lockfile*', '*-files-*', '*-dev-*'],
83
+ sources: ['nuclei'],
84
+ },
85
+ // Information Disclosure (Both) - More specific: version leaks, not file exposures
86
+ {
87
+ id: 'info-disclosure',
88
+ name: 'Information Disclosure',
89
+ description: 'Server version leaks, sensitive information in responses',
90
+ tags: ['disclosure', 'info-disclosure', 'version-leak'],
91
+ templatePatterns: ['*disclosure*'],
92
+ sources: ['zap', 'nuclei'],
93
+ zapPluginIds: ['10037', '10036', '10027', '10009'],
94
+ },
95
+ // XSS (ZAP hints + Nuclei)
96
+ {
97
+ id: 'xss',
98
+ name: 'Cross-Site Scripting (XSS)',
99
+ description: 'Reflected, stored, and DOM-based XSS',
100
+ tags: ['xss', 'user-input'],
101
+ templatePatterns: ['*xss*'],
102
+ sources: ['zap', 'nuclei'],
103
+ zapPluginIds: ['10031', '10110'],
104
+ },
105
+ // SSL/TLS (testssl.sh primary)
106
+ {
107
+ id: 'ssl-tls',
108
+ name: 'SSL/TLS Configuration',
109
+ description: 'Certificate validation, cipher suites, protocol versions',
110
+ tags: ['ssl', 'tls'],
111
+ templatePatterns: ['ssl-*', 'tls-*'],
112
+ sources: ['testssl'],
113
+ },
114
+ // Untrusted Certificates (testssl.sh)
115
+ {
116
+ id: 'untrusted-certs',
117
+ name: 'Untrusted Certificates',
118
+ description: 'Self-signed, expired, or untrusted SSL certificates',
119
+ tags: ['certificate', 'cert', 'untrusted'],
120
+ templatePatterns: ['*certificate*', '*cert-*'],
121
+ sources: ['testssl'],
122
+ },
123
+ // HTTP Debug Methods
124
+ {
125
+ id: 'http-methods',
126
+ name: 'HTTP Debug Methods',
127
+ description: 'Dangerous HTTP methods like TRACE, DEBUG, OPTIONS enabled',
128
+ tags: ['http', 'options', 'trace', 'debug', 'methods'],
129
+ templatePatterns: ['*http-options*', '*http-trace*', '*http-debug*', '*http-method*'],
130
+ sources: ['nuclei'],
131
+ },
132
+ // Client Access Policies
133
+ {
134
+ id: 'client-access',
135
+ name: 'Client Access Policies',
136
+ description: 'Flash crossdomain.xml and Silverlight clientaccesspolicy.xml files',
137
+ tags: ['crossdomain', 'clientaccess', 'flash', 'silverlight'],
138
+ templatePatterns: ['*crossdomain*', '*clientaccess*', '*flash-*'],
139
+ sources: ['nuclei'],
140
+ },
141
+ // Admin Panels (Nuclei primary)
142
+ {
143
+ id: 'admin-panels',
144
+ name: 'Administration Consoles',
145
+ description: 'Exposed admin panels, login pages, management interfaces',
146
+ tags: ['panel', 'login', 'admin'],
147
+ templatePatterns: ['*-panel', '*-login', '*admin*'],
148
+ sources: ['nuclei'],
149
+ },
150
+ // Directory Listing
151
+ {
152
+ id: 'directory-listing',
153
+ name: 'Directory Listing',
154
+ description: 'Directories with listing enabled',
155
+ tags: ['listing'],
156
+ templatePatterns: ['*directory-listing*', '*dir-listing*'],
157
+ sources: ['nuclei'],
158
+ },
159
+ // Technology Detection (Both)
160
+ {
161
+ id: 'tech-detection',
162
+ name: 'Software Identification',
163
+ description: 'Server software, frameworks, CMS detection',
164
+ tags: ['tech', 'detect', 'technologies', 'discovery', 'version'],
165
+ templatePatterns: ['*-detect', '*version-detect*'],
166
+ sources: ['zap', 'nuclei'],
167
+ },
168
+ // GraphQL Endpoints (Nuclei)
169
+ {
170
+ id: 'graphql',
171
+ name: 'GraphQL Endpoints',
172
+ description: 'GraphQL endpoints and introspection',
173
+ tags: ['graphql'],
174
+ templatePatterns: ['*graphql*'],
175
+ sources: ['nuclei'],
176
+ },
177
+ // API Endpoints (Nuclei primary)
178
+ {
179
+ id: 'api-endpoints',
180
+ name: 'API Endpoints',
181
+ description: 'REST APIs, Swagger/OpenAPI documentation',
182
+ tags: ['api', 'swagger', 'openapi', 'rest'],
183
+ templatePatterns: ['*swagger*', '*openapi*', '*api-*'],
184
+ sources: ['nuclei'],
185
+ },
186
+ // SQL Injection (Nuclei)
187
+ {
188
+ id: 'sqli',
189
+ name: 'SQL Injection',
190
+ description: 'SQL injection vulnerabilities',
191
+ tags: ['sqli', 'sql'],
192
+ templatePatterns: ['*sqli*', '*sql-injection*'],
193
+ sources: ['nuclei'],
194
+ },
195
+ // LFI/Path Traversal
196
+ {
197
+ id: 'lfi',
198
+ name: 'Local File Inclusion',
199
+ description: 'LFI and path traversal vulnerabilities',
200
+ tags: ['lfi', 'traversal'],
201
+ templatePatterns: ['*lfi*', '*traversal*'],
202
+ sources: ['nuclei'],
203
+ },
204
+ // RCE
205
+ {
206
+ id: 'rce',
207
+ name: 'Command Injection',
208
+ description: 'OS command injection, RCE vulnerabilities',
209
+ tags: ['rce', 'command-injection'],
210
+ templatePatterns: ['*rce*', '*command*'],
211
+ sources: ['nuclei'],
212
+ },
213
+ // SSRF
214
+ {
215
+ id: 'ssrf',
216
+ name: 'Server-Side Request Forgery',
217
+ description: 'SSRF vulnerabilities',
218
+ tags: ['ssrf'],
219
+ templatePatterns: ['*ssrf*'],
220
+ sources: ['nuclei'],
221
+ },
222
+ // Open Redirect
223
+ {
224
+ id: 'redirect',
225
+ name: 'Open Redirect',
226
+ description: 'Open redirect vulnerabilities',
227
+ tags: ['redirect'],
228
+ templatePatterns: ['*redirect*'],
229
+ sources: ['zap', 'nuclei'],
230
+ zapPluginIds: ['10044'],
231
+ },
232
+ // CVE-based (Both)
233
+ {
234
+ id: 'known-cves',
235
+ name: 'Known Vulnerabilities (CVEs)',
236
+ description: 'CVE-based vulnerability checks',
237
+ tags: ['cve'],
238
+ templatePatterns: ['CVE-*', 'cve-*'],
239
+ sources: ['zap', 'nuclei', 'nvd'],
240
+ },
241
+ ];
242
+ /**
243
+ * Match a finding to categories based on tags and template ID
244
+ */
245
+ export function matchCategories(templateId, tags = []) {
246
+ const matchedCategories = [];
247
+ const lowerTags = new Set(tags.map(t => t.toLowerCase()));
248
+ const lowerTemplateId = templateId.toLowerCase();
249
+ for (const category of TEST_CATEGORIES) {
250
+ // Check tag match
251
+ const tagMatch = category.tags.some(catTag => lowerTags.has(catTag.toLowerCase()));
252
+ // Check template pattern match
253
+ let patternMatch = false;
254
+ if (category.templatePatterns) {
255
+ patternMatch = category.templatePatterns.some(pattern => {
256
+ const regex = new RegExp(pattern.replaceAll('*', '.*').replaceAll('?', '.'), 'i');
257
+ return regex.test(lowerTemplateId);
258
+ });
259
+ }
260
+ if (tagMatch || patternMatch) {
261
+ matchedCategories.push(category.id);
262
+ }
263
+ }
264
+ return matchedCategories;
265
+ }
266
+ /**
267
+ * Get category by ID
268
+ */
269
+ export function getCategoryById(id) {
270
+ return TEST_CATEGORIES.find(c => c.id === id);
271
+ }
272
+ /**
273
+ * Get all category IDs
274
+ */
275
+ export function getAllCategoryIds() {
276
+ return TEST_CATEGORIES.map(c => c.id);
277
+ }
278
+ //# sourceMappingURL=categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../src/categories.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * VoidSec Scanner CLI
4
+ * Security scanning orchestrator
5
+ *
6
+ * Architecture:
7
+ * - ZAP (primary): JS CVEs, Headers, CORS, CSRF, XSS hints
8
+ * - Nuclei (supplementary): CMS detection, exposed files, takeovers
9
+ * - testssl.sh: SSL/TLS analysis
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}