diff --git a/CHANGELOG.MD b/CHANGELOG.MD index 6678213..ed08256 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -4,6 +4,7 @@ - [BUG] 修复某些情况 `path` 开头包含多个 `/` 问题 - [优化] 使用 `interactsh` 反连随机选择可用的服务器 +- [优化] 开启 `debug` 时仅详细打印来自 `poc` 的请求 - [优化] 开启 `debug` 时请求响应限制打印长度 感谢以下用户的贡献: diff --git a/base/poc.go b/base/poc.go index 6ec765f..e2d66d5 100644 --- a/base/poc.go +++ b/base/poc.go @@ -46,6 +46,7 @@ type POC struct { } func (p *POC) DoReq(req *client.TheRequest) (*client.TheResponse, error) { + req.IsFromPoC = true return p.Context.Client.DoReq(req) } diff --git a/client/client.go b/client/client.go index 88d3a67..c15c43c 100644 --- a/client/client.go +++ b/client/client.go @@ -51,6 +51,7 @@ func (c *HttpClient) DoReq(req *TheRequest) (*TheResponse, error) { if err != nil { return nil, xerr.Wrap(err) } + rawReq.IsFromPoC = req.IsFromPoC rawReq.SetBody(req.Body) rawReq.SetFollowRedirect(req.FollowRedirect) for k, v := range req.Headers { diff --git a/client/req.go b/client/req.go index 2916cc5..3d2eaf8 100644 --- a/client/req.go +++ b/client/req.go @@ -26,6 +26,8 @@ type TheRequest struct { Body string Headers map[string]string All []byte + // 特殊信息 + IsFromPoC bool } // Equals diff --git a/rawhttp/impl.go b/rawhttp/impl.go index eaa89ca..5860784 100644 --- a/rawhttp/impl.go +++ b/rawhttp/impl.go @@ -131,10 +131,12 @@ func (c *HTTPClient) DoReq(req *Request) (*Response, error) { buildReq := c.buildReqRaw(req) - if c.Debug { + if c.Debug && req.IsFromPoC { log.BluePrintln("------------------- REQUEST DEBUG -------------------") log.YellowPrintln(formatMessage(buildReq)) log.BluePrintln("-----------------------------------------------------") + } else if c.Debug && !req.IsFromPoC { + log.BluePrintln(fmt.Sprintf("[*] %s://%s:%s%s", req.Protocol, req.IP, req.Port, req.Path)) } n, err := conn.Write(buildReq) @@ -187,7 +189,7 @@ func (c *HTTPClient) DoReq(req *Request) (*Response, error) { } } - if c.Debug { + if c.Debug && req.IsFromPoC { log.BluePrintln("------------------- RESPONSE DEBUG -------------------") log.YellowPrintln(formatMessage(resp.RawResponse)) log.BluePrintln("-----------------------------------------------------") diff --git a/rawhttp/req.go b/rawhttp/req.go index df0782e..3c4d9cb 100644 --- a/rawhttp/req.go +++ b/rawhttp/req.go @@ -42,6 +42,8 @@ type Request struct { RawHeader []byte RawRequest []byte redirectCount int + // 特殊信息 + IsFromPoC bool } func NewRequest(target string, method string) (*Request, error) { diff --git a/reverse/dnslog.go b/reverse/dnslog.go index 9cf5ce3..28f0bbc 100644 --- a/reverse/dnslog.go +++ b/reverse/dnslog.go @@ -79,6 +79,7 @@ func (d *DnsLogCn) waitInternal() bool { Headers: map[string]string{ "Cookie": d.session, }, + IsFromPoC: false, }) if err != nil { log.Error(err) diff --git a/reverse/interact.go b/reverse/interact.go index 7ae3f61..ef68ddc 100644 --- a/reverse/interact.go +++ b/reverse/interact.go @@ -159,6 +159,7 @@ func NewInteract(c *client.HttpClient, server string) (*Interact, error) { Headers: map[string]string{ "Content-Type": "application/json", }, + IsFromPoC: false, } reResp, err := c.DoReq(regReq) if err != nil { @@ -202,6 +203,7 @@ func (i *Interact) Close() { Headers: map[string]string{ "Content-Type": "application/json", }, + IsFromPoC: false, } deResp, err := i.c.DoReq(deReq) if err != nil { @@ -236,6 +238,7 @@ func (i *Interact) Wait(w int) bool { FollowRedirect: false, Body: "", Headers: make(map[string]string), + IsFromPoC: false, } var respAesKey string t := time.Duration(w) * time.Second diff --git a/reverse/reverse.go b/reverse/reverse.go index f1d4c3f..855d969 100644 --- a/reverse/reverse.go +++ b/reverse/reverse.go @@ -71,6 +71,7 @@ func NewReverse(c *client.HttpClient) (Reverse, error) { FollowRedirect: false, Body: "", Headers: make(map[string]string), + IsFromPoC: false, }) if err != nil { return nil, xerr.Wrap(err)