diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..5a71fc093 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,14 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[feature]" +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. diff --git a/.github/ISSUE_TEMPLATE/issue-report.md b/.github/ISSUE_TEMPLATE/issue-report.md new file mode 100644 index 000000000..00bb7867e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue-report.md @@ -0,0 +1,18 @@ +--- +name: Issue report +about: Create a report to help us improve +title: "[issue]" +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**Nuclei version** +Please share the version of the nuclei you are running with `nuclei -version` + + +**Screenshot of the error or bug** +please add the screenshot showing bug or issue you are facing. diff --git a/v2/internal/runner/runner.go b/v2/internal/runner/runner.go index cb40035d7..0b84b12af 100644 --- a/v2/internal/runner/runner.go +++ b/v2/internal/runner/runner.go @@ -458,15 +458,26 @@ func (r *Runner) processTemplateWithList(p *progress.Progress, template *templat // ProcessWorkflowWithList coming from stdin or list of targets func (r *Runner) ProcessWorkflowWithList(p *progress.Progress, workflow *workflows.Workflow) { + var wg sync.WaitGroup scanner := bufio.NewScanner(strings.NewReader(r.input)) for scanner.Scan() { text := scanner.Text() - if err := r.ProcessWorkflow(p, workflow, text); err != nil { - p.StartStdCapture() - gologger.Warningf("Could not run workflow for %s: %s\n", text, err) - p.StopStdCapture() - } + r.limiter <- struct{}{} + wg.Add(1) + + go func(URL string) { + defer wg.Done() + + if err := r.ProcessWorkflow(p, workflow, text); err != nil { + p.StartStdCapture() + gologger.Warningf("Could not run workflow for %s: %s\n", text, err) + p.StopStdCapture() + } + <-r.limiter + }(text) } + + wg.Wait() } // ProcessWorkflow towards an URL