Skip to content

Commit ff0edca

Browse files
h0tak88rclaude
andcommitted
fix: deduplicate JS findings and fix S3 scan phase path
- Add js-secrets.txt to rawToJSON and shouldSkipArtifact so raw TXT findings are skipped when the structured JSON equivalent exists - Fix domain workflow S3 scan phase reading buckets from wrong path (was checking domainDir/s3/, scanner writes to resultsDir/s3/domain/) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 505596b commit ff0edca

3 files changed

Lines changed: 4 additions & 1 deletion

File tree

internal/api/api.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1823,6 +1823,7 @@ func shouldSkipArtifact(path string) bool {
18231823
"kxss-results.txt",
18241824
"exposure-findings.txt",
18251825
"wp-confusion-results.txt",
1826+
"js-secrets.txt",
18261827
"nuclei-summary.txt",
18271828
"all-subs.txt",
18281829
"live-subs.txt",

internal/api/scan_results_api.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1839,6 +1839,8 @@ func apiScanParsedResults(c *gin.Context) {
18391839
"ffuf-webhook-messages.txt": "ffuf-results.json",
18401840
"kxss-results.txt": "xss-reflection-vulnerabilities.json",
18411841
"exposure-findings.txt": "exposure-vulnerabilities.json",
1842+
// js-secrets.txt is superseded by js-secrets-vulnerabilities.json
1843+
"js-secrets.txt": "js-secrets-vulnerabilities.json",
18421844
"wp-confusion-results.txt": "wp-confusion-vulnerabilities.json",
18431845
// URL corpus files — never findings; these are pipeline inputs (lists of URLs/JS files to feed into later scanners)
18441846
"js-urls.json": "__pipeline_input__",

internal/scanner/domain/domain.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ func RunDomain(opts ScanOptions) (*Result, error) {
158158
return err
159159
}
160160
// After enumeration, scan each found bucket for permissions/public access.
161-
bucketsFile := filepath.Join(domainDir, "s3", "buckets.txt")
161+
bucketsFile := filepath.Join(resultsDir, "s3", domain, "buckets.txt")
162162
if info, err := os.Stat(bucketsFile); err == nil && info.Size() > 0 {
163163
data, _ := os.ReadFile(bucketsFile)
164164
for _, bn := range strings.Split(strings.TrimSpace(string(data)), "\n") {

0 commit comments

Comments
 (0)