diff --git a/Changelog.md b/Changelog.md
@@ -2,6 +2,8 @@
- feat(scan): saving wappalyzer results to file ~ @djnnvx
- feat(scan): adding cvemap module ~ @djnnvx
+- fix(scan): adding --no-dirbusting ~ @djnnvx
+
## v0.0.3
diff --git a/cli/parser.go b/cli/parser.go
@@ -42,6 +42,7 @@ func GetParser(opts *StandardOptions) *cobra.Command {
scanOpts.SetRateLimit(opts.RateLimit)
scanOpts.SetWordlistPath(opts.WordlistPath)
scanOpts.SetForceInsecure(opts.UseHttpInsecure)
+ scanOpts.SetNoGobuster(opts.NoGobuster)
if opts.TargetFilePath == "" {
scanOpts.Run()
@@ -148,6 +149,7 @@ func GetParser(opts *StandardOptions) *cobra.Command {
scanCmd.Flags().StringVarP(&opts.OutDirName, "dir-name", "d", defaults.OutDirName, "Outfile directory name (if no target-file is specified, will also be target domain)")
scanCmd.Flags().StringVarP(&opts.Proxy, "proxy", "p", defaults.Proxy, "Proxy URL (used for the tools supporting it. Other will prompt a warning msg)")
scanCmd.Flags().BoolVarP(&opts.RunDry, "dry", "", defaults.RunDry, "Run a dry-run (test mode)")
+ scanCmd.Flags().BoolVarP(&opts.NoGobuster, "no-dirbusting", "", defaults.NoGobuster, "Disable directory bruteforce (sometimes you don't need it yk...)")
scanCmd.Flags().BoolVarP(&opts.UseHttpInsecure, "insecure", "k", defaults.UseHttpInsecure, "Ignore SSL warnings and force http")
scanCmd.Flags().Int32VarP(&opts.RateLimit, "rate-limit", "r", defaults.RateLimit, "Requests rate-limit (used for the tools supporting it. Other will prompt a warning msg)")
scanCmd.Flags().StringVarP(&opts.WordlistPath, "wordlist", "w", defaults.WordlistPath, "Wordlist to use")
diff --git a/cli/types.go b/cli/types.go
@@ -23,6 +23,9 @@ type StandardOptions struct {
// File containing list of targets (should be a list of IP Addresses or domains)
TargetFilePath string
+
+ // Disable Gobuster run (we dont need it sometimes yk)
+ NoGobuster bool
}
func GetDefaultOptions() StandardOptions {
@@ -34,6 +37,7 @@ func GetDefaultOptions() StandardOptions {
RateLimit: 0,
WordlistPath: "/usr/share/wordlists/seclists/Discovery/Web-Content/common.txt",
TargetFilePath: "",
+ NoGobuster: false,
}
return opts
diff --git a/scan/run.go b/scan/run.go
@@ -15,6 +15,7 @@ type ScanOpts struct {
rateLimit int32
wordlistPath string
forceInsecure bool
+ noGoBuster bool
}
/*
@@ -26,6 +27,10 @@ var (
wappalyzerResults []string
)
+func (opts *ScanOpts) SetNoGobuster(data bool) {
+ opts.noGoBuster = data
+}
+
func (opts *ScanOpts) SetForceInsecure(data bool) {
opts.forceInsecure = data
}
@@ -177,7 +182,10 @@ func (opts *ScanOpts) Run() {
opts.runWappalyzerGo()
opts.runCvemap()
opts.runHttpx()
- opts.runGobusterDir()
+
+ if !opts.noGoBuster {
+ opts.runGobusterDir()
+ }
opts.SetScanPath(initialPath)
} else {
| | | |