添加url错误是的报错信息

This commit is contained in:
M09Ic 2023-04-25 17:33:07 +08:00
parent 0167f376db
commit 4b78503d64
5 changed files with 52 additions and 47 deletions

View File

@ -140,7 +140,7 @@ func (pool *CheckPool) Invoke(v interface{}) {
UrlString: unit.path,
IsValid: false,
ErrString: reqerr.Error(),
Reason: ErrRequestFailed.Error(),
Reason: pkg.ErrRequestFailed.Error(),
ReqDepth: unit.depth,
},
}

View File

@ -306,7 +306,7 @@ func (pool *Pool) Invoke(v interface{}) {
UrlString: pool.base + unit.path,
IsValid: false,
ErrString: reqerr.Error(),
Reason: ErrRequestFailed.Error(),
Reason: pkg.ErrRequestFailed.Error(),
},
}
pool.failedBaselines = append(pool.failedBaselines, bl)
@ -475,7 +475,7 @@ func (pool *Pool) Handler() {
if _, ok := pool.uniques[bl.Unique]; ok {
bl.IsValid = false
bl.IsFuzzy = true
bl.Reason = ErrFuzzyNotUnique.Error()
bl.Reason = pkg.ErrFuzzyNotUnique.Error()
} else {
pool.uniques[bl.Unique] = struct{}{}
}
@ -484,7 +484,7 @@ func (pool *Pool) Handler() {
// 对通过所有对比的有效数据进行再次filter
if bl.IsValid && pool.FilterExpr != nil && CompareWithExpr(pool.FilterExpr, params) {
pool.Statistor.FilteredNumber++
bl.Reason = ErrCustomFilter.Error()
bl.Reason = pkg.ErrCustomFilter.Error()
bl.IsValid = false
}
} else {
@ -522,19 +522,19 @@ func (pool *Pool) PreCompare(resp *ihttp.Response) error {
return nil
}
if pool.random.Status != 200 && pool.random.Status == status {
return ErrSameStatus
return pkg.ErrSameStatus
}
if iutils.IntsContains(BlackStatus, status) {
return ErrBadStatus
return pkg.ErrBadStatus
}
if iutils.IntsContains(WAFStatus, status) {
return ErrWaf
return pkg.ErrWaf
}
if !pool.checkRedirect(resp.GetHeader("Location")) {
return ErrRedirect
return pkg.ErrRedirect
}
return nil
@ -547,7 +547,7 @@ func (pool *Pool) BaseCompare(bl *pkg.Baseline) bool {
var status = -1
// 30x状态码的特殊处理
if bl.RedirectURL != "" && strings.HasSuffix(bl.RedirectURL, bl.Url.Path+"/") {
bl.Reason = ErrFuzzyRedirect.Error()
bl.Reason = pkg.ErrFuzzyRedirect.Error()
pool.putToFuzzy(bl)
return false
}
@ -568,7 +568,7 @@ func (pool *Pool) BaseCompare(bl *pkg.Baseline) bool {
if ok {
if status = base.Compare(bl); status == 1 {
bl.Reason = ErrCompareFailed.Error()
bl.Reason = pkg.ErrCompareFailed.Error()
return false
}
}
@ -588,7 +588,7 @@ func (pool *Pool) BaseCompare(bl *pkg.Baseline) bool {
if ok && status == 0 && base.FuzzyCompare(bl) {
pool.Statistor.FuzzyNumber++
bl.Reason = ErrFuzzyCompareFailed.Error()
bl.Reason = pkg.ErrFuzzyCompareFailed.Error()
pool.putToFuzzy(bl)
return false
}

View File

@ -6,42 +6,6 @@ import (
"github.com/chainreactors/words/rule"
)
type ErrorType uint
const (
NoErr ErrorType = iota
ErrBadStatus
ErrSameStatus
ErrRequestFailed
ErrWaf
ErrRedirect
ErrCompareFailed
ErrCustomCompareFailed
ErrCustomFilter
ErrFuzzyCompareFailed
ErrFuzzyRedirect
ErrFuzzyNotUnique
)
var ErrMap = map[ErrorType]string{
NoErr: "",
ErrBadStatus: "blacklist status",
ErrSameStatus: "same status with random baseline",
ErrRequestFailed: "request failed",
ErrWaf: "maybe banned by waf",
ErrRedirect: "duplicate redirect url",
ErrCompareFailed: "compare failed",
ErrCustomCompareFailed: "custom compare failed",
ErrCustomFilter: "custom filtered",
ErrFuzzyCompareFailed: "fuzzy compare failed",
ErrFuzzyRedirect: "fuzzy redirect",
ErrFuzzyNotUnique: "not unique",
}
func (e ErrorType) Error() string {
return ErrMap[e]
}
const (
CheckSource = iota + 1
InitRandomSource

View File

@ -61,6 +61,8 @@ func NewBaseline(u, host string, resp *ihttp.Response) *Baseline {
}
} else {
bl.IsValid = false
bl.Reason = ErrUrlError.Error()
bl.ErrString = err.Error()
}
bl.Unique = UniqueHash(bl)
return bl

39
pkg/types.go Normal file
View File

@ -0,0 +1,39 @@
package pkg
type ErrorType uint
const (
NoErr ErrorType = iota
ErrBadStatus
ErrSameStatus
ErrRequestFailed
ErrWaf
ErrRedirect
ErrCompareFailed
ErrCustomCompareFailed
ErrCustomFilter
ErrFuzzyCompareFailed
ErrFuzzyRedirect
ErrFuzzyNotUnique
ErrUrlError
)
var ErrMap = map[ErrorType]string{
NoErr: "",
ErrBadStatus: "blacklist status",
ErrSameStatus: "same status with random baseline",
ErrRequestFailed: "request failed",
ErrWaf: "maybe banned by waf",
ErrRedirect: "duplicate redirect url",
ErrCompareFailed: "compare failed",
ErrCustomCompareFailed: "custom compare failed",
ErrCustomFilter: "custom filtered",
ErrFuzzyCompareFailed: "fuzzy compare failed",
ErrFuzzyRedirect: "fuzzy redirect",
ErrFuzzyNotUnique: "not unique",
ErrUrlError: "url parse error",
}
func (e ErrorType) Error() string {
return ErrMap[e]
}