mirror of
https://github.com/bettercap/bettercap
synced 2025-07-30 11:40:33 -07:00
misc: small fix or general refactoring i did not bother commenting
This commit is contained in:
parent
ea31346e3e
commit
d9dba33cce
1 changed files with 41 additions and 37 deletions
|
@ -319,8 +319,6 @@ func (s *SSLStripper) isMaxRedirs(hostname string) bool {
|
||||||
func (s *SSLStripper) Process(res *http.Response, ctx *goproxy.ProxyCtx) {
|
func (s *SSLStripper) Process(res *http.Response, ctx *goproxy.ProxyCtx) {
|
||||||
if s.enabled == false {
|
if s.enabled == false {
|
||||||
return
|
return
|
||||||
} else if s.isContentStrippable(res) == false {
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// is the server redirecting us?
|
// is the server redirecting us?
|
||||||
|
@ -355,43 +353,49 @@ func (s *SSLStripper) Process(res *http.Response, ctx *goproxy.ProxyCtx) {
|
||||||
// process response headers
|
// process response headers
|
||||||
s.stripResponseHeaders(res)
|
s.stripResponseHeaders(res)
|
||||||
|
|
||||||
// fetch the HTML body
|
// if we have a text or html content type, fetch the body
|
||||||
raw, err := ioutil.ReadAll(res.Body)
|
// and perform sslstripping
|
||||||
if err != nil {
|
if s.isContentStrippable(res) == true {
|
||||||
log.Error("Could not read response body: %s", err)
|
raw, err := ioutil.ReadAll(res.Body)
|
||||||
return
|
if err != nil {
|
||||||
}
|
log.Error("Could not read response body: %s", err)
|
||||||
|
return
|
||||||
body := string(raw)
|
|
||||||
urls := make(map[string]string, 0)
|
|
||||||
matches := httpsLinksParser.FindAllString(body, -1)
|
|
||||||
for _, u := range matches {
|
|
||||||
// make sure we only strip stuff we're able to
|
|
||||||
// resolve and process
|
|
||||||
if strings.ContainsRune(u, '.') == true {
|
|
||||||
urls[u] = s.processURL(u)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
nurls := len(urls)
|
body := string(raw)
|
||||||
if nurls > 0 {
|
urls := make(map[string]string, 0)
|
||||||
plural := "s"
|
matches := httpsLinksParser.FindAllString(body, -1)
|
||||||
if nurls == 1 {
|
for _, u := range matches {
|
||||||
plural = ""
|
// make sure we only strip stuff we're able to
|
||||||
|
// resolve and process
|
||||||
|
if strings.ContainsRune(u, '.') == true {
|
||||||
|
urls[u] = s.processURL(u)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
log.Info("[%s] Stripping %d SSL link%s from %s", core.Green("sslstrip"), nurls, plural, core.Bold(res.Request.Host))
|
|
||||||
|
nurls := len(urls)
|
||||||
|
if nurls > 0 {
|
||||||
|
plural := "s"
|
||||||
|
if nurls == 1 {
|
||||||
|
plural = ""
|
||||||
|
}
|
||||||
|
log.Info("[%s] Stripping %d SSL link%s from %s", core.Green("sslstrip"), nurls, plural, core.Bold(res.Request.Host))
|
||||||
|
}
|
||||||
|
|
||||||
|
for url, stripped := range urls {
|
||||||
|
log.Debug("Stripping url %s to %s", core.Bold(url), core.Yellow(stripped))
|
||||||
|
|
||||||
|
body = strings.Replace(body, url, stripped, -1)
|
||||||
|
|
||||||
|
hostOriginal := strings.Replace(url, "https://", "", 1)
|
||||||
|
hostStripped := strings.Replace(stripped, "http://", "", 1)
|
||||||
|
s.hosts.Track(hostOriginal, hostStripped)
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset the response body to the original unread state
|
||||||
|
// but with just a string reader, this way further calls
|
||||||
|
// to ioutil.ReadAll(res.Body) will just return the content
|
||||||
|
// we stripped without downloading anything again.
|
||||||
|
res.Body = ioutil.NopCloser(strings.NewReader(body))
|
||||||
}
|
}
|
||||||
|
|
||||||
for url, stripped := range urls {
|
|
||||||
log.Debug("Stripping url %s to %s", core.Bold(url), core.Yellow(stripped))
|
|
||||||
|
|
||||||
body = strings.Replace(body, url, stripped, -1)
|
|
||||||
|
|
||||||
hostOriginal := strings.Replace(url, "https://", "", 1)
|
|
||||||
hostStripped := strings.Replace(stripped, "http://", "", 1)
|
|
||||||
s.hosts.Track(hostOriginal, hostStripped)
|
|
||||||
}
|
|
||||||
|
|
||||||
// reset the response body to the original unread state
|
|
||||||
res.Body = ioutil.NopCloser(strings.NewReader(body))
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue