diff options
Diffstat (limited to 'internal/ipc/server.go')
| -rw-r--r-- | internal/ipc/server.go | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/internal/ipc/server.go b/internal/ipc/server.go index c83254e..c890a54 100644 --- a/internal/ipc/server.go +++ b/internal/ipc/server.go @@ -9,6 +9,7 @@ import ( "regexp" "sync" + "mitmux/internal/proxy" "mitmux/internal/rules" "mitmux/internal/scope" "mitmux/internal/store" @@ -20,11 +21,12 @@ type Repeater interface { Repeat(ctx context.Context, scheme, host string, raw []byte) (*store.Entry, error) } -// Intruder runs a Sniper attack over a §marked§ request template - +// Intruder runs an attack (Sniper, Battering ram, Pitchfork, or Cluster +// bomb - see proxy.AttackMode) over a §marked§ request template - // implemented by *proxy.Server. type Intruder interface { - Intrude(ctx context.Context, scheme, host string, template []byte, payloads []string, - onResult func(position int, payload string, entry *store.Entry, sendErr error) bool) error + Intrude(ctx context.Context, scheme, host string, template []byte, mode proxy.AttackMode, payloadSets [][]string, + onResult func(iteration int, values []string, entry *store.Entry, sendErr error) bool) error } // Hub fans out newly captured history entries to subscribed clients. @@ -174,9 +176,9 @@ func (s *Server) handleConn(conn net.Conn) { } grepExtractRe = re } - err := s.intruder.Intrude(context.Background(), req.Scheme, req.Host, req.Raw, req.Payloads, - func(position int, payload string, entry *store.Entry, sendErr error) bool { - r := IntrudeResultMsg{Position: position, Payload: payload} + err := s.intruder.Intrude(context.Background(), req.Scheme, req.Host, req.Raw, req.Mode, req.PayloadSets, + func(iteration int, values []string, entry *store.Entry, sendErr error) bool { + r := IntrudeResultMsg{Iteration: iteration, Values: values} if sendErr != nil { r.Error = sendErr.Error() } |