Merge pull request #601 from yungtravla/master

add boolean for dumping HTTP bodies in hex format
This commit is contained in:
evilsocket 2019-08-17 14:01:18 -04:00 committed by GitHub
commit 33797b120e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 6 deletions

View file

@ -36,6 +36,7 @@ type EventsStream struct {
quit chan bool
dumpHttpReqs bool
dumpHttpResp bool
dumpFormatHex bool
}
func NewEventsStream(s *session.Session) *EventsStream {
@ -214,6 +215,10 @@ func NewEventsStream(s *session.Session) *EventsStream {
"false",
"If true all HTTP responses will be dumped."))
mod.AddParam(session.NewBoolParameter("events.stream.http.format.hex",
"true",
"If true dumped HTTP bodies will be in hexadecimal format."))
return mod
}
@ -258,6 +263,8 @@ func (mod *EventsStream) Configure() (err error) {
return err
} else if err, mod.dumpHttpResp = mod.BoolParam("events.stream.http.response.dump"); err != nil {
return err
} else if err, mod.dumpFormatHex = mod.BoolParam("events.stream.http.format.hex"); err != nil {
return err
}
return err

View file

@ -89,12 +89,21 @@ func (mod *EventsStream) dumpGZIP(body []byte) string {
buffer := bytes.NewBuffer(body)
uncompressed := bytes.Buffer{}
reader, err := gzip.NewReader(buffer)
if err != nil {
return mod.dumpRaw(body)
} else if _, err = uncompressed.ReadFrom(reader); err != nil {
return mod.dumpRaw(body)
if mod.dumpFormatHex {
if err != nil {
return mod.dumpRaw(body)
} else if _, err = uncompressed.ReadFrom(reader); err != nil {
return mod.dumpRaw(body)
}
return mod.dumpRaw(uncompressed.Bytes())
} else {
if err != nil {
return mod.dumpText(body)
} else if _, err = uncompressed.ReadFrom(reader); err != nil {
return mod.dumpText(body)
}
return mod.dumpText(uncompressed.Bytes())
}
return mod.dumpRaw(uncompressed.Bytes())
}
func (mod *EventsStream) dumpJSON(body []byte) string {
@ -149,7 +158,11 @@ func (mod *EventsStream) viewHttpRequest(e session.Event) {
} else if req.IsType("application/json") {
dump += mod.dumpJSON(req.Body)
} else {
dump += mod.dumpRaw(req.Body)
if mod.dumpFormatHex {
dump += mod.dumpRaw(req.Body)
} else {
dump += mod.dumpText(req.Body)
}
}
}