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) {
|
2021-02-04 22:43:07 -08:00
|
|
|
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
|
|
|
}
|