@js-recon/js-recon 1.3.1 → 1.4.1-alpha.10
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.
- package/.github/workflows/build-and-prettify.yaml +207 -14
- package/.github/workflows/pr_checker.yml +2 -2
- package/.github/workflows/promote-js-recon.yml +104 -0
- package/.github/workflows/publish-js-recon.yml +22 -80
- package/.github/workflows/rules-smoke-test.yaml +79 -0
- package/CHANGELOG.md +181 -2
- package/CLAUDE.md +350 -16
- package/Dockerfile.release +29 -0
- package/README.md +48 -19
- package/build/analyze/engine/csMastSEngine.js +129 -0
- package/build/analyze/engine/csMastSEngine.js.map +1 -0
- package/build/analyze/engine/index.js +15 -0
- package/build/analyze/engine/index.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/findDirectAssignment.js +2 -1
- package/build/analyze/helpers/engineHelpers/findDirectAssignment.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js +2 -1
- package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js +2 -1
- package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/taintFlow.js +11 -2
- package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
- package/build/analyze/helpers/initRules.js +3 -3
- package/build/analyze/helpers/initRules.js.map +1 -1
- package/build/analyze/helpers/schemas.js +6 -2
- package/build/analyze/helpers/schemas.js.map +1 -1
- package/build/analyze/helpers/validate.js +3 -3
- package/build/analyze/helpers/validate.js.map +1 -1
- package/build/analyze/index.js +1 -0
- package/build/analyze/index.js.map +1 -1
- package/build/completion/index.js +432 -0
- package/build/completion/index.js.map +1 -0
- package/build/cs_mast/index.js +213 -0
- package/build/cs_mast/index.js.map +1 -0
- package/build/endpoints/next_js/client_jsFilesHref.js +2 -1
- package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
- package/build/endpoints/next_js/client_jsonParse.js +2 -1
- package/build/endpoints/next_js/client_jsonParse.js.map +1 -1
- package/build/endpoints/next_js/client_mappedJsonFile.js +2 -1
- package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
- package/build/endpoints/next_js/client_subsequentRequests.js +2 -1
- package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
- package/build/fingerprint/index.js +56 -33
- package/build/fingerprint/index.js.map +1 -1
- package/build/globalConfig.js +3 -3
- package/build/globalConfig.js.map +1 -1
- package/build/index.js +210 -10
- package/build/index.js.map +1 -1
- package/build/lazyLoad/angular/angular_getFromMainJs.js +2 -1
- package/build/lazyLoad/angular/angular_getFromMainJs.js.map +1 -1
- package/build/lazyLoad/downloadFilesUtil.js +6 -5
- package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
- package/build/lazyLoad/downloadLoadedJsUtil.js +59 -5
- package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -1
- package/build/lazyLoad/downloadQueue.js +10 -9
- package/build/lazyLoad/downloadQueue.js.map +1 -1
- package/build/lazyLoad/index.js +127 -85
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/methodFilter.js +50 -0
- package/build/lazyLoad/methodFilter.js.map +1 -0
- package/build/lazyLoad/next_js/NextJsCrawler.js +69 -48
- package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +36 -34
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +66 -13
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_parseLayoutJs.js +80 -68
- package/build/lazyLoad/next_js/next_parseLayoutJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_promiseResolve.js +22 -16
- package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js +49 -47
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js +64 -0
- package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js.map +1 -0
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +3 -1
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +3 -2
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/react/react_followImports.js +16 -7
- package/build/lazyLoad/react/react_followImports.js.map +1 -1
- package/build/lazyLoad/react/react_webpackChunkPaths.js +175 -123
- package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js +16 -0
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_getVersionJson.js +40 -0
- package/build/lazyLoad/svelte/svelte_getVersionJson.js.map +1 -0
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +3 -2
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/techDetect/checkAngularJS.js +27 -6
- package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -1
- package/build/lazyLoad/techDetect/checkNextJS.js +24 -15
- package/build/lazyLoad/techDetect/checkNextJS.js.map +1 -1
- package/build/lazyLoad/techDetect/checkReact.js +8 -0
- package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
- package/build/lazyLoad/techDetect/checkSvelte.js +17 -0
- package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
- package/build/lazyLoad/techDetect/index.js +33 -5
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/lazyLoad/vue/vue_RuntimeJs.js +2 -1
- package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -1
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +2 -1
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
- package/build/lazyLoad/vue/vue_discoverJsFiles.js +59 -25
- package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js +2 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
- package/build/lazyLoad/vue/vue_jsImports.js +2 -1
- package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +2 -2
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
- package/build/lazyLoad/vue/vue_viteMapDeps.js +62 -54
- package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -1
- package/build/map/angular_js/getAngularConnections.js +88 -0
- package/build/map/angular_js/getAngularConnections.js.map +1 -0
- package/build/map/angular_js/interactive.js +4 -0
- package/build/map/angular_js/interactive.js.map +1 -0
- package/build/map/graphql/resolveGraphql.js +2 -1
- package/build/map/graphql/resolveGraphql.js.map +1 -1
- package/build/map/index.js +38 -0
- package/build/map/index.js.map +1 -1
- package/build/map/next_js/getExports.js +2 -1
- package/build/map/next_js/getExports.js.map +1 -1
- package/build/map/next_js/getFetchInstances.js +2 -1
- package/build/map/next_js/getFetchInstances.js.map +1 -1
- package/build/map/next_js/getTurbopackConnections.js +2 -1
- package/build/map/next_js/getTurbopackConnections.js.map +1 -1
- package/build/map/next_js/getWebpackConnections.js +2 -1
- package/build/map/next_js/getWebpackConnections.js.map +1 -1
- package/build/map/next_js/resolveAxios.js +2 -1
- package/build/map/next_js/resolveAxios.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/traceBody.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/traceBody.js.map +1 -1
- package/build/map/next_js/resolveFetch.js +2 -1
- package/build/map/next_js/resolveFetch.js.map +1 -1
- package/build/map/next_js/resolveNewRequest.js +2 -1
- package/build/map/next_js/resolveNewRequest.js.map +1 -1
- package/build/map/next_js/resolveServerActions.js +2 -1
- package/build/map/next_js/resolveServerActions.js.map +1 -1
- package/build/map/next_js/utils.js +2 -1
- package/build/map/next_js/utils.js.map +1 -1
- package/build/map/react_js/getReactConnections.js +5 -4
- package/build/map/react_js/getReactConnections.js.map +1 -1
- package/build/map/vue_js/crossFileResolver.js +3 -2
- package/build/map/vue_js/crossFileResolver.js.map +1 -1
- package/build/map/vue_js/getViteConnections.js +5 -4
- package/build/map/vue_js/getViteConnections.js.map +1 -1
- package/build/map/vue_js/taint_utils.js +2 -1
- package/build/map/vue_js/taint_utils.js.map +1 -1
- package/build/map/vue_js/vue_resolveFetch.js +3 -2
- package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
- package/build/map/vue_js/vue_resolveHttpClient.js +5 -3
- package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -1
- package/build/map/vue_js/vue_resolveXhr.js +5 -3
- package/build/map/vue_js/vue_resolveXhr.js.map +1 -1
- package/build/mcp/cli.js.map +1 -1
- package/build/refactor/index.js +973 -27
- package/build/refactor/index.js.map +1 -1
- package/build/refactor/next/helpers.js +395 -0
- package/build/refactor/next/helpers.js.map +1 -0
- package/build/refactor/next/index.js +261 -71
- package/build/refactor/next/index.js.map +1 -1
- package/build/refactor/next/transform.js +1027 -0
- package/build/refactor/next/transform.js.map +1 -0
- package/build/refactor/next/validator.js +119 -0
- package/build/refactor/next/validator.js.map +1 -0
- package/build/refactor/react/helpers.js +106 -0
- package/build/refactor/react/helpers.js.map +1 -0
- package/build/refactor/react/index.js +290 -585
- package/build/refactor/react/index.js.map +1 -1
- package/build/refactor/react/library-classify.js +397 -0
- package/build/refactor/react/library-classify.js.map +1 -0
- package/build/refactor/react/transform.js +1852 -0
- package/build/refactor/react/transform.js.map +1 -0
- package/build/refactor/react/validator.js +123 -0
- package/build/refactor/react/validator.js.map +1 -0
- package/build/refactor/react-vite/index.js +652 -0
- package/build/refactor/react-vite/index.js.map +1 -0
- package/build/refactor/react-vite/vendor-analyze.js +336 -0
- package/build/refactor/react-vite/vendor-analyze.js.map +1 -0
- package/build/refactor/remote/cache.js +250 -0
- package/build/refactor/remote/cache.js.map +1 -0
- package/build/refactor/remote/config.js +63 -0
- package/build/refactor/remote/config.js.map +1 -0
- package/build/refactor/remote/hf-client.js +202 -0
- package/build/refactor/remote/hf-client.js.map +1 -0
- package/build/refactor/remote/version-detect.js +355 -0
- package/build/refactor/remote/version-detect.js.map +1 -0
- package/build/refactor/vue/index.js +176 -0
- package/build/refactor/vue/index.js.map +1 -0
- package/build/refactor/vue/vendor-analyze-vue.js +271 -0
- package/build/refactor/vue/vendor-analyze-vue.js.map +1 -0
- package/build/refactor/vue/vite.js +216 -0
- package/build/refactor/vue/vite.js.map +1 -0
- package/build/report/utility/genHtml.js +15 -4
- package/build/report/utility/genHtml.js.map +1 -1
- package/build/run/bundler-detect.js +154 -0
- package/build/run/bundler-detect.js.map +1 -0
- package/build/run/index.js +208 -16
- package/build/run/index.js.map +1 -1
- package/build/sourcemaps/index.js +89 -0
- package/build/sourcemaps/index.js.map +1 -0
- package/build/strings/index.js +6 -2
- package/build/strings/index.js.map +1 -1
- package/build/strings/trufflehog.js +71 -0
- package/build/strings/trufflehog.js.map +1 -0
- package/build/utility/banner.js +68 -0
- package/build/utility/banner.js.map +1 -0
- package/build/utility/getChromiumPath.js +40 -0
- package/build/utility/getChromiumPath.js.map +1 -0
- package/build/utility/globals.js +7 -0
- package/build/utility/globals.js.map +1 -1
- package/build/utility/makeReq.js +21 -11
- package/build/utility/makeReq.js.map +1 -1
- package/build/utility/postmanGenerator.js +2 -2
- package/build/utility/postmanGenerator.js.map +1 -1
- package/build/utility/puppeteerInstance.js +7 -1
- package/build/utility/puppeteerInstance.js.map +1 -1
- package/package.json +14 -8
- package/scripts/smoke-test.js +74 -0
package/build/run/index.js
CHANGED
|
@@ -17,9 +17,11 @@ import chalk from "chalk";
|
|
|
17
17
|
import CONFIG from "../globalConfig.js";
|
|
18
18
|
import analyze from "../analyze/index.js";
|
|
19
19
|
import report from "../report/index.js";
|
|
20
|
+
import refactor from "../refactor/index.js";
|
|
20
21
|
import { clearJsUrls, clearJsonUrls, getJsUrls } from "../lazyLoad/globals.js";
|
|
21
22
|
import path from "path";
|
|
22
23
|
import { installSigintHandler, removeSigintHandler, getSkipStepPromise, resetSkipStep, shouldSkipTarget, resetSkipTarget, } from "./interruptHandler.js";
|
|
24
|
+
import { detectBundler } from "./bundler-detect.js";
|
|
23
25
|
/**
|
|
24
26
|
* Determines the directory for a Content Delivery Network (CDN) if used by the target.
|
|
25
27
|
*
|
|
@@ -65,17 +67,19 @@ const getCdnDir = (host, outputDir) => __awaiter(void 0, void 0, void 0, functio
|
|
|
65
67
|
* @param isBatch - Whether this is part of a batch process, affecting file path resolution
|
|
66
68
|
* @returns Promise that resolves when the analysis for the URL is complete
|
|
67
69
|
*/
|
|
68
|
-
const processUrl = (
|
|
70
|
+
const processUrl = (url_1, outputDir_1, workingDir_1, cmd_1, isBatch_1, ...args_1) => __awaiter(void 0, [url_1, outputDir_1, workingDir_1, cmd_1, isBatch_1, ...args_1], void 0, function* (url, outputDir, workingDir, cmd, isBatch, includeMethods = [], excludeMethods = []) {
|
|
71
|
+
var _a, _b, _c, _d;
|
|
69
72
|
const targetHost = new URL(url).host.replace(":", "_");
|
|
70
73
|
console.log(chalk.bgGreenBright(`[+] Starting analysis for ${url}...`));
|
|
71
74
|
if (isBatch) {
|
|
72
75
|
clearJsUrls();
|
|
73
76
|
clearJsonUrls();
|
|
77
|
+
globalsUtil.clearOpenapiOutput();
|
|
74
78
|
}
|
|
75
79
|
console.log(chalk.bgCyan("[1/8] Running lazyload to download JavaScript files..."));
|
|
76
80
|
resetSkipStep();
|
|
77
81
|
yield Promise.race([
|
|
78
|
-
lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, false, "", cmd.insecure, false, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations), Number(cmd.maxJsSize), Number(cmd.lazyloadTimeout) * 60 * 1000, Number(cmd.maxPages)),
|
|
82
|
+
lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, false, "", cmd.insecure, false, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations), Number(cmd.maxJsSize), Number(cmd.lazyloadTimeout) * 60 * 1000, Number(cmd.maxPages), includeMethods, excludeMethods),
|
|
79
83
|
getSkipStepPromise(),
|
|
80
84
|
]);
|
|
81
85
|
console.log(chalk.bgGreen("[+] Lazyload complete."));
|
|
@@ -88,8 +92,8 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
88
92
|
}
|
|
89
93
|
process.exit(10);
|
|
90
94
|
}
|
|
91
|
-
if (!["next", "vue", "react", "svelte"].includes(globalsUtil.getTech())) {
|
|
92
|
-
console.log(chalk.bgYellow(`[!] The tool supports Next.JS, Vue.JS, React,
|
|
95
|
+
if (!["next", "vue", "nuxt", "react", "svelte", "angular"].includes(globalsUtil.getTech())) {
|
|
96
|
+
console.log(chalk.bgYellow(`[!] The tool supports Next.JS, Vue.JS, Nuxt.JS, React, Svelte/Astro, and Angular in the run module. For ${globalsUtil.getTech()}, only downloading JS files is supported`));
|
|
93
97
|
return;
|
|
94
98
|
}
|
|
95
99
|
// Capture the tech here — subsequent lazyload passes (steps 3, 4.5) re-run framework
|
|
@@ -105,7 +109,6 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
105
109
|
const reportDbFile = isBatch ? `${workingDir}/js-recon.db` : "js-recon.db";
|
|
106
110
|
const reportFile = isBatch ? `${workingDir}/report` : "report";
|
|
107
111
|
const endpointsFile = isBatch ? `${workingDir}/endpoints` : "endpoints";
|
|
108
|
-
const reactHostDir = `${outputDir}/${targetHost}`;
|
|
109
112
|
console.log(chalk.bgCyan("[2/4] Running map to find functions and API calls..."));
|
|
110
113
|
globalsUtil.setOpenapi(true);
|
|
111
114
|
if (isBatch) {
|
|
@@ -118,7 +121,7 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
118
121
|
}
|
|
119
122
|
resetSkipStep();
|
|
120
123
|
yield Promise.race([
|
|
121
|
-
map(
|
|
124
|
+
map(outputDir, mappedFileReact, ["json"], "react", false, false, cmd.command || []),
|
|
122
125
|
getSkipStepPromise(),
|
|
123
126
|
]);
|
|
124
127
|
console.log(chalk.bgGreen("[+] Map complete."));
|
|
@@ -145,6 +148,27 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
145
148
|
getSkipStepPromise(),
|
|
146
149
|
]);
|
|
147
150
|
console.log(chalk.bgGreen("[+] Report complete."));
|
|
151
|
+
if (shouldSkipTarget())
|
|
152
|
+
return;
|
|
153
|
+
console.log(chalk.bgCyan("[*] Detecting bundler via CS-MAST-S for refactor..."));
|
|
154
|
+
const detectedBundlerTechReact = yield detectBundler(mappedJsonFileReact, "react", Number((_a = cmd.csMastTechDetectThreshold) !== null && _a !== void 0 ? _a : 50));
|
|
155
|
+
if (detectedBundlerTechReact) {
|
|
156
|
+
const refactorOutputDirReact = isBatch ? `${workingDir}/refactored` : "refactored";
|
|
157
|
+
if (fs.existsSync(refactorOutputDirReact))
|
|
158
|
+
fs.rmSync(refactorOutputDirReact, { recursive: true });
|
|
159
|
+
console.log(chalk.bgCyan(`[*] Running refactor (${detectedBundlerTechReact})...`));
|
|
160
|
+
resetSkipStep();
|
|
161
|
+
yield Promise.race([
|
|
162
|
+
refactor(mappedJsonFileReact, refactorOutputDirReact, detectedBundlerTechReact, false),
|
|
163
|
+
getSkipStepPromise(),
|
|
164
|
+
]);
|
|
165
|
+
if (shouldSkipTarget())
|
|
166
|
+
return;
|
|
167
|
+
console.log(chalk.bgGreen("[+] Refactor complete."));
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
console.log(chalk.yellow("[!] Bundler not detected via CS-MAST-S, skipping refactor."));
|
|
171
|
+
}
|
|
148
172
|
console.log(chalk.bgGreenBright(`[+] Analysis complete for ${url}.`));
|
|
149
173
|
return;
|
|
150
174
|
}
|
|
@@ -199,6 +223,99 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
199
223
|
getSkipStepPromise(),
|
|
200
224
|
]);
|
|
201
225
|
console.log(chalk.bgGreen("[+] Report complete."));
|
|
226
|
+
if (shouldSkipTarget())
|
|
227
|
+
return;
|
|
228
|
+
console.log(chalk.bgCyan("[*] Detecting bundler via CS-MAST-S for refactor..."));
|
|
229
|
+
const detectedBundlerTechVue = yield detectBundler(mappedJsonFileVue, "vue", Number((_b = cmd.csMastTechDetectThreshold) !== null && _b !== void 0 ? _b : 50));
|
|
230
|
+
if (detectedBundlerTechVue) {
|
|
231
|
+
const refactorOutputDirVue = isBatch ? `${workingDir}/refactored` : "refactored";
|
|
232
|
+
if (fs.existsSync(refactorOutputDirVue))
|
|
233
|
+
fs.rmSync(refactorOutputDirVue, { recursive: true });
|
|
234
|
+
console.log(chalk.bgCyan(`[*] Running refactor (${detectedBundlerTechVue})...`));
|
|
235
|
+
resetSkipStep();
|
|
236
|
+
yield Promise.race([
|
|
237
|
+
refactor(mappedJsonFileVue, refactorOutputDirVue, detectedBundlerTechVue, false),
|
|
238
|
+
getSkipStepPromise(),
|
|
239
|
+
]);
|
|
240
|
+
if (shouldSkipTarget())
|
|
241
|
+
return;
|
|
242
|
+
console.log(chalk.bgGreen("[+] Refactor complete."));
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
console.log(chalk.yellow("[!] Bundler not detected via CS-MAST-S, skipping refactor."));
|
|
246
|
+
}
|
|
247
|
+
console.log(chalk.bgGreenBright(`[+] Analysis complete for ${url}.`));
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
if (detectedTech === "nuxt") {
|
|
251
|
+
// Nuxt is built on Vue.js — the same map/analyze/report pipeline applies.
|
|
252
|
+
const mappedFileNuxt = isBatch ? `${workingDir}/mapped` : "mapped";
|
|
253
|
+
const mappedJsonFileNuxt = isBatch ? `${workingDir}/mapped.json` : "mapped.json";
|
|
254
|
+
const openapiFile = isBatch ? `${workingDir}/mapped-openapi.json` : "mapped-openapi.json";
|
|
255
|
+
const analyzeFile = isBatch ? `${workingDir}/analyze.json` : "analyze.json";
|
|
256
|
+
const reportDbFile = isBatch ? `${workingDir}/js-recon.db` : "js-recon.db";
|
|
257
|
+
const reportFile = isBatch ? `${workingDir}/report` : "report";
|
|
258
|
+
const endpointsFile = isBatch ? `${workingDir}/endpoints` : "endpoints";
|
|
259
|
+
console.log(chalk.bgCyan("[2/4] Running map to find functions and API calls..."));
|
|
260
|
+
globalsUtil.setOpenapi(true);
|
|
261
|
+
if (isBatch) {
|
|
262
|
+
globalsUtil.setOpenapiOutputFile(openapiFile);
|
|
263
|
+
}
|
|
264
|
+
for (const ext of [".json", "-openapi.json", "-openapi.postman_collection.json"]) {
|
|
265
|
+
const p = `${mappedFileNuxt}${ext}`;
|
|
266
|
+
if (fs.existsSync(p))
|
|
267
|
+
fs.unlinkSync(p);
|
|
268
|
+
}
|
|
269
|
+
resetSkipStep();
|
|
270
|
+
yield Promise.race([
|
|
271
|
+
map(outputDir, mappedFileNuxt, ["json"], "vue", false, false, cmd.command || []),
|
|
272
|
+
getSkipStepPromise(),
|
|
273
|
+
]);
|
|
274
|
+
console.log(chalk.bgGreen("[+] Map complete."));
|
|
275
|
+
if (shouldSkipTarget())
|
|
276
|
+
return;
|
|
277
|
+
console.log(chalk.bgCyan("[3/4] Running analyze..."));
|
|
278
|
+
resetSkipStep();
|
|
279
|
+
// @ts-ignore
|
|
280
|
+
yield Promise.race([
|
|
281
|
+
analyze(cmd.rules || "", mappedJsonFileNuxt, "vue", false, openapiFile, false, analyzeFile),
|
|
282
|
+
getSkipStepPromise(),
|
|
283
|
+
]);
|
|
284
|
+
console.log(chalk.bgGreen("[+] Analyze complete."));
|
|
285
|
+
if (shouldSkipTarget())
|
|
286
|
+
return;
|
|
287
|
+
console.log(chalk.bgCyan("[4/4] Running report module..."));
|
|
288
|
+
const endpointsJson = `${endpointsFile}.json`;
|
|
289
|
+
if (!fs.existsSync(endpointsJson)) {
|
|
290
|
+
fs.writeFileSync(endpointsJson, "[]");
|
|
291
|
+
}
|
|
292
|
+
resetSkipStep();
|
|
293
|
+
yield Promise.race([
|
|
294
|
+
report(reportDbFile, mappedJsonFileNuxt, analyzeFile, endpointsJson, openapiFile, reportFile),
|
|
295
|
+
getSkipStepPromise(),
|
|
296
|
+
]);
|
|
297
|
+
console.log(chalk.bgGreen("[+] Report complete."));
|
|
298
|
+
if (shouldSkipTarget())
|
|
299
|
+
return;
|
|
300
|
+
console.log(chalk.bgCyan("[*] Detecting bundler via CS-MAST-S for refactor..."));
|
|
301
|
+
const detectedBundlerTechNuxt = yield detectBundler(mappedJsonFileNuxt, "nuxt", Number((_c = cmd.csMastTechDetectThreshold) !== null && _c !== void 0 ? _c : 50));
|
|
302
|
+
if (detectedBundlerTechNuxt) {
|
|
303
|
+
const refactorOutputDirNuxt = isBatch ? `${workingDir}/refactored` : "refactored";
|
|
304
|
+
if (fs.existsSync(refactorOutputDirNuxt))
|
|
305
|
+
fs.rmSync(refactorOutputDirNuxt, { recursive: true });
|
|
306
|
+
console.log(chalk.bgCyan(`[*] Running refactor (${detectedBundlerTechNuxt})...`));
|
|
307
|
+
resetSkipStep();
|
|
308
|
+
yield Promise.race([
|
|
309
|
+
refactor(mappedJsonFileNuxt, refactorOutputDirNuxt, detectedBundlerTechNuxt, false),
|
|
310
|
+
getSkipStepPromise(),
|
|
311
|
+
]);
|
|
312
|
+
if (shouldSkipTarget())
|
|
313
|
+
return;
|
|
314
|
+
console.log(chalk.bgGreen("[+] Refactor complete."));
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
console.log(chalk.yellow("[!] Bundler not detected via CS-MAST-S, skipping refactor."));
|
|
318
|
+
}
|
|
202
319
|
console.log(chalk.bgGreenBright(`[+] Analysis complete for ${url}.`));
|
|
203
320
|
return;
|
|
204
321
|
}
|
|
@@ -252,6 +369,60 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
252
369
|
console.log(chalk.bgGreenBright(`[+] Analysis complete for ${url}.`));
|
|
253
370
|
return;
|
|
254
371
|
}
|
|
372
|
+
if (detectedTech === "angular") {
|
|
373
|
+
// Angular pipeline: lazyload (done) + map + analyze + report.
|
|
374
|
+
// Angular CLI (esbuild) chunks land directly under output/<host>/ with no
|
|
375
|
+
// static/js subdirectory, so we scan the whole host dir.
|
|
376
|
+
const mappedFileAngular = isBatch ? `${workingDir}/mapped` : "mapped";
|
|
377
|
+
const mappedJsonFileAngular = isBatch ? `${workingDir}/mapped.json` : "mapped.json";
|
|
378
|
+
const openapiFile = isBatch ? `${workingDir}/mapped-openapi.json` : "mapped-openapi.json";
|
|
379
|
+
const analyzeFile = isBatch ? `${workingDir}/analyze.json` : "analyze.json";
|
|
380
|
+
const reportDbFile = isBatch ? `${workingDir}/js-recon.db` : "js-recon.db";
|
|
381
|
+
const reportFile = isBatch ? `${workingDir}/report` : "report";
|
|
382
|
+
const endpointsFile = isBatch ? `${workingDir}/endpoints` : "endpoints";
|
|
383
|
+
const angularHostDir = `${outputDir}/${targetHost}`;
|
|
384
|
+
console.log(chalk.bgCyan("[2/4] Running map to find functions and API calls..."));
|
|
385
|
+
globalsUtil.setOpenapi(true);
|
|
386
|
+
if (isBatch) {
|
|
387
|
+
globalsUtil.setOpenapiOutputFile(openapiFile);
|
|
388
|
+
}
|
|
389
|
+
for (const ext of [".json", "-openapi.json", "-openapi.postman_collection.json"]) {
|
|
390
|
+
const p = `${mappedFileAngular}${ext}`;
|
|
391
|
+
if (fs.existsSync(p))
|
|
392
|
+
fs.unlinkSync(p);
|
|
393
|
+
}
|
|
394
|
+
resetSkipStep();
|
|
395
|
+
yield Promise.race([
|
|
396
|
+
map(angularHostDir, mappedFileAngular, ["json"], "angular", false, false, cmd.command || []),
|
|
397
|
+
getSkipStepPromise(),
|
|
398
|
+
]);
|
|
399
|
+
console.log(chalk.bgGreen("[+] Map complete."));
|
|
400
|
+
if (shouldSkipTarget())
|
|
401
|
+
return;
|
|
402
|
+
console.log(chalk.bgCyan("[3/4] Running analyze..."));
|
|
403
|
+
resetSkipStep();
|
|
404
|
+
// @ts-ignore
|
|
405
|
+
yield Promise.race([
|
|
406
|
+
analyze(cmd.rules || "", mappedJsonFileAngular, "angular", false, openapiFile, false, analyzeFile),
|
|
407
|
+
getSkipStepPromise(),
|
|
408
|
+
]);
|
|
409
|
+
console.log(chalk.bgGreen("[+] Analyze complete."));
|
|
410
|
+
if (shouldSkipTarget())
|
|
411
|
+
return;
|
|
412
|
+
console.log(chalk.bgCyan("[4/4] Running report module..."));
|
|
413
|
+
const endpointsJson = `${endpointsFile}.json`;
|
|
414
|
+
if (!fs.existsSync(endpointsJson)) {
|
|
415
|
+
fs.writeFileSync(endpointsJson, "[]");
|
|
416
|
+
}
|
|
417
|
+
resetSkipStep();
|
|
418
|
+
yield Promise.race([
|
|
419
|
+
report(reportDbFile, mappedJsonFileAngular, analyzeFile, endpointsJson, openapiFile, reportFile),
|
|
420
|
+
getSkipStepPromise(),
|
|
421
|
+
]);
|
|
422
|
+
console.log(chalk.bgGreen("[+] Report complete."));
|
|
423
|
+
console.log(chalk.bgGreenBright(`[+] Analysis complete for ${url}.`));
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
255
426
|
const stringsFile = isBatch ? `${workingDir}/strings.json` : "strings.json";
|
|
256
427
|
const extractedUrlsFile = isBatch ? `${workingDir}/extracted_urls` : "extracted_urls";
|
|
257
428
|
const mappedFile = isBatch ? `${workingDir}/mapped` : "mapped";
|
|
@@ -269,7 +440,7 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
269
440
|
console.log(chalk.bgCyan("[2/8] Running strings to extract endpoints..."));
|
|
270
441
|
resetSkipStep();
|
|
271
442
|
yield Promise.race([
|
|
272
|
-
strings(outputDir, stringsFile, true, extractedUrlsFile, false, false, false),
|
|
443
|
+
strings(outputDir, stringsFile, true, extractedUrlsFile, false, false, false, false),
|
|
273
444
|
getSkipStepPromise(),
|
|
274
445
|
]);
|
|
275
446
|
console.log(chalk.bgGreen("[+] Strings complete."));
|
|
@@ -278,7 +449,7 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
278
449
|
console.log(chalk.bgCyan("[3/8] Running lazyload with subsequent requests to download JavaScript files..."));
|
|
279
450
|
resetSkipStep();
|
|
280
451
|
yield Promise.race([
|
|
281
|
-
lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, true, `${extractedUrlsFile}.json`, cmd.insecure, true, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations), Number(cmd.maxJsSize), Number(cmd.lazyloadTimeout) * 60 * 1000, Number(cmd.maxPages)),
|
|
452
|
+
lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, true, `${extractedUrlsFile}.json`, cmd.insecure, true, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations), Number(cmd.maxJsSize), Number(cmd.lazyloadTimeout) * 60 * 1000, Number(cmd.maxPages), includeMethods, excludeMethods),
|
|
282
453
|
getSkipStepPromise(),
|
|
283
454
|
]);
|
|
284
455
|
console.log(chalk.bgGreen("[+] Lazyload with subsequent requests complete."));
|
|
@@ -287,7 +458,7 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
287
458
|
console.log(chalk.bgCyan("[4/8] Running strings again to extract endpoints..."));
|
|
288
459
|
resetSkipStep();
|
|
289
460
|
yield Promise.race([
|
|
290
|
-
strings(outputDir, stringsFile, true, extractedUrlsFile, cmd.secrets, true, true),
|
|
461
|
+
strings(outputDir, stringsFile, true, extractedUrlsFile, cmd.secrets, true, true, cmd.trufflehog),
|
|
291
462
|
getSkipStepPromise(),
|
|
292
463
|
]);
|
|
293
464
|
console.log(chalk.bgGreen("[+] Strings complete."));
|
|
@@ -300,7 +471,7 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
300
471
|
console.log(chalk.bgCyan("[4.5/8] Re-running lazyload with subsequent requests for newly discovered paths..."));
|
|
301
472
|
resetSkipStep();
|
|
302
473
|
yield Promise.race([
|
|
303
|
-
lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, true, `${extractedUrlsFile}.json`, cmd.insecure, false, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations), Number(cmd.maxJsSize), Number(cmd.lazyloadTimeout) * 60 * 1000, Number(cmd.maxPages)),
|
|
474
|
+
lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, true, `${extractedUrlsFile}.json`, cmd.insecure, false, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations), Number(cmd.maxJsSize), Number(cmd.lazyloadTimeout) * 60 * 1000, Number(cmd.maxPages), includeMethods, excludeMethods),
|
|
304
475
|
getSkipStepPromise(),
|
|
305
476
|
]);
|
|
306
477
|
console.log(chalk.bgGreen("[+] Lazyload re-pass complete."));
|
|
@@ -309,7 +480,7 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
309
480
|
console.log(chalk.bgCyan("[4.6/8] Re-running strings for chunks from the re-pass..."));
|
|
310
481
|
resetSkipStep();
|
|
311
482
|
yield Promise.race([
|
|
312
|
-
strings(outputDir, stringsFile, true, extractedUrlsFile, cmd.secrets, true, true),
|
|
483
|
+
strings(outputDir, stringsFile, true, extractedUrlsFile, cmd.secrets, true, true, cmd.trufflehog),
|
|
313
484
|
getSkipStepPromise(),
|
|
314
485
|
]);
|
|
315
486
|
console.log(chalk.bgGreen("[+] Strings re-pass complete."));
|
|
@@ -370,6 +541,27 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
370
541
|
getSkipStepPromise(),
|
|
371
542
|
]);
|
|
372
543
|
console.log(chalk.bgGreen("[+] Report complete."));
|
|
544
|
+
if (shouldSkipTarget())
|
|
545
|
+
return;
|
|
546
|
+
console.log(chalk.bgCyan("[*] Detecting bundler via CS-MAST-S for refactor..."));
|
|
547
|
+
const detectedBundlerTechNext = yield detectBundler(mappedJsonFile, detectedTech, Number((_d = cmd.csMastTechDetectThreshold) !== null && _d !== void 0 ? _d : 50));
|
|
548
|
+
if (detectedBundlerTechNext) {
|
|
549
|
+
const refactorOutputDirNext = isBatch ? `${workingDir}/refactored` : "refactored";
|
|
550
|
+
if (fs.existsSync(refactorOutputDirNext))
|
|
551
|
+
fs.rmSync(refactorOutputDirNext, { recursive: true });
|
|
552
|
+
console.log(chalk.bgCyan(`[*] Running refactor (${detectedBundlerTechNext})...`));
|
|
553
|
+
resetSkipStep();
|
|
554
|
+
yield Promise.race([
|
|
555
|
+
refactor(mappedJsonFile, refactorOutputDirNext, detectedBundlerTechNext, false),
|
|
556
|
+
getSkipStepPromise(),
|
|
557
|
+
]);
|
|
558
|
+
if (shouldSkipTarget())
|
|
559
|
+
return;
|
|
560
|
+
console.log(chalk.bgGreen("[+] Refactor complete."));
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
console.log(chalk.yellow("[!] Bundler not detected via CS-MAST-S, skipping refactor."));
|
|
564
|
+
}
|
|
373
565
|
console.log(chalk.bgGreenBright(`[+] Analysis complete for ${url}.`));
|
|
374
566
|
});
|
|
375
567
|
/**
|
|
@@ -383,7 +575,7 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
|
|
|
383
575
|
* @returns Promise that resolves when all URL processing is complete
|
|
384
576
|
*/
|
|
385
577
|
export default (cmd) => __awaiter(void 0, void 0, void 0, function* () {
|
|
386
|
-
var _a;
|
|
578
|
+
var _a, _b, _c, _d, _e;
|
|
387
579
|
globalsUtil.setApiGatewayConfigFile(cmd.apiGatewayConfig);
|
|
388
580
|
globalsUtil.setUseApiGateway(cmd.apiGateway);
|
|
389
581
|
globalsUtil.setDisableCache(cmd.disableCache);
|
|
@@ -409,7 +601,7 @@ export default (cmd) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
409
601
|
console.error(chalk.red(`[!] Invalid URL: ${cmd.url}`));
|
|
410
602
|
process.exit(12);
|
|
411
603
|
}
|
|
412
|
-
yield processUrl(cmd.url, cmd.output, ".", cmd, false);
|
|
604
|
+
yield processUrl(cmd.url, cmd.output, ".", cmd, false, (_a = cmd._includeMethods) !== null && _a !== void 0 ? _a : [], (_b = cmd._excludeMethods) !== null && _b !== void 0 ? _b : []);
|
|
413
605
|
}
|
|
414
606
|
else {
|
|
415
607
|
// since this is a file, we need to first load the URLs in the memory remove empty strings
|
|
@@ -427,7 +619,7 @@ export default (cmd) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
427
619
|
try {
|
|
428
620
|
urlObj = new URL(url);
|
|
429
621
|
}
|
|
430
|
-
catch (
|
|
622
|
+
catch (_f) {
|
|
431
623
|
console.error(chalk.bgRed(`[!] Invalid URL: ${url}`));
|
|
432
624
|
continue;
|
|
433
625
|
}
|
|
@@ -439,13 +631,13 @@ export default (cmd) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
439
631
|
continue;
|
|
440
632
|
}
|
|
441
633
|
fs.mkdirSync(thisTargetDir, { recursive: true });
|
|
442
|
-
yield processUrl(url, thisTargetDir, thisTargetDir, cmd, true);
|
|
634
|
+
yield processUrl(url, thisTargetDir, thisTargetDir, cmd, true, (_c = cmd._includeMethods) !== null && _c !== void 0 ? _c : [], (_d = cmd._excludeMethods) !== null && _d !== void 0 ? _d : []);
|
|
443
635
|
}
|
|
444
636
|
}
|
|
445
637
|
}
|
|
446
638
|
finally {
|
|
447
639
|
removeSigintHandler();
|
|
448
|
-
process.exit((
|
|
640
|
+
process.exit((_e = process.exitCode) !== null && _e !== void 0 ? _e : 0);
|
|
449
641
|
}
|
|
450
642
|
});
|
|
451
643
|
//# sourceMappingURL=index.js.map
|
package/build/run/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import chalk from "chalk";
|
|
11
|
+
import fs, { readdirSync, readFileSync, writeFileSync, mkdirSync } from "fs";
|
|
12
|
+
import { join, dirname } from "path";
|
|
13
|
+
import { extractSources } from "../lazyLoad/sourcemap.js";
|
|
14
|
+
export const getMapFilesRecursively = (dir) => {
|
|
15
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
16
|
+
const mapFiles = [];
|
|
17
|
+
for (const entry of entries) {
|
|
18
|
+
const fullPath = join(dir, entry.name);
|
|
19
|
+
if (entry.isDirectory()) {
|
|
20
|
+
mapFiles.push(...getMapFilesRecursively(fullPath));
|
|
21
|
+
}
|
|
22
|
+
else if (entry.isFile() && entry.name.endsWith(".map")) {
|
|
23
|
+
mapFiles.push(fullPath);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return mapFiles;
|
|
27
|
+
};
|
|
28
|
+
export const extractSourceMaps = (assetsDir, outputDir) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
const mapFiles = getMapFilesRecursively(assetsDir);
|
|
30
|
+
let counter = 0;
|
|
31
|
+
for (const mapFile of mapFiles) {
|
|
32
|
+
const raw = readFileSync(mapFile, "utf-8");
|
|
33
|
+
// Older runs prepended a `// File Source: ...` banner to .js.map files;
|
|
34
|
+
// current runs write pure JSON. Strip the leading banner if present.
|
|
35
|
+
const mapContent = raw.startsWith("//") ? raw.split("\n").slice(1).join("\n") : raw;
|
|
36
|
+
const { files } = extractSources(mapContent);
|
|
37
|
+
for (const file of files) {
|
|
38
|
+
if (file.path === "." || file.path === "")
|
|
39
|
+
continue;
|
|
40
|
+
const outPath = join(outputDir, file.path);
|
|
41
|
+
mkdirSync(dirname(outPath), { recursive: true });
|
|
42
|
+
writeFileSync(outPath, file.content);
|
|
43
|
+
counter++;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (counter !== 0) {
|
|
47
|
+
console.log(chalk.green(`[✓] Found ${counter} files from source maps - written to ${outputDir}`));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.log(chalk.yellow("[!] No source files found in the provided sourcemap(s)"));
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
const sourcemaps = (inputPath, outputDir) => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
+
if (!fs.existsSync(inputPath)) {
|
|
55
|
+
console.error(chalk.red(`[!] Input does not exist: ${inputPath}`));
|
|
56
|
+
process.exit(23);
|
|
57
|
+
}
|
|
58
|
+
if (fs.existsSync(outputDir)) {
|
|
59
|
+
console.error(chalk.red(`[!] Output directory already exists: ${outputDir}`));
|
|
60
|
+
process.exit(24);
|
|
61
|
+
}
|
|
62
|
+
const stat = fs.statSync(inputPath);
|
|
63
|
+
if (stat.isDirectory()) {
|
|
64
|
+
yield extractSourceMaps(inputPath, outputDir);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Single file
|
|
68
|
+
const raw = readFileSync(inputPath, "utf-8");
|
|
69
|
+
const mapContent = raw.startsWith("//") ? raw.split("\n").slice(1).join("\n") : raw;
|
|
70
|
+
const { files } = extractSources(mapContent);
|
|
71
|
+
let counter = 0;
|
|
72
|
+
for (const file of files) {
|
|
73
|
+
if (file.path === "." || file.path === "")
|
|
74
|
+
continue;
|
|
75
|
+
const outPath = join(outputDir, file.path);
|
|
76
|
+
mkdirSync(dirname(outPath), { recursive: true });
|
|
77
|
+
writeFileSync(outPath, file.content);
|
|
78
|
+
counter++;
|
|
79
|
+
}
|
|
80
|
+
if (counter !== 0) {
|
|
81
|
+
console.log(chalk.green(`[✓] Found ${counter} files from source map - written to ${outputDir}`));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.log(chalk.yellow("[!] No source files found in the provided sourcemap"));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
export default sourcemaps;
|
|
89
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sourcemaps/index.ts"],"names":[],"mappings":"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"}
|
package/build/strings/index.js
CHANGED
|
@@ -15,6 +15,7 @@ import prettier from "prettier";
|
|
|
15
15
|
import secrets from "./secrets.js";
|
|
16
16
|
import permutate from "./permutate.js";
|
|
17
17
|
import openapi from "./openapi.js";
|
|
18
|
+
import { runTrufflehog } from "./trufflehog.js";
|
|
18
19
|
/**
|
|
19
20
|
* Recursively extracts all string literals from a given AST node.
|
|
20
21
|
* @param {object} node - The AST node to extract strings from
|
|
@@ -68,7 +69,7 @@ export const extractStrings = (node) => {
|
|
|
68
69
|
* @param {string} directory - The directory to scan for .js files
|
|
69
70
|
* @param {string} output_file - The file to write the extracted strings to
|
|
70
71
|
*/
|
|
71
|
-
const strings = (
|
|
72
|
+
const strings = (directory_1, output_file_1, extract_urls_1, extracted_url_path_1, scan_secrets_1, permutate_option_1, openapi_option_1, ...args_1) => __awaiter(void 0, [directory_1, output_file_1, extract_urls_1, extracted_url_path_1, scan_secrets_1, permutate_option_1, openapi_option_1, ...args_1], void 0, function* (directory, output_file, extract_urls, extracted_url_path, scan_secrets, permutate_option, openapi_option, trufflehog = false) {
|
|
72
73
|
console.log(chalk.cyan("[i] Loading 'Strings' module"));
|
|
73
74
|
// check if the directory exists
|
|
74
75
|
if (!fs.existsSync(directory)) {
|
|
@@ -82,7 +83,7 @@ const strings = (directory, output_file, extract_urls, extracted_url_path, scan_
|
|
|
82
83
|
encoding: "utf8",
|
|
83
84
|
});
|
|
84
85
|
// filter out non JS files
|
|
85
|
-
let jsFiles = files.filter((file) => file.endsWith(".js"));
|
|
86
|
+
let jsFiles = files.filter((file) => file.endsWith(".js") || file.endsWith(".mjs"));
|
|
86
87
|
// filter out subsequent requests files
|
|
87
88
|
// jsFiles = jsFiles.filter((file) => !file.startsWith("___subsequent_requests"));
|
|
88
89
|
// read all JS files
|
|
@@ -234,6 +235,9 @@ const strings = (directory, output_file, extract_urls, extracted_url_path, scan_
|
|
|
234
235
|
console.log(chalk.green(`[✓] Found ${total_secrets} secrets`));
|
|
235
236
|
}
|
|
236
237
|
}
|
|
238
|
+
if (trufflehog) {
|
|
239
|
+
yield runTrufflehog(directory);
|
|
240
|
+
}
|
|
237
241
|
});
|
|
238
242
|
export default strings;
|
|
239
243
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strings/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,OAAO,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strings/index.ts"],"names":[],"mappings":"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"}
|