Skip to content

Commit b611bf1

Browse files
authored
Merge pull request #6224 from projectdiscovery/dev
v3.4.4
2 parents 95fad48 + 3957237 commit b611bf1

File tree

8 files changed

+69
-23
lines changed

8 files changed

+69
-23
lines changed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Build
2-
FROM golang:1.22-alpine AS builder
2+
FROM golang:1.23-alpine AS builder
33

44
RUN apk add build-base
55
WORKDIR /app
@@ -13,4 +13,4 @@ FROM alpine:latest
1313
RUN apk add --no-cache bind-tools chromium ca-certificates
1414
COPY --from=builder /app/bin/nuclei /usr/local/bin/
1515

16-
ENTRYPOINT ["nuclei"]
16+
ENTRYPOINT ["nuclei"]

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Browse the full Nuclei [**`documentation here`**](https://docs.projectdiscovery.
111111

112112
### Installation
113113

114-
`nuclei` requires **go1.22** to install successfully. Run the following command to get the repo:
114+
`nuclei` requires **go1.23** to install successfully. Run the following command to get the repo:
115115

116116
```sh
117117
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ require (
102102
github.com/projectdiscovery/tlsx v1.1.9
103103
github.com/projectdiscovery/uncover v1.0.10
104104
github.com/projectdiscovery/useragent v0.0.100
105-
github.com/projectdiscovery/utils v0.4.18
106-
github.com/projectdiscovery/wappalyzergo v0.2.27
105+
github.com/projectdiscovery/utils v0.4.19
106+
github.com/projectdiscovery/wappalyzergo v0.2.28
107107
github.com/redis/go-redis/v9 v9.1.0
108108
github.com/seh-msft/burpxml v1.0.1
109109
github.com/shurcooL/graphql v0.0.0-20230722043721-ed46e5a46466
@@ -310,7 +310,7 @@ require (
310310
github.com/pmezard/go-difflib v1.0.0 // indirect
311311
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
312312
github.com/projectdiscovery/blackrock v0.0.1 // indirect
313-
github.com/projectdiscovery/networkpolicy v0.1.13
313+
github.com/projectdiscovery/networkpolicy v0.1.14
314314
github.com/rivo/uniseg v0.4.7 // indirect
315315
github.com/saintfish/chardet v0.0.0-20230101081208-5e3ef4b5456d // indirect
316316
github.com/tklauser/go-sysconf v0.3.12 // indirect

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -890,8 +890,8 @@ github.com/projectdiscovery/mapcidr v1.1.34 h1:udr83vQ7oz3kEOwlsU6NC6o08leJzSDQt
890890
github.com/projectdiscovery/mapcidr v1.1.34/go.mod h1:1+1R6OkKSAKtWDXE9RvxXtXPoajXTYX0eiEdkqlhQqQ=
891891
github.com/projectdiscovery/n3iwf v0.0.0-20230523120440-b8cd232ff1f5 h1:L/e8z8yw1pfT6bg35NiN7yd1XKtJap5Nk6lMwQ0RNi8=
892892
github.com/projectdiscovery/n3iwf v0.0.0-20230523120440-b8cd232ff1f5/go.mod h1:pGW2ncnTxTxHtP9wzcIJAB+3/NMp6IiuQWd2NK7K+oc=
893-
github.com/projectdiscovery/networkpolicy v0.1.13 h1:1QBMYdPlMCt71PUAZAQsZgJfEXIYiJa8sgJswLUBpb4=
894-
github.com/projectdiscovery/networkpolicy v0.1.13/go.mod h1:pat2rE4G7kbow8CQ/yOym0bdLPq8rj7ZZWn3/3OT4Rs=
893+
github.com/projectdiscovery/networkpolicy v0.1.14 h1:XnwpGjF+h9xgwEIgrFG3G+7cGRPwh6FkxgQaLuw4rv4=
894+
github.com/projectdiscovery/networkpolicy v0.1.14/go.mod h1:pat2rE4G7kbow8CQ/yOym0bdLPq8rj7ZZWn3/3OT4Rs=
895895
github.com/projectdiscovery/ratelimit v0.0.80 h1:kDZ9Rgd/EiDR3fw8Ugtp4xVMaMZNzlEO8zCD4QholaE=
896896
github.com/projectdiscovery/ratelimit v0.0.80/go.mod h1:UW6g3VZbX+wI6WLXsexWGpSYnaQ79Uv+VewRj2+pzXQ=
897897
github.com/projectdiscovery/rawhttp v0.1.90 h1:LOSZ6PUH08tnKmWsIwvwv1Z/4zkiYKYOSZ6n+8RFKtw=
@@ -912,10 +912,10 @@ github.com/projectdiscovery/uncover v1.0.10 h1:FdnBYgynGUtjIsW5WPIIhadR1Smcghik9
912912
github.com/projectdiscovery/uncover v1.0.10/go.mod h1:l7QQ+mBc7bLK4tqYqPyo9nrYdz1K8vaGZWKYihkHmAs=
913913
github.com/projectdiscovery/useragent v0.0.100 h1:gDZSgPQCP8D0XUny41Ch4urP+FK5OcM5TB1btwCg4Gk=
914914
github.com/projectdiscovery/useragent v0.0.100/go.mod h1:8je9oUPzT5R+gjKQNEFurDSvX7fCnqW2iDGYdKMH6hY=
915-
github.com/projectdiscovery/utils v0.4.18 h1:cSjMOLXI5gAajfA6KV+0iQG4dGx2IHWLQyND/Snvw7k=
916-
github.com/projectdiscovery/utils v0.4.18/go.mod h1:y5gnpQn802iEWqf0djTRNskJlS62P5eqe1VS1+ah0tk=
917-
github.com/projectdiscovery/wappalyzergo v0.2.27 h1:u5z/3YohzwtX3n4EGDGy4XOKAXZx4JorNzZlw9CzOK0=
918-
github.com/projectdiscovery/wappalyzergo v0.2.27/go.mod h1:F8X79ljvmvrG+EIxdxWS9VbdkVTsQupHYz+kXlp8O0o=
915+
github.com/projectdiscovery/utils v0.4.19 h1:rWOOTWUMQK9gvgH01rrw0qFi0hrh712hM1pCUzapCqA=
916+
github.com/projectdiscovery/utils v0.4.19/go.mod h1:y5gnpQn802iEWqf0djTRNskJlS62P5eqe1VS1+ah0tk=
917+
github.com/projectdiscovery/wappalyzergo v0.2.28 h1:fd4xne6ndxJFSqJfSDAXmR3G87SZQdOYFTapHk4Ksh4=
918+
github.com/projectdiscovery/wappalyzergo v0.2.28/go.mod h1:F8X79ljvmvrG+EIxdxWS9VbdkVTsQupHYz+kXlp8O0o=
919919
github.com/projectdiscovery/yamldoc-go v1.0.6 h1:GCEdIRlQjDux28xTXKszM7n3jlMf152d5nqVpVoetas=
920920
github.com/projectdiscovery/yamldoc-go v1.0.6/go.mod h1:R5lWrNzP+7Oyn77NDVPnBsxx2/FyQZBBkIAaSaCQFxw=
921921
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=

pkg/catalog/config/constants.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ const (
3131
CLIConfigFileName = "config.yaml"
3232
ReportingConfigFilename = "reporting-config.yaml"
3333
// Version is the current version of nuclei
34-
Version = `v3.4.3`
34+
Version = `v3.4.4`
3535
// Directory Names of custom templates
3636
CustomS3TemplatesDirName = "s3"
3737
CustomGitHubTemplatesDirName = "github"

pkg/input/formats/openapi/examples.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,3 +288,33 @@ func openAPIExample(schema *openapi3.Schema, cache map[*openapi3.Schema]*cachedS
288288
func generateExampleFromSchema(schema *openapi3.Schema) (interface{}, error) {
289289
return openAPIExample(schema, make(map[*openapi3.Schema]*cachedSchema)) // TODO: Use caching
290290
}
291+
292+
func generateEmptySchemaValue(contentType string) *openapi3.Schema {
293+
schema := &openapi3.Schema{}
294+
objectType := &openapi3.Types{"object"}
295+
stringType := &openapi3.Types{"string"}
296+
297+
switch contentType {
298+
case "application/json":
299+
schema.Type = objectType
300+
schema.Properties = make(map[string]*openapi3.SchemaRef)
301+
case "application/xml":
302+
schema.Type = stringType
303+
schema.Format = "xml"
304+
schema.Example = "<?xml version=\"1.0\"?><root/>"
305+
case "text/plain":
306+
schema.Type = stringType
307+
case "application/x-www-form-urlencoded":
308+
schema.Type = objectType
309+
schema.Properties = make(map[string]*openapi3.SchemaRef)
310+
case "multipart/form-data":
311+
schema.Type = objectType
312+
schema.Properties = make(map[string]*openapi3.SchemaRef)
313+
case "application/octet-stream":
314+
default:
315+
schema.Type = stringType
316+
schema.Format = "binary"
317+
}
318+
319+
return schema
320+
}

pkg/input/formats/openapi/generator.go

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -268,24 +268,32 @@ func generateRequestsFromOp(opts *generateReqOptions) error {
268268
for content, value := range opts.op.RequestBody.Value.Content {
269269
cloned := req.Clone(req.Context())
270270

271-
example, err := generateExampleFromSchema(value.Schema.Value)
272-
if err != nil {
273-
continue
271+
var val interface{}
272+
273+
if value.Schema == nil || value.Schema.Value == nil {
274+
val = generateEmptySchemaValue(content)
275+
} else {
276+
var err error
277+
278+
val, err = generateExampleFromSchema(value.Schema.Value)
279+
if err != nil {
280+
continue
281+
}
274282
}
275283

276284
// var body string
277285
switch content {
278286
case "application/json":
279-
if marshalled, err := json.Marshal(example); err == nil {
287+
if marshalled, err := json.Marshal(val); err == nil {
280288
// body = string(marshalled)
281289
cloned.Body = io.NopCloser(bytes.NewReader(marshalled))
282290
cloned.ContentLength = int64(len(marshalled))
283291
cloned.Header.Set("Content-Type", "application/json")
284292
}
285293
case "application/xml":
286-
exampleVal := mxj.Map(example.(map[string]interface{}))
294+
values := mxj.Map(val.(map[string]interface{}))
287295

288-
if marshalled, err := exampleVal.Xml(); err == nil {
296+
if marshalled, err := values.Xml(); err == nil {
289297
// body = string(marshalled)
290298
cloned.Body = io.NopCloser(bytes.NewReader(marshalled))
291299
cloned.ContentLength = int64(len(marshalled))
@@ -294,7 +302,7 @@ func generateRequestsFromOp(opts *generateReqOptions) error {
294302
gologger.Warning().Msgf("openapi: could not encode xml")
295303
}
296304
case "application/x-www-form-urlencoded":
297-
if values, ok := example.(map[string]interface{}); ok {
305+
if values, ok := val.(map[string]interface{}); ok {
298306
cloned.Form = url.Values{}
299307
for k, v := range values {
300308
cloned.Form.Set(k, types.ToString(v))
@@ -306,7 +314,7 @@ func generateRequestsFromOp(opts *generateReqOptions) error {
306314
cloned.Header.Set("Content-Type", "application/x-www-form-urlencoded")
307315
}
308316
case "multipart/form-data":
309-
if values, ok := example.(map[string]interface{}); ok {
317+
if values, ok := val.(map[string]interface{}); ok {
310318
buffer := &bytes.Buffer{}
311319
multipartWriter := multipart.NewWriter(buffer)
312320
for k, v := range values {
@@ -326,13 +334,13 @@ func generateRequestsFromOp(opts *generateReqOptions) error {
326334
cloned.Header.Set("Content-Type", multipartWriter.FormDataContentType())
327335
}
328336
case "text/plain":
329-
str := types.ToString(example)
337+
str := types.ToString(val)
330338
// body = str
331339
cloned.Body = io.NopCloser(strings.NewReader(str))
332340
cloned.ContentLength = int64(len(str))
333341
cloned.Header.Set("Content-Type", "text/plain")
334342
case "application/octet-stream":
335-
str := types.ToString(example)
343+
str := types.ToString(val)
336344
if str == "" {
337345
// use two strings
338346
str = "string1\nstring2"

pkg/protocols/http/httpclientpool/clientpool.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,14 @@ func wrappedGet(options *types.Options, configuration *Configuration) (*retryabl
307307
if err != nil {
308308
return nil, err
309309
}
310+
if tlsConfig.ServerName == "" {
311+
// addr should be in form of host:port already set from canonicalAddr
312+
host, _, err := net.SplitHostPort(addr)
313+
if err != nil {
314+
return nil, err
315+
}
316+
tlsConfig.ServerName = host
317+
}
310318
return tls.Client(conn, tlsConfig), nil
311319
}
312320
}

0 commit comments

Comments
 (0)