mirror of https://github.com/daffainfo/nuclei.git
Adding support for global env variables
parent
ef7591d3c8
commit
e17117c281
|
@ -95,6 +95,7 @@ on extensive configurability, massive extensibility and ease of use.`)
|
||||||
flagSet.StringVarP(&options.ResolversFile, "resolvers", "r", "", "file containing resolver list for nuclei"),
|
flagSet.StringVarP(&options.ResolversFile, "resolvers", "r", "", "file containing resolver list for nuclei"),
|
||||||
flagSet.BoolVar(&options.SystemResolvers, "system-resolvers", false, "use system DNS resolving as error fallback"),
|
flagSet.BoolVar(&options.SystemResolvers, "system-resolvers", false, "use system DNS resolving as error fallback"),
|
||||||
flagSet.BoolVar(&options.OfflineHTTP, "passive", false, "enable passive HTTP response processing mode"),
|
flagSet.BoolVar(&options.OfflineHTTP, "passive", false, "enable passive HTTP response processing mode"),
|
||||||
|
flagSet.BoolVar(&options.EnvironmentVariables, "env-vars", false, "Enable environment variables support"),
|
||||||
)
|
)
|
||||||
|
|
||||||
createGroup(flagSet, "interactsh", "interactsh",
|
createGroup(flagSet, "interactsh", "interactsh",
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package generators
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/projectdiscovery/stringsutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EnvVars returns a map with all environment variables into a map
|
||||||
|
func EnvVars() map[string]interface{} {
|
||||||
|
sliceEnvVars := os.Environ()
|
||||||
|
envVars := make(map[string]interface{}, len(sliceEnvVars))
|
||||||
|
for _, envVar := range sliceEnvVars {
|
||||||
|
key, val := stringsutil.Before(envVar, "="), stringsutil.After(envVar, "=")
|
||||||
|
envVars[key] = val
|
||||||
|
}
|
||||||
|
return envVars
|
||||||
|
}
|
|
@ -62,6 +62,11 @@ func (r *requestGenerator) Make(baseURL string, dynamicValues map[string]interfa
|
||||||
parsedString := parsed.String()
|
parsedString := parsed.String()
|
||||||
values["BaseURL"] = parsedString
|
values["BaseURL"] = parsedString
|
||||||
|
|
||||||
|
// merge with env vars
|
||||||
|
if r.options.Options.EnvironmentVariables {
|
||||||
|
values = generators.MergeMaps(values, generators.EnvVars())
|
||||||
|
}
|
||||||
|
|
||||||
// If data contains \n it's a raw request, process it like raw. Else
|
// If data contains \n it's a raw request, process it like raw. Else
|
||||||
// continue with the template based request flow.
|
// continue with the template based request flow.
|
||||||
if isRawRequest {
|
if isRawRequest {
|
||||||
|
|
|
@ -143,4 +143,6 @@ type Options struct {
|
||||||
UpdateNuclei bool
|
UpdateNuclei bool
|
||||||
// NoUpdateTemplates disables checking for nuclei templates updates
|
// NoUpdateTemplates disables checking for nuclei templates updates
|
||||||
NoUpdateTemplates bool
|
NoUpdateTemplates bool
|
||||||
|
// EnvironmentVariables enables support for environment variables
|
||||||
|
EnvironmentVariables bool
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue