fscan/WebScan/WebScan.go

59 lines
1.1 KiB
Go
Raw Normal View History

2020-12-29 01:17:10 -08:00
package WebScan
import (
"embed"
"fmt"
"github.com/shadow1ng/fscan/WebScan/lib"
"github.com/shadow1ng/fscan/common"
"net/http"
2021-06-17 05:32:53 -07:00
"strings"
2022-01-07 01:58:34 -08:00
"time"
2020-12-29 01:17:10 -08:00
)
//go:embed pocs
var Pocs embed.FS
func WebScan(info *common.HostInfo) {
var pocinfo = common.Pocinfo
2021-06-30 01:26:17 -07:00
buf := strings.Split(info.Url, "/")
pocinfo.Target = strings.Join(buf[:3], "/")
2022-01-07 21:31:52 -08:00
2022-01-07 01:58:34 -08:00
var flag bool
go func() {
2022-01-07 21:31:52 -08:00
time.Sleep(60 * time.Second)
2022-01-07 01:58:34 -08:00
flag = true
}()
go func() {
2022-01-07 21:31:52 -08:00
if pocinfo.PocName != "" {
Execute(pocinfo)
} else {
for _, infostr := range info.Infostr {
pocinfo.PocName = lib.CheckInfoPoc(infostr)
Execute(pocinfo)
}
}
2022-01-07 01:58:34 -08:00
flag = true
}()
2022-01-07 21:31:52 -08:00
2022-01-07 01:58:34 -08:00
for {
if flag {
return
}
2020-12-29 01:17:10 -08:00
}
}
2021-06-30 01:26:17 -07:00
func Execute(PocInfo common.PocInfo) {
2020-12-29 01:17:10 -08:00
req, err := http.NewRequest("GET", PocInfo.Target, nil)
if err != nil {
2021-06-30 01:26:17 -07:00
errlog := fmt.Sprintf("[-] webtitle %v %v", PocInfo.Target, err)
common.LogError(errlog)
return
2020-12-29 01:17:10 -08:00
}
req.Header.Set("User-agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36")
if PocInfo.Cookie != "" {
req.Header.Set("Cookie", PocInfo.Cookie)
}
2021-03-02 17:24:17 -08:00
lib.CheckMultiPoc(req, Pocs, PocInfo.Num, PocInfo.PocName)
2020-12-29 01:17:10 -08:00
}