kgretzky/evilginx2 · error

get-url: expected 'export': %s

Error message

get-url: expected 'export': %s

What it means

In 'lures get-url <id> import <file> export <path> [format]', the 5th argument was not the literal keyword 'export', so the command chain is invalid. A keyword-validation guard in handleLures that echoes the offending token via %s.

Source

Thrown at core/terminal.go:803

							if args[4] == "export" {
								if pn == 5 {
									return fmt.Errorf("get-url: no export path specified")
								}
								export_path := args[5]

								format := "text"
								if pn == 7 {
									format = args[6]
								}

								err = t.exportPhishUrls(export_path, phish_urls, phish_params, format)
								if err != nil {
									return fmt.Errorf("get-url: %v", err)
								}
								out = hiblue.Sprintf("exported %d phishing urls to file: %s\n", len(phish_urls), export_path)
								phish_urls = []string{}
							} else {
								return fmt.Errorf("get-url: expected 'export': %s", args[4])
							}
						}

					} else {
						// params present
						for n := 2; n < pn; n++ {
							val := args[n]

							sp := strings.Index(val, "=")
							if sp == -1 {
								return fmt.Errorf("to set custom parameters for the phishing url, use format 'param1=value1 param2=value2'")
							}
							k := val[:sp]
							v := val[sp+1:]

							params.Add(k, v)

							log.Info("adding parameter: %s='%s'", k, v)

View on GitHub (pinned to 4c0988a1d9)

Solutions

  1. Use the exact keyword 'export' as the 5th argument after the import file.
  2. Check for typos or swapped argument order in the command.
  3. Consult 'help lures' for the accepted get-url argument sequence.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at core/terminal.go:803 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kgretzky/evilginx2@4c0988a1d9 (2026-09-05). Data as JSON: /api/errors/e192ee38af427cc9. Report an issue: GitHub.