Skip to content

Commit c746c26

Browse files
committed
fix: brute init not set header, #94
1 parent b13903e commit c746c26

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

core/ihttp/request.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,18 @@ type Request struct {
3131
ClientType int
3232
}
3333

34-
func (r *Request) SetHeaders(header map[string]string, RandomUA bool) {
34+
func (r *Request) SetHeaders(header http.Header, RandomUA bool) {
3535
if RandomUA {
3636
r.SetHeader("User-Agent", pkg.RandomUA())
3737
}
3838

3939
if r.StandardRequest != nil {
40-
for k, v := range header {
41-
r.StandardRequest.Header.Set(k, v)
42-
}
40+
r.StandardRequest.Header = header
4341
} else if r.FastRequest != nil {
4442
for k, v := range header {
45-
r.FastRequest.Header.Set(k, v)
43+
for _, i := range v {
44+
r.FastRequest.Header.Set(k, i)
45+
}
4646
}
4747
}
4848
}

core/option.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ type OutputOptions struct {
9999

100100
type RequestOptions struct {
101101
Method string `short:"X" long:"method" default:"GET" description:"String, request method, e.g.: --method POST" config:"method"`
102-
Headers []string `long:"header" description:"Strings, custom headers, e.g.: --header 'Auth: example_auth'" config:"headers"`
102+
Headers []string `short:"H" long:"header" description:"Strings, custom headers, e.g.: --header 'Auth: example_auth'" config:"headers"`
103103
UserAgent string `long:"user-agent" description:"String, custom user-agent, e.g.: --user-agent Custom" config:"useragent"`
104104
RandomUserAgent bool `long:"random-agent" description:"Bool, use random with default user-agent" config:"random-useragent"`
105105
Cookie []string `long:"cookie" description:"Strings, custom cookie" config:"cookies"`

core/pool/brutepool.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,12 @@ type BrutePool struct {
107107
}
108108

109109
func (pool *BrutePool) Init() error {
110-
if pool.Headers["User-Agent"] == "" {
111-
pool.Headers["User-Agent"] = pkg.DefaultUserAgent
110+
if pool.Headers.Get("User-Agent") == "" {
111+
pool.Headers.Set("User-Agent", pkg.DefaultUserAgent)
112112
}
113113

114-
if pool.Headers["Accept"] == "" {
115-
pool.Headers["Accept"] = "*/*"
114+
if pool.Headers.Get("Accept") == "" {
115+
pool.Headers.Set("Accept", "*/*")
116116
}
117117

118118
pool.initwg.Add(2)

core/pool/config.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/chainreactors/words"
88
"github.com/chainreactors/words/rule"
99
"github.com/expr-lang/expr/vm"
10+
"net/http"
1011
"sync"
1112
"time"
1213
)
@@ -27,7 +28,7 @@ type Config struct {
2728
BreakThreshold int32
2829
Method string
2930
Mod SprayMod
30-
Headers map[string]string
31+
Headers http.Header
3132
ClientType int
3233
MatchExpr *vm.Program
3334
FilterExpr *vm.Program

core/runner.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/panjf2000/ants/v2"
1616
"github.com/vbauerster/mpb/v8"
1717
"github.com/vbauerster/mpb/v8/decor"
18+
"net/http"
1819
"strings"
1920
"sync"
2021
"time"
@@ -67,7 +68,7 @@ func (r *Runner) PrepareConfig() *pool.Config {
6768
Thread: r.Threads,
6869
Timeout: time.Duration(r.Timeout) * time.Second,
6970
RateLimit: r.RateLimit,
70-
Headers: r.Headers,
71+
Headers: make(http.Header),
7172
Method: r.Method,
7273
Mod: pool.ModMap[r.Mod],
7374
OutputCh: r.outputCh,
@@ -109,6 +110,10 @@ func (r *Runner) PrepareConfig() *pool.Config {
109110
}
110111
}
111112

113+
for k, v := range r.Headers {
114+
config.Headers.Set(k, v)
115+
}
116+
112117
return config
113118
}
114119

0 commit comments

Comments
 (0)