Commit Graph

47 Commits

Author SHA1 Message Date
Celeste Hickenlooper
79b60a5259 refactor: extract cve database to separate file
move CVEEntry struct and knownCVEs map to cve.go for better
organization. this reduces detect.go by another 170 lines and makes
the CVE database easier to maintain and extend.
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
a922b77b1e perf: precompile framework version regex patterns
move version extraction patterns to version.go and compile them at init
time instead of recompiling on every check. this significantly improves
framework detection performance.

- add version.go with pre-compiled regex patterns for all frameworks
- update detect.go to use extractVersionOptimized
- remove duplicate extractVersionWithConfidence and isValidVersion functions
- add io.LimitReader to prevent memory exhaustion on large responses
- update tests to use the optimized version extraction
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
06d896b2a5 fix: response body leaks in cms.go and sql.go
close response bodies immediately after reading instead of deferring
inside loops, which delays closure until function exit
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
953b912a3b fix: response body leak in scan.go robots processing
move resp.body.close() inside the loop after use instead of deferring,
which would only run when the outer function exits
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
29f817d935 perf: optimize deduplication with map-based o(1) lookups in lfi and sql
replace o(n) slice iteration with map lookups for checking duplicates,
preallocate result slices, reduce lock hold time by separating map check
from result append
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
534d2605fd fix: data races and slice preallocation in dirlist and dnslist
add mutex protection for concurrent slice appends, preallocate result
slices with reasonable capacity, use logger instead of direct file i/o
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
6d505b90a3 fix: error patterns and string building in sif.go and js/scan.go
replace errors.new(fmt.sprintf()) with fmt.errorf, use strings.builder
instead of string concatenation in loop, fix defer in loop issue,
preallocate slices where size is estimable
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
18ab70fc35 test: add logger tests for buffered write functionality
covers initialization, write, flush, close, concurrent writes, and
file creation with proper cleanup verification
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
6f9a5ce9e8 refactor: logger to use buffered file handles
replace per-write file open/close with cached file handles and buffered
writers for significantly reduced i/o overhead. adds flush and close
methods for proper cleanup at program exit.
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
d7cf882a8d chore: remove unused utils package
the returnApiOutput function was never used and contained only
hardcoded test data
2026-01-03 05:57:09 -08:00
Celeste Hickenlooper
78a385d4f4 fix: improve version detection and add documentation
- fix version detection to validate reasonable version numbers (major < 100)
- remove overly permissive patterns that caused false positives
- add comprehensive framework contribution documentation to CONTRIBUTING.md
- document signature patterns, version detection, and CVE data format
- add configuration documentation for flags and env vars
- outline future enhancements for community contributions
2026-01-02 19:04:37 -08:00
Celeste Hickenlooper
8a0945619b feat: expand framework detection with cvs, version confidence, concurrency
- add 20+ new framework signatures (vue, angular, react, svelte, sveltekit,
  remix, gatsby, joomla, magento, shopify, ghost, ember, backbone, meteor,
  strapi, adonisjs, cakephp, codeigniter, asp.net core, spring boot)
- add version confidence scoring with multiple detection sources
- add concurrent framework scanning for better performance
- expand cve database with 15+ known vulnerabilities (spring4shell, etc.)
- add risk level assessment based on cve severity
- add comprehensive security recommendations
- add new tests for all features
2026-01-02 18:52:15 -08:00
Celeste Hickenlooper
eb77282873 chore: add license header to detect.go 2026-01-02 18:52:15 -08:00
Celeste Hickenlooper
11589e90fe feat: improve framework detection with more signatures and tests
- use math.Exp instead of custom exp implementation
- add more framework signatures: next.js, nuxt.js, wordpress, drupal,
  symfony, fastapi, gin, phoenix
- fix header detection to check both header names and values
- simplify version detection (remove unnecessary padding)
- add comprehensive test suite for framework detection
- fix formatting in dork.go
2026-01-02 18:52:15 -08:00
vmfunc
6552aa8887 feat(framework-detection): weighted bayesian detection algorithm
- weighted signature matching for more accurate framework detection
- sigmoid normalization for confidence scores
- version detection with semantic versioning support
- header-only pattern
2026-01-02 18:52:15 -08:00
vmfunc
1eac29757c feat: framework detection module 2026-01-02 18:52:15 -08:00
Celeste Hickenlooper
612df34a5f feat: add lfi reconnaissance module (#49)
adds a new --lfi flag for local file inclusion vulnerability scanning:
- tests common lfi parameters with directory traversal payloads
- detects /etc/passwd, /etc/shadow, windows system files
- identifies php wrappers and encoded content
- supports various bypass techniques (null bytes, encoding)

closes #4
2026-01-02 18:41:30 -08:00
Celeste Hickenlooper
3ba18a956a feat: add sql reconnaissance module (#48)
adds a new --sql flag that performs sql reconnaissance on target urls:
- detects common database admin panels (phpmyadmin, adminer, pgadmin, etc.)
- identifies database error disclosure (mysql, postgresql, mssql, oracle, sqlite)
- scans common paths for sql injection indicators

closes #3
2026-01-02 18:40:06 -08:00
Celeste Hickenlooper
44842dd659 fix: remove duplicate subdomain takeover call and add config tests (#46)
- remove duplicate SubdomainTakeover call that ran twice when both
  dns scan and --st flag were enabled
- add comprehensive tests for config settings defaults and behavior
- fix formatting in dork.go

closes #1
2026-01-02 18:38:47 -08:00
Celeste Hickenlooper
ac879e069c feat: add shodan integration for host reconnaissance
adds a new --shodan flag that queries the shodan api for information
about the target host. requires SHODAN_API_KEY environment variable.

features:
- resolves hostnames to ip addresses
- queries shodan host api for reconnaissance data
- displays organization, isp, location, ports, services, and vulns
- logs results to file when logdir is specified

closes #2
2026-01-02 18:24:37 -08:00
Celeste Hickenlooper
816ecd1e46 fix: update dependencies to address security vulnerabilities
- golang.org/x/crypto v0.26.0 -> v0.46.0 (critical: ssh auth bypass)
- golang.org/x/net v0.28.0 -> v0.48.0 (medium: xss vulnerability)
- golang.org/x/oauth2 v0.11.0 -> v0.34.0 (high: input validation)
- quic-go v0.48.2 -> v0.58.0 (high: panic on undecryptable packets)
- golang-jwt/jwt v4.5.1 -> v4.5.2 (high: memory allocation)
- cloudflare/circl v1.3.7 -> v1.6.2 (low: validation issues)
- refraction-networking/utls v1.5.4 -> v1.8.1 (medium: tls downgrade)
- ulikunitz/xz v0.5.11 -> v0.5.15 (medium: memory leak)
- klauspost/compress v1.16.7 -> v1.17.4

also fixes go vet warnings for non-constant format strings
2026-01-02 18:03:27 -08:00
Celeste Hickenlooper
df6ca7924b license: switch to bsd 3-clause, update headers and readme
- replace proprietary license with bsd 3-clause
- update all go file headers with new retro terminal style
- add header-check github action to enforce license headers
- completely rewrite readme to be modern, sleek, and lowercase
- fix broken badges
2026-01-02 17:41:18 -08:00
Celeste Hickenlooper
421965e993 test: add basic unit tests for scan package
adds tests for subdomain takeover detection, robots.txt fetching,
and result struct validation using httptest mock servers.
2026-01-02 17:27:50 -08:00
Celeste Hickenlooper
a26888bd3c fix: handle errors instead of ignoring them
- dork.go: log and skip on googlesearch.Search error
- nuclei.go: return error on os.Getwd and reporting.New failures
- subdomaintakeover.go: return early on io.ReadAll error
2026-01-02 17:21:21 -08:00
vmfunc
057b997960 fix<dork>: properly process feature flag 2024-10-22 09:15:36 +02:00
vmfunc
aff6fea45d chore<format>: gofmt whitespace removal 2024-10-15 02:32:48 +02:00
vmfunc
ac5e618695 chore<comments>: bunch of AI-generated comments to make the codebase easier to understand 2024-10-12 23:06:22 +02:00
vmfunc
2340e7a23f feat<st>: subdomain takeover checks 2024-10-12 22:52:27 +02:00
vmfunc
0f8e0fea13 feat<c3>: AWS c3 detection 2024-10-12 22:28:31 +02:00
vmfunc
0226bff095 feat<headers>: http header analysis 2024-10-12 22:15:56 +02:00
vmfunc
0e83a0778d feat<cms>: CMS detection 2024-10-12 22:10:06 +02:00
mel
bd69d337f3 fix<whois>: typos in logfile creation 2024-07-29 04:26:39 +00:00
vmfunc
d2281c3c4a feat: add Template support to config 2024-07-10 05:01:35 -04:00
xyzeva
235c8cc1a4 feat: implement api mode 2024-06-22 12:09:50 +03:00
xyzeva
e7425f1a40 feat: implement basic js scanning 2024-06-22 11:01:03 +03:00
macdoos
80062533c9 Proper logging 2024-06-15 23:31:34 +02:00
macdoos
dd1af9744f Add function to scan.go 2024-06-15 22:22:03 +02:00
vmfunc
db25276bf9 dirlist: handle 403 2024-04-15 02:43:03 +02:00
syscats
d54dcb2a21 feat: WHOIS support 2024-02-04 15:09:50 +01:00
syscats
50dd77248c fix: fix case for module function declaration <api> 2024-02-04 14:27:46 +01:00
syscats
a40c54f382 chore: create base api output function 2024-02-04 14:18:16 +01:00
syscats
16baaa253c feat: handle API flag 2024-02-04 14:08:39 +01:00
Sol Fisher Romanoff
d87d923692 fix: make log files a pointer 2023-09-14 20:48:59 +03:00
Sol Fisher Romanoff
264d37e8eb lint: go fmt -s 2023-09-14 20:48:59 +03:00
Sol Fisher Romanoff
8ab889182e Move import repositories to dropalldatabases 2023-09-14 20:48:45 +03:00
Sol Fisher Romanoff
28d0c10a23 Use nuclei API to scan nuclei templates 2023-09-14 20:48:28 +03:00
Sol Fisher Romanoff
979be3c5c6 Refactor 2023-09-14 20:46:47 +03:00