Files
assetfinder/bufferoverrun.go
2020-07-24 22:37:25 +01:00

33 lines
557 B
Go

package assetfinder
import (
"fmt"
"strings"
)
type BufferOverrun struct{}
func (BufferOverrun) FetchSubDomains(domain string) ([]string, error) {
out := make([]string, 0)
fetchURL := fmt.Sprintf("https://dns.bufferover.run/dns?q=.%s", domain)
wrapper := struct {
Records []string `json:"FDNS_A"`
}{}
err := fetchJSON(fetchURL, &wrapper)
if err != nil {
return out, err
}
for _, r := range wrapper.Records {
parts := strings.SplitN(r, ",", 2)
if len(parts) != 2 {
continue
}
out = append(out, parts[1])
}
return out, nil
}