100 Commits
Author SHA1 Message Date
M09IcandClaude Opus 4.6 05f6082324 build: pin go-re2 fork to latest with static CGO docs
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-16 08:31:21 -07:00
M09IcandClaude Opus 4.6 3410e30d7f ci: use re2_cgo (dynamic) on Windows CI, re2_static on Linux
Windows CI uses pacboy re2:p with re2_cgo (dynamic libre2) for
testing. Linux CI keeps re2_cgo + re2_static (bundled static archive).

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-16 08:23:57 -07:00
M09IcandClaude Opus 4.6 7d422b5763 ci: add git to msys2 packages for Windows CI
go mod download needs git in PATH; MSYS2 shell doesn't inherit
the Windows system git.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-16 07:50:20 -07:00
M09IcandClaude Opus 4.6 5f3062e5dd build: switch to go-re2 fork with bundled static RE2
Replace upstream wasilibs/go-re2 with chainreactors/go-re2 fork that
bundles pre-built libre2_cre2.a static archives. Build tag re2_cgo +
re2_static selects the bundled archive and statically links libstdc++
and libgcc, producing binaries with zero C++ runtime dependencies.

Removes libre2-dev/g++ install steps from CI — no longer needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-16 07:41:11 -07:00
M09IcandClaude Opus 4.6 61b18d1503 build: add re2_cgo to CI for native libre2 performance
Linux CI installs libre2-dev and uses -tags re2_cgo. Windows CI
uses msys2/setup-msys2 with pacboy re2 for CGO mode.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-16 06:24:40 -07:00
M09IcandClaude Opus 4.6 7ce7b850d4 chore: remove all local replaces, update deps
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-04 12:46:11 -07:00
M09IcandClaude Opus 4.6 c78ae4afef fix: migrate RandomUA to httputils.GetRandomUA
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-04 12:44:37 -07:00
M09IcandClaude Opus 4.6 adf82d2759 fix: migrate Scanner.ScanData to Scanner.FindAll
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-04 08:18:52 -07:00
M09IcandClaude Opus 4.6 3bbfb5d198 fix: update fingers dep
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-03 05:52:43 -07:00
M09IcandClaude Opus 4.6 62da3950e8 chore: update deps, remove local replace
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-07-03 05:51:45 -07:00
M09IcandClaude Opus 4.6 b618acf15b fix: migrate runner_test import to utils/parsers
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-28 22:56:10 -07:00
M09IcandClaude Opus 4.6 af0c2493e1 fix: prevent fuzzy-failed results from leaking to stdout and output file
- Set bl.IsValid=false before putToFuzzy snapshot in BaseCompare, so
  the snapshot no longer passes the IsValid check in Output()
- Gate file output on the same condition as console output:
  bl.IsValid || (r.Fuzzy && bl.IsFuzzy)
- Bump deps: utils, utils/parsers, fingers (types migrated to parsers)
- Remove local replace directives

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-28 21:36:55 -07:00
M09IcandClaude Opus 4.6 4e84549e5c refactor: rename proton_rules to spray_proton, move to spray/proton/
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-28 21:36:21 -07:00
M09Ic 6100475b68 feat: add baseline scan dedup 2026-06-28 21:36:21 -07:00
M09Ic e885f67c78 feat: add client fingerprint support 2026-06-28 21:36:20 -07:00
M09IcandClaude Opus 4.6 e4d174f1c0 deps: bump logs to pick up concurrent writer fix
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-23 20:44:33 -07:00
M09Ic 19694fd567 chore: add issue bug report template 2026-06-24 11:16:02 +08:00
M09Ic cff514d182 fix: avoid rebasing resolved crawl paths 2026-06-24 02:17:22 +08:00
M09Ic 705908b286 fix: keep release dist artifacts untracked 2026-06-23 23:29:56 +08:00
M09Ic b6c969deed fix: make race ci deterministic 2026-06-23 23:01:29 +08:00
M09Ic 2b8ab24a20 ci: clean dist before release 2026-06-23 22:43:45 +08:00
M09Ic 58d4343998 fix: restore ci release builds 2026-06-23 22:39:23 +08:00
M09IcandClaude Opus 4.6 da2bc71a13 feat: support mask expressions in all request fields (header/host/cookie/path/body)
Allow {?...} / {$...} mask patterns to be embedded directly in -u, -H,
--host, --cookie, --path fields. The mask is auto-extracted as the word
source and replaced with {{FUZZ}} placeholder, which gets substituted
with each generated word at request build time.

Also supports explicit -w with {{FUZZ}} placeholders in any field.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-23 07:08:41 -07:00
M09IcandClaude Opus 4.6 6f8cdcc11f fix: track Handler processing in wg to prevent premature drain in crawl-only mode
sendProcess now does wg.Add(1) before sending to processCh, and both
BrutePool.Handler and CheckPool.Handler call wg.Done() after processing.
This ensures wg.Wait() in startDrain does not return while the Handler
is still processing baselines that may produce new crawl additions.

Also adds e2e tests for:
- Crawl recursive URL discovery (depth 1 → depth 2)
- Extract (recon/keys) collection on invalid baselines via dump file

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-23 06:57:32 -07:00
M09IcandClaude Opus 4.6 e38d04f976 fix: run extract (keys/recon) on invalid baselines to avoid missing sensitive data
Previously, ProtonExtract only ran inside Collect() which was only called
for valid/fuzzy baselines. Invalid baselines (failed BaseCompare) with
keys, tokens, or other sensitive data in their response body were silently
skipped. Now putToOutput runs extract on invalid baselines that have raw
response data.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-23 05:48:04 -07:00
M09IcandClaude Opus 4.6 dcd27fee8d fix: crawl source baselines bypass BaseCompare to enable recursive crawling
CrawlSource baselines were going through the standard BaseCompare flow,
which compared them against the random baseline and marked most as invalid.
This prevented doCrawl from being called on crawl results, breaking
recursive URL discovery after the initial index page.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-23 05:41:52 -07:00
M09IcandClaude Opus 4.6 112cdbff43 feat: add --keys flag for credential/keys detection with 156 found templates
Embed proton's found/keys templates (156 rules covering AWS, GCP, Azure,
OpenAI, Slack, GitHub, Stripe, etc.) into the spray binary. The new --keys
flag activates them; -a (advance) also enables keys automatically. When
used with --recon, tags are merged into a single EnableExtractors call.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-23 05:24:10 -07:00
M09IcandClaude Opus 4.6 ccf43e607c fix: wait for pool goroutines before closing OutputCh in RunWithCheck
RunWithCheck closed OutputCh immediately after context cancellation
without waiting for the CheckPool goroutine to finish. The Handler
goroutine could still be calling putToOutput on the already-closed
channel, causing "panic: send on closed channel".

Add r.poolwg.Wait() before close(OutputCh), matching RunWithBrute
which already had this synchronization.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-22 04:26:16 -07:00
M09IcandClaude Opus 4.6 f4b8e61376 feat: add ResourceLoader for controllable resource loading
Mirrors gogo's ResourceLoader pattern. SDK spray engine sets it to
no-op after init, preventing RunWithArgs from reloading ports/fingers/templates.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-16 03:17:14 -07:00
M09IcandClaude Opus 4.6 97452ba163 chore(deps): update chainreactors dependencies to latest
Fix proton import path change: protocols/file -> proton/file
Remove local replace directive for parsers

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-08 01:56:29 -07:00
M09IcandClaude Opus 4.6 729dee3d06 feat: enhance extract system with severity, context capture, matchers, and new rules
- parsers.Extracted: add Severity and Items (ExtractItem with ctx/line/offset)
- ProtonExtract: preserve severity from templates, capture N-char context around matches
- Add --extract-context CLI flag (default 0, e.g. --extract-context 50)
- Add word matchers pre-filtering to 14 existing templates for performance
- Add 9 new HaE-inspired rules: lfi-indicator, upload-form, url-as-value,
  location-redirect, mac-address, sensitive-field, linkfinder, url-schemes,
  authorization-header
- Total proton templates: 45 (was 35)
- Update ColorString/TreeString to render severity and context
- Comprehensive tests for severity, context, new templates, tag mappings

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-06-01 01:44:48 -07:00
M09IcandClaude Opus 4.8 5d3ddeae56 ci(dependabot): enable automated dependency updates
gomod (grouped golang.org/x/* and chainreactors/*) plus github-actions where present. No ignore on chainreactors/* so inter-repo deps are auto-updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-29 10:23:59 -07:00
M09IcandClaude Opus 4.8 bd046d7c7f deps: use proxyclient v1.1.0 directly, drop replace
The replace pinned a pre-v1.0.3 pseudo-version up to the v1.0.3 release.
proxyclient v1.1.0 is now published, so require it directly and remove
the replace. Core schemes (SOCKS/SOCKS5/HTTP/HTTPS) cover spray's proxy
use; the extra protocols (trojan/vmess/ssh/...) are split into separate
modules in v1.1.0 but spray doesn't use them. go build ./... passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-29 09:03:03 -07:00
M09IcandClaude Opus 4.6 d1b63ad67b fix: regenerate templates and fix logs API for updated submodule
go generate with the updated templates submodule (7d5675c) produces
different embedded data and code. Key changes:
- cmd/cmd.go: logs.Info/Important → logs.InfoLevel/ImportantLevel
- pkg/templates.go: remove proton_rules.bin/neutron.bin embeds (no longer needed)
- core/baseline: use ProtonExtract instead of Extractors.Extract
- core/format: list proton extractor names
- Update embedded binary data files

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-26 07:25:07 -07:00
M09IcandClaude Opus 4.6 f4b8adf642 ci: upgrade Go version to 1.25 for goreleaser workflow
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-26 07:16:23 -07:00
M09IcandClaude Opus 4.6 f284cdbc20 chore: update templates submodule to latest upstream master
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-26 07:14:22 -07:00
M09Ic d7b322ed8c fix: preserve pool outputs during close 2026-05-23 16:39:07 +08:00
M09Ic cb09e8eebf fix: add proton template loader 2026-05-23 15:59:35 +08:00
M09IcandClaude Opus 4.6 48ca310bdd fix: add missing embedded resource proton_rules.bin
The file was referenced by //go:embed but never committed,
causing build failures when consumed as a remote Go module.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-22 23:58:05 +08:00
M09IcandClaude Opus 4.6 ba7cc844f7 chore: update fingers/proton/utils deps, remove local proton replace
Fingers now defaults to RE2 regex engine with AC pre-filtering.
No build tag changes needed — RE2 is the new default.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-19 20:24:31 -07:00
M09IcandClaude Opus 4.6 a319b9b9e2 fix: drain additionCh in Close() to prevent wg.Wait hang after ctx cancel
When ctx is cancelled (e.g. IsFailed threshold), the Run loop breaks
and stops reading additionCh. But doCheck (now via addAddition) may
have queued items with wg.Add(1) that no one consumes. Close().wg.Wait()
hangs forever.

Fix: spawn a drain goroutine in Close() before wg.Wait() that consumes
and Done()s remaining additionCh items, then close the channel after
Wait returns.

Verified: 16 IPs x 2 ports x 1000 words completes with EXIT 0.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-19 20:21:25 -07:00
M09IcandClaude Opus 4.6 c8b71dc47b feat: add --poc plugin for neutron-based vulnerability verification after fingerprint detection
Supports check mode (exploit verification via finger field) and brute mode
(default credential testing via zombie/tags field). POC templates are only
executed against targets whose fingerprints match, avoiding blind scanning.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-19 20:17:05 -07:00
M09IcandClaude Opus 4.6 c179e1484f fix: resolve Handler-reqPool deadlock in doCheck and add CIDR E2E tests
Root cause: doCheck() called reqPool.Invoke() from the Handler goroutine.
When all reqPool workers blocked on sendProcess waiting for Handler to
drain processCh, and Handler blocked on Invoke waiting for a free worker,
a circular wait formed.

Fix: doCheck now uses addAddition() to submit check requests via
additionCh consumed by the Run loop, breaking the circular dependency.

Before: 16 targets x 500 words = HANG (>130s)
After:  16 targets x 500 words = 1.8s

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-19 20:05:31 -07:00
M09IcandClaude Opus 4.6 c73a77408f fix: eliminate monitor goroutine race and simplify concurrency
Root cause: the atomic.Bool + polling monitor goroutine pattern had a
race between wg.Wait() in the monitor and wg.Add(1) in the main loop.
When the monitor observed done=true and started Wait, the main loop
could still dispatch new work, causing Close().wg.Wait() to hang.

Fix: replace with nil-channel + sync.Once pattern. When the word stream
exhausts or limit is hit, worderCh is set to nil (disabling that select
branch permanently), then a single goroutine waits for wg to reach zero.
Since wg.Add(1) only occurs in the worderCh branch, nil-ing it before
Wait guarantees no new Add after Wait starts — no race possible.

Other fixes:
- Task feeder goroutine now ctx-aware (prevents leak on cancel)
- AddPool checks Invoke error (prevents poolwg counter mismatch)
- Revert resource_provider IIFE (reading a struct field cannot panic)
- Remove E2E -short skip (race is fixed, full coverage in CI)
- Fix Go 1.24+ vet: non-constant format strings in Init()

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-19 12:22:58 -07:00
M09IcandClaude Opus 4.6 11c90dc313 fix: resolve deadlock/panic risks and add comprehensive test coverage
Bug fixes:
- Defer scopeLocker.Unlock in doScopeCrawl (deadlock on panic)
- Defer statsMu.Unlock in recordStat (deadlock on panic)
- Defer RUnlock in resource_provider.LoadConfig via inline func
- Fix data race in invoke(): move bl field writes before doRedirect
- Close response body on ReadAll error (connection leak)
- Add defer raw.Close() for raw file parsing (fd leak)
- Safe type assertion in load.go keyword parsing (panic on bad YAML)
- Check ants pool creation errors in NewBrutePool/NewCheckPool

New tests (15 test functions):
- pool_test.go: scopeLocker panic recovery, cancel mid-processing,
  single-threaded map access, valid pool creation
- runner_test.go: concurrent recordStat safety, nil stat handling
- load_test.go: malformed YAML tolerance, valid YAML loading
- e2e_test.go: normal brute scan, context cancellation, server errors,
  WAF behavior, multi-target check mode, mixed status codes

CI hardening:
- Add -race detector (Linux, -short mode)
- Add -timeout 300s to prevent deadlock hangs

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-19 11:36:42 -07:00
M09IcandClaude Opus 4.6 8d2dbe403d feat: switch templates from base64 to go:embed for smaller source and faster startup
- go:generate now uses -embed flag to produce //go:embed binary data
- templates.go reduced from 125KB base64 source to 0.9KB + 93KB .bin files
- binary saves ~28KB (removes base64 decode overhead at runtime)
- templates submodule updated with embed-aware generator

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-19 10:48:37 -07:00
M09Ic 9c298d04b2 Use core fingers engine by default 2026-05-18 20:07:29 +08:00
M09Ic da17acac92 spray: fix adaptive filtering and stats 2026-05-16 11:32:51 +08:00
M09IcandClaude Opus 4.6 0a6132ca02 chore: normalize line endings (CRLF → LF)
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-08 10:12:56 -07:00
M09IcandClaude Opus 4.6 b4e9b10c84 fix: null pointer guards and idempotency for embedded/SDK usage
- FingerEngine nil 检查防止未初始化时 panic (baseline.go, fingers.go)
- 日志/颜色/指纹引擎/Extractor 注册增加状态检查, 防止 SDK 多次调用时重复设置

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-08 10:12:56 -07:00
M09IcandClaude Opus 4.6 2e32408efe fix: concurrency safety and graceful pool shutdown
- reqCount/failedCount 改为 atomic.Int64, done 改为 atomic.Bool
- rand.Source 加 sync.Mutex 防止并发 panic
- Invoke 失败时正确回退 wg 计数, 避免死锁
- 新增 waitWorkers() 排空残留消息, ctx.Done 正确设置退出标记
- Close() 增加 nil 检查防止 panic

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-08 10:12:55 -07:00
M09IcandClaude Opus 4.6 161ce8b145 feat: add SDK integration hooks (BeforePrepare/AfterPrepare) and Help()
- RunOptions 新增 BeforePrepare/AfterPrepare 生命周期回调, 供 aiscan 控制初始化流程
- 新增 Help() 函数以编程方式获取命令行帮助文本

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-08 10:12:55 -07:00
M09IcandClaude Opus 4.6 08886ebb7d refactor: 强化 BrutePool 隔离性, 统一 Runner channel 生命周期
- BrutePool: 去除 checkCh / closed / locker 等冗余字段, 用 atomic.Bool
  替换 done bool 修复 race, Init 失败路径正确回滚 wg + initwg,
  invoke/invokeNoScope 入口 defer wg.Done 保证配对, Close 顺序改为
  Cancel → wg.Wait → Release → close(processCh) → handlerDone
- Runner: RunWithBrute 结束时关闭 OutputCh/FuzzyCh (与 RunWithCheck
  对称, Runner 自管 channel 生命周期); r.Pools defer Release 修复
  SDK 多次 Execute 时的 ants goroutine 泄露; RunWithCheck 的 stopCh
  改为缓冲 1 修复 ctx 取消时的 goroutine 泄露

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-05-08 10:12:55 -07:00
M09Ic b19a8341e9 feat: add resource provider override 2026-05-08 10:12:55 -07:00
M09Ic d887259fcb fix: load spray fingers from resource provider 2026-05-08 10:12:54 -07:00
M09Ic d2a22e4e01 feat: expose reusable spray runner entrypoint 2026-05-08 10:12:54 -07:00
M09IcandClaude Opus 4.6 5179d7a33c ci: add pool shutdown regression tests and PR CI workflow
Add 19 tests in core/pool/pool_test.go covering:
- addAddition: normal, after cancel, wg balance, full buffer, concurrent
- sendProcess: normal, after cancel, full buffer, concurrent
- putToOutput/putToFuzzy: normal, after cancel, Outwg balance
- Handler lifecycle: processCh close exits handler, drains all items
- Shutdown sequence: no deadlock, cancel mid-flight
- Goroutine leak detection after full shutdown

Add .github/workflows/ci.yml:
- Runs on PR to master and push to master
- Tests on ubuntu-latest and windows-latest
- go build, go test -race, go vet

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-06 23:39:22 +08:00
M09IcandClaude Opus 4.6 7d293f8c72 fix: use ctx as unified shutdown signal to prevent channel close panics
- Replace additionClosed atomic with ctx-based guard in addAddition
- Add handlerDone chan to coordinate Handler goroutine lifecycle
- Add sendProcess method with select+ctx.Done protection
- Protect putToOutput/putToFuzzy/checkCh sends with select+ctx.Done
- Rewrite BrutePool.Close/CheckPool.Close with correct shutdown order:
  Cancel → Release pools → close(processCh) → <-handlerDone
- Fix doCrawl orphan wg.Add(1) with defer wg.Done()
- Fix analyzeDone inverted condition (replaced with handlerDone chan)
- Add ctx.Done check to Run monitor goroutine

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-06 23:39:09 +08:00
M09IcandClaude Opus 4.6 263958e760 fix: prevent send-on-closed-channel panic and baseline invalid on raw parse failure
- Replace close(additionCh) with additionClosed atomic.Bool flag to
  prevent panic when async producers (redirect/crawl/retry/append)
  write after pool shutdown
- Guard addAddition() with ctx.Err() and additionClosed check before send
- ParseRawResponse failure no longer marks baseline as invalid or
  returns early; log at debug level instead
- Read Location header from live response (resp.GetHeader) instead of
  re-parsed bl.Response.Header for reliability
- Add ParseRawResponse boundary tests (nil, empty, truncated, binary, etc.)

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-06 23:08:19 +08:00
M09Ic b11b5535db chore: support finger send_data 2026-02-12 15:20:08 +08:00
M09Ic d733b4fb93 chore: check mod redirect 2026-01-29 01:27:29 +08:00
M09Ic 9a0858fd3c chore: fix new statistor 2026-01-29 00:34:04 +08:00
M09Ic 5661a4acad chore: bump fingers and neutron 2026-01-21 10:59:11 +08:00
M09Ic 9a4c1af362 fix: request safe path join 2026-01-19 18:02:39 +08:00
M09Ic a3d7d1eccb fix: pool wg negative count 2026-01-19 18:02:18 +08:00
M09Ic 6618e025c3 fix: content type parse 2026-01-19 17:32:04 +08:00
M09Ic 709a701cf7 fix: addAddition deadlock 2025-12-10 11:27:04 +08:00
M09Ic a93d0397e6 chore: fix host brute not work 2025-12-09 11:30:16 +08:00
M09Ic 4e789b8f2e chore: update templates.go 2025-12-06 01:08:59 +08:00
M09Ic b364729bfc feat: check support host flag
- add function options validate
2025-12-05 18:31:29 +08:00
M09Ic 8030998b5e feat: support -o tree format 2025-12-05 14:25:35 +08:00
M09Ic f248e740ec chore: remove debug 2025-12-05 01:36:05 +08:00
M09Ic b388b2fda4 feat: add spray sdk 2025-12-05 01:33:57 +08:00
M09Ic 69e1d30143 chore: improve init config table 2025-12-05 01:10:37 +08:00
M09Ic d201ced3a9 feat: support --finger-file dynamic load fingers from file/url 2025-12-05 00:58:33 +08:00
M09Ic 5b0c90f967 feat: add --host flag, https://github.com/chainreactors/spray/issues/120.
fix: body not work, https://github.com/chainreactors/spray/issues/113
2025-12-05 00:58:33 +08:00
M09Ic 050d32214f fix: frameworks panic , https://github.com/chainreactors/spray/issues/117 2025-12-05 00:58:33 +08:00
M09Ic db9c0f0e4b fix: raw query panic. https://github.com/chainreactors/spray/issues/125 2025-12-05 00:58:33 +08:00
M09Ic 9175a0cc54 fix: check mod stat not work 2025-12-05 00:58:33 +08:00
M09Ic ba3265b0f2 fix: checkpool deadlock 2025-12-05 00:58:33 +08:00
M09Ic 096276fdb5 fix: cicd releaser 2025-06-05 13:59:13 +08:00
M09Ic 0b379cfc36 feat: support unique when format result, https://github.com/chainreactors/spray/issues/104 2025-06-05 13:52:30 +08:00
M09Ic e2f8592ba0 feat: 支持通配符状态码, https://github.com/chainreactors/spray/issues/38 2025-06-05 13:45:48 +08:00
M09Ic 4092e86884 feat: recover fuzzuli generate algorithm 2025-06-05 12:55:36 +08:00
M09Ic ac31bb61b5 fix: csv format , https://github.com/chainreactors/spray/issues/97 2025-06-05 12:46:53 +08:00
M09Ic 48141240c4 fix: addition word not safe join path, https://github.com/chainreactors/spray/issues/106 2025-06-05 12:34:06 +08:00
M09Ic 9f50d437ce fix: null word not continue, https://github.com/chainreactors/spray/issues/108 2025-06-05 12:29:17 +08:00
M09Ic 6a6581f41e fix: -e not expect , https://github.com/chainreactors/spray/issues/108 2025-06-05 12:29:02 +08:00
M09Ic 0073e330e0 fix: fix log and option 2025-06-05 11:41:11 +08:00
M09Ic 54755b792d chore: add black,white,unique short flag 2025-05-20 00:23:25 +08:00
M09Ic 11c7293c31 chore: append-rule add short flag -R 2025-05-12 23:03:17 +08:00
M09Ic 886fe13d30 fix: crawl and url not print 2025-04-18 21:20:00 +08:00
M09Ic 36f0bd15b7 fix: check pool net set headers 2025-03-04 14:58:28 +08:00
M09Ic 97b8ba3cdf fix: brute init not set header, https://github.com/chainreactors/spray/issues/94 2025-03-04 14:56:48 +08:00
M09Ic 139491bac3 fix: map panic, https://github.com/chainreactors/spray/issues/93 2025-03-04 14:45:31 +08:00
M09Ic 5d16990654 fix: adapt template yaml 2025-02-23 00:02:20 +08:00
M09Ic 8d1e22142f ci: fix golang version go1.20 2025-02-22 21:05:39 +08:00
M09Ic fa9f681bff ci: fix golang version go1.20 2025-02-22 21:01:00 +08:00
M09Ic 5a9458fb0c feat: support proxyclient for http and fasthttp 2025-02-22 20:58:24 +08:00
M09Ic cb3598b4be refactor: remove internal pkg, use engine replace
fix: chunk mod not read
fix: nil bar panic
enhance: add default accept and user-agent
2025-02-22 20:31:32 +08:00