@@ -2,14 +2,33 @@ package brute
2
2
3
3
import (
4
4
"github.com/hktalent/ProScan4all/lib/util"
5
+ "github.com/hktalent/ProScan4all/pkg/httpx/common/httpx"
5
6
"net/url"
6
7
"regexp"
7
8
"strings"
8
9
)
9
10
10
- func CheckLoginPage (inputurl string ) bool {
11
+ var clp = regexp .MustCompile (`<link[^>]*href=['"](.*?)['"]` )
12
+ var urlReg = regexp .MustCompile (`\/(login|Login)` )
13
+ var urlReg1 = regexp .MustCompile (`\.(png|jpg|jpeg|gif|css)$` )
14
+ var bdReg = regexp .MustCompile (`(login|Login|type="password"|忘记密码|注册|登录|forget|登录页面)` )
15
+
16
+ func IsLoginPage (inputurl , body string , StatusCode int ) bool {
17
+ if StatusCode == 200 && 0 == len (urlReg1 .FindAllString (inputurl , - 1 )) && 0 < len (urlReg .FindAllString (inputurl , - 1 )) || 0 < len (bdReg .FindAllString (body , - 1 )) {
18
+ return true
19
+ }
20
+ return false
21
+ }
22
+
23
+ func CheckLoginPage (inputurl string , resp * httpx.Response ) bool {
24
+ if IsLoginPage (inputurl , string (resp .Data ), resp .StatusCode ) {
25
+ return true
26
+ }
11
27
if req , err := util .HttpRequset (inputurl , "GET" , "" , true , nil ); err == nil {
12
- cssurl := regexp .MustCompile (`<link[^>]*href=['"](.*?)['"]` ).FindAllStringSubmatch (req .Body , - 1 )
28
+ if 0 < len (bdReg .FindAllString (req .Body , - 1 )) {
29
+ return true
30
+ }
31
+ cssurl := clp .FindAllStringSubmatch (req .Body , - 1 )
13
32
for _ , v := range cssurl {
14
33
if strings .Contains (v [1 ], ".css" ) {
15
34
u , err := url .Parse (strings .TrimSpace (inputurl ))
@@ -23,7 +42,9 @@ func CheckLoginPage(inputurl string) bool {
23
42
if err != nil {
24
43
return false
25
44
}
45
+ // 转换为绝对的可访问的url
26
46
hrefurl := u .ResolveReference (href )
47
+ // 原理,css中包含了login
27
48
if reqcss , err := util .HttpRequset (hrefurl .String (), "GET" , "" , true , nil ); err == nil {
28
49
if util .StrContains (reqcss .Body , "login" ) {
29
50
return true
0 commit comments