mirror of
https://github.com/chainreactors/spray.git
synced 2025-05-07 03:01:25 +00:00
适配gogo2.10.1以及最新的templates
This commit is contained in:
parent
f535627c75
commit
b3f297c847
6
go.mod
6
go.mod
@ -5,10 +5,10 @@ go 1.17
|
||||
require (
|
||||
github.com/chainreactors/files v0.2.5-0.20221212083256-16ee4c1ae47e
|
||||
github.com/chainreactors/go-metrics v0.0.0-20220926021830-24787b7a10f8
|
||||
github.com/chainreactors/gogo/v2 v2.9.5-0.20221110124606-bb8c89742d4d
|
||||
github.com/chainreactors/gogo/v2 v2.10.1
|
||||
github.com/chainreactors/ipcs v0.0.13
|
||||
github.com/chainreactors/logs v0.6.2
|
||||
github.com/chainreactors/parsers v0.2.7
|
||||
github.com/chainreactors/parsers v0.2.9-0.20221210155102-cc0814762410
|
||||
github.com/chainreactors/words v0.3.2-0.20221212045930-0c976fe39aea
|
||||
)
|
||||
|
||||
@ -31,5 +31,7 @@ require (
|
||||
github.com/twmb/murmur3 v1.1.6 // indirect
|
||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||
golang.org/x/sys v0.2.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
)
|
||||
|
18
go.sum
18
go.sum
@ -1,30 +1,26 @@
|
||||
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
||||
github.com/M09ic/go-ntlmssp v1.2.9/go.mod h1:yMNEF6ulbFipt3CakMhcmcNVACshPRG4Ap4l00V+mMs=
|
||||
github.com/M09ic/go-ntlmssp v1.2.10-0.20221207030820-de2792a93fef/go.mod h1:yMNEF6ulbFipt3CakMhcmcNVACshPRG4Ap4l00V+mMs=
|
||||
github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
|
||||
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
|
||||
github.com/antonmedv/expr v1.9.0 h1:j4HI3NHEdgDnN9p6oI6Ndr0G5QryMY0FNxT4ONrFDGU=
|
||||
github.com/antonmedv/expr v1.9.0/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8=
|
||||
github.com/chainreactors/files v0.2.0/go.mod h1:/Xa9YXhjBlaC33JTD6ZTJFig6pcplak2IDcovf42/6A=
|
||||
github.com/chainreactors/files v0.2.3/go.mod h1:/Xa9YXhjBlaC33JTD6ZTJFig6pcplak2IDcovf42/6A=
|
||||
github.com/chainreactors/files v0.2.4 h1:R0iCqjWLcwwLoSi87FpgUlpxZAd+W4ZLQF3lkoLWZi0=
|
||||
github.com/chainreactors/files v0.2.4/go.mod h1:/Xa9YXhjBlaC33JTD6ZTJFig6pcplak2IDcovf42/6A=
|
||||
github.com/chainreactors/files v0.2.5-0.20221212083256-16ee4c1ae47e h1:Y/NB1dgNmglJlyMNuXcWItZGujbAAa0BbJNXM+CuuVo=
|
||||
github.com/chainreactors/files v0.2.5-0.20221212083256-16ee4c1ae47e/go.mod h1:/Xa9YXhjBlaC33JTD6ZTJFig6pcplak2IDcovf42/6A=
|
||||
github.com/chainreactors/go-metrics v0.0.0-20220926021830-24787b7a10f8 h1:kMFr1Hj+rkp1wBPIw2pcQvelO5GnA7r7wY3h6vJ1joA=
|
||||
github.com/chainreactors/go-metrics v0.0.0-20220926021830-24787b7a10f8/go.mod h1:7NDvFERNiXsujaBPD6s4WXj52uKdfnF2zVHQtKXIEV4=
|
||||
github.com/chainreactors/gogo/v2 v2.9.5-0.20221110124606-bb8c89742d4d h1:LrbxNFvUrCooEIbQd4JicGFxRCs5KNov8xjJb8b7udw=
|
||||
github.com/chainreactors/gogo/v2 v2.9.5-0.20221110124606-bb8c89742d4d/go.mod h1:L8CXaQB23of7vIZaBuajfNwXBemSthOy8o4myPs4PO4=
|
||||
github.com/chainreactors/gogo/v2 v2.10.1 h1:s3GqcqwBLT1dR6dYTXYEQ14+bej1oImmwFg5QqlxL8k=
|
||||
github.com/chainreactors/gogo/v2 v2.10.1/go.mod h1:0l7MElzkSqExIcN4hrwtij0AuqaY0Iyto1HSKYFMetU=
|
||||
github.com/chainreactors/ipcs v0.0.9/go.mod h1:E9M3Ohyq0TYQLlV4i2dbM9ThBZB1Nnd7Oexoie2xLII=
|
||||
github.com/chainreactors/ipcs v0.0.13 h1:TZww7XRr4qZPWqy9DjBzcJgxtSUwT4TAbcho4156bRI=
|
||||
github.com/chainreactors/ipcs v0.0.13/go.mod h1:E9M3Ohyq0TYQLlV4i2dbM9ThBZB1Nnd7Oexoie2xLII=
|
||||
github.com/chainreactors/logs v0.6.1/go.mod h1:Y0EtAnoF0kiASIJUnXN0pcOt420iRpHOAnOhEphzRHA=
|
||||
github.com/chainreactors/logs v0.6.2 h1:Yz5oayjwxO6KkjfjnmtT5WKbWjTaBdttFcneaFTpBe0=
|
||||
github.com/chainreactors/logs v0.6.2/go.mod h1:Y0EtAnoF0kiASIJUnXN0pcOt420iRpHOAnOhEphzRHA=
|
||||
github.com/chainreactors/parsers v0.2.6/go.mod h1:Z9weht+lnFCk7UcwqFu6lXpS7u5vttiy0AJYOAyCCLA=
|
||||
github.com/chainreactors/parsers v0.2.7 h1:3iEuluL7gSDrElZWyf1KEiTgddgcoZC0IaIHb9KA3pk=
|
||||
github.com/chainreactors/parsers v0.2.7/go.mod h1:Z9weht+lnFCk7UcwqFu6lXpS7u5vttiy0AJYOAyCCLA=
|
||||
github.com/chainreactors/words v0.3.2-0.20221210163218-dc834b0519bc h1:VBKKX6Uc6pJA9ST48m1p6H8V2mm1UIypIboFBaGNbMY=
|
||||
github.com/chainreactors/words v0.3.2-0.20221210163218-dc834b0519bc/go.mod h1:jRcFgafTKqdkd1+StzPCTJG1ESrZHluXEO2eERdHBMQ=
|
||||
github.com/chainreactors/parsers v0.2.9-0.20221210155102-cc0814762410 h1:K7EV0wtUuN6Rvh/MgqaBXyElD3guPsgNR5kF8nrV7iw=
|
||||
github.com/chainreactors/parsers v0.2.9-0.20221210155102-cc0814762410/go.mod h1:Z9weht+lnFCk7UcwqFu6lXpS7u5vttiy0AJYOAyCCLA=
|
||||
github.com/chainreactors/words v0.3.2-0.20221212045930-0c976fe39aea h1:YQafXeVeh1uDH+tQEHJo12sICgJWPqaVvPtIQW7JN5A=
|
||||
github.com/chainreactors/words v0.3.2-0.20221212045930-0c976fe39aea/go.mod h1:jRcFgafTKqdkd1+StzPCTJG1ESrZHluXEO2eERdHBMQ=
|
||||
github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
@ -103,7 +99,11 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
|
||||
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
|
||||
|
@ -392,7 +392,7 @@ func (pool *Pool) BaseCompare(bl *pkg.Baseline) bool {
|
||||
|
||||
bl.Collect()
|
||||
for _, f := range bl.Frameworks {
|
||||
if f.Tag == "waf" || f.Tag == "cdn" {
|
||||
if f.HasTag("waf") || f.HasTag("cdn") {
|
||||
pool.Statistor.WafedNumber++
|
||||
bl.Reason = ErrWaf.Error()
|
||||
return false
|
||||
|
@ -134,7 +134,7 @@ func (r *Runner) Prepare(ctx context.Context) error {
|
||||
|
||||
r.Pools, err = ants.NewPoolWithFunc(r.PoolSize, func(i interface{}) {
|
||||
t := i.(*Task)
|
||||
if t.origin.End == t.origin.Total {
|
||||
if t.origin != nil && t.origin.End == t.origin.Total {
|
||||
r.StatFile.SafeWrite(t.origin.Json())
|
||||
r.Done()
|
||||
return
|
||||
|
@ -1,116 +0,0 @@
|
||||
//go:build ignore
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/chainreactors/files"
|
||||
"github.com/chainreactors/parsers"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sigs.k8s.io/yaml"
|
||||
)
|
||||
|
||||
func Encode(input []byte) string {
|
||||
return parsers.Base64Encode(files.Flate(input))
|
||||
}
|
||||
|
||||
func loadYamlFile2JsonString(filename string) string {
|
||||
var err error
|
||||
file, err := os.Open("templates/" + filename)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
bs, _ := io.ReadAll(file)
|
||||
jsonstr, err := yaml.YAMLToJSON(bs)
|
||||
if err != nil {
|
||||
panic(filename + err.Error())
|
||||
}
|
||||
|
||||
return Encode(jsonstr)
|
||||
}
|
||||
|
||||
func visit(files *[]string) filepath.WalkFunc {
|
||||
return func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if !info.IsDir() {
|
||||
*files = append(*files, path)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func recuLoadYamlFiles2JsonString(dir string, single bool) string {
|
||||
var files []string
|
||||
err := filepath.Walk("templates/"+dir, visit(&files))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
var pocs []interface{}
|
||||
for _, file := range files {
|
||||
var tmp interface{}
|
||||
bs, err := os.ReadFile(file)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
err = yaml.Unmarshal(bs, &tmp)
|
||||
if err != nil {
|
||||
print(file)
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if tmp == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
if single {
|
||||
pocs = append(pocs, tmp)
|
||||
} else {
|
||||
pocs = append(pocs, tmp.([]interface{})...)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
jsonstr, err := json.Marshal(pocs)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return Encode(jsonstr)
|
||||
}
|
||||
|
||||
func main() {
|
||||
template := `package pkg
|
||||
|
||||
import (
|
||||
"github.com/chainreactors/files"
|
||||
"github.com/chainreactors/parsers"
|
||||
)
|
||||
|
||||
func LoadConfig(typ string) []byte {
|
||||
if typ == "http" {
|
||||
return files.UnFlate(parsers.Base64Decode("%s"))
|
||||
}
|
||||
return []byte{}
|
||||
}
|
||||
|
||||
`
|
||||
template = fmt.Sprintf(template,
|
||||
recuLoadYamlFiles2JsonString("fingers/http", false),
|
||||
)
|
||||
f, err := os.OpenFile("pkg/templates.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
f.WriteString(template)
|
||||
f.Sync()
|
||||
f.Close()
|
||||
println("generate templates.go successfully")
|
||||
}
|
@ -11,7 +11,7 @@ type Frameworks []*parsers.Framework
|
||||
func (fs Frameworks) String() string {
|
||||
frameworkStrs := make([]string, len(fs))
|
||||
for i, f := range fs {
|
||||
frameworkStrs[i] = " [" + f.ToString() + "]"
|
||||
frameworkStrs[i] = " [" + f.String() + "]"
|
||||
}
|
||||
return strings.Join(frameworkStrs, " ") + " "
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user