> ## Documentation Index
> Fetch the complete documentation index at: https://trickest.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ffuf

> A fast web fuzzer written in Go.

export const ToolDetails = ({id, name, description, category, author, inputs, created_date, container, source_url, license, output_command, output_type, iframe_url}) => <div style={{
  display: 'flex',
  gap: '24px'
}}>
    <div style={{
  flex: '1',
  display: 'flex',
  flexDirection: 'column',
  gap: '16px'
}}>
      <div style={{
  backgroundColor: 'var(--background-card)',
  borderRadius: '12px',
  boxShadow: '0 2px 4px rgba(0,0,0,0.05)'
}}>
        <div style={{
  backgroundColor: 'var(--background-default)',
  borderRadius: '8px',
  border: '1px solid var(--border-default)'
}}>
          <div style={{
  display: 'flex',
  flexDirection: 'column',
  gap: '12px'
}}>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Name:</strong>
              <span>{name}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Category:</strong>
              <span>{category}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Publisher:</strong>
              <span>{author}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Created:</strong>
              <span>{new Date(created_date).toLocaleDateString()}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Container:</strong>
              <code style={{
  padding: '2px 6px',
  backgroundColor: 'var(--background-code)',
  borderRadius: '4px',
  fontSize: '0.9em'
}}>{container}</code>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Output Type:</strong>
              <span>{output_type}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>License:</strong>
              <span>{license}</span>
            </div>
            <div style={{
  display: 'flex',
  alignItems: 'baseline'
}}>
              <strong style={{
  minWidth: '100px',
  color: 'var(--text-secondary)'
}}>Source:</strong>
              <a href={source_url} target="_blank" rel="noopener noreferrer" style={{
  color: 'var(--text-link)',
  textDecoration: 'none',
  ':hover': {
    textDecoration: 'underline'
  }
}}>
                View Source
              </a>
            </div>
          </div>
        </div>
      </div>

      <div style={{
  backgroundColor: 'var(--background-card)',
  borderRadius: '8px'
}}>
        <h3 style={{
  fontSize: '1.2rem',
  marginBottom: '16px'
}}>Parameters</h3>
        <div style={{
  display: 'flex',
  flexDirection: 'column',
  gap: '12px'
}}>
          {Object.entries(inputs).map(([key, value]) => <ParamField key={key} query={key} type={value.type.toLowerCase()} optional={!value.visible} required={value.visible}>
              <code style={{
  marginRight: '8px'
}}>{value.command}</code>
              {value.description}
            </ParamField>)}
        </div>
      </div>
    </div>

    <div style={{
  width: '400px'
}}>
      <Frame style={{
  width: '100%',
  height: '100%'
}}>
        <iframe src={iframe_url} style={{
  width: '100%',
  height: '400px',
  border: 'none',
  borderRadius: '8px',
  display: 'block'
}} scrolling="no" />
      </Frame>
    </div>
  </div>;

<ToolDetails
  id="3668165f-39ba-401f-bd70-debdfc0582bf"
  name="ffuf"
  description="A fast web fuzzer written in Go."
  category="Fuzzing"
  author="trickest"
  created_date="2021-06-23"
  container="quay.io/trickest/ffuf:v2.1.0-patch-3"
  source_url="https://github.com/ffuf/ffuf"
  license="Unknown"
  output_command="-o"
  output_type=""
  iframe_url="https://editor.trickest.io/preview?workflow_url=https://trickest-public-workflow.s3.eu-central-1.amazonaws.com/3668165f-39ba-401f-bd70-debdfc0582bf.json"
  inputs={ {
"raw": {
"type": "BOOLEAN",
"order": 0,
"command": "-raw",
"visible": false,
"description": "Do not encode URI (default: false)",
},
"sni": {
"type": "STRING",
"order": 0,
"command": "-sni",
"visible": false,
"description": "Target TLS SNI, does not support FUZZ keyword",
},
"url": {
"type": "STRING",
"order": 0,
"command": "-u",
"visible": true,
"description": "Target URL",
},
"json": {
"type": "BOOLEAN",
"order": 0,
"command": "-json",
"visible": false,
"description": "JSON output, printing newline-delimited JSON records (default: false)",
},
"mode": {
"type": "STRING",
"order": 0,
"command": "-mode",
"visible": false,
"description": "Multi-wordlist operation mode. Available modes: clusterbomb, pitchfork, sniper (default: clusterbomb)",
},
"rate": {
"type": "STRING",
"order": 0,
"command": "-rate",
"visible": false,
"description": "Rate of requests per second (default: 0)",
},
"delay": {
"type": "STRING",
"order": 0,
"command": "-p",
"visible": false,
"description": "Seconds of `delay` between requests, or a range of random delay. For example 0.1 or 0.1-2.0",
},
"http2": {
"type": "BOOLEAN",
"order": 0,
"command": "-http2",
"visible": false,
"description": "Use HTTP2 protocol (default: false)",
},
"config": {
"type": "FILE",
"order": 0,
"command": "-config",
"visible": false,
"description": "Load configuration from a file",
},
"header": {
"type": "STRING",
"order": 0,
"command": "-H",
"visible": false,
"description": "Header `Name: Value`, separated by colon",
},
"search": {
"type": "STRING",
"order": 0,
"command": "-search",
"visible": false,
"description": "Search for a FFUFHASH payload from ffuf history",
},
"silent": {
"type": "BOOLEAN",
"order": 0,
"command": "-s",
"visible": false,
"description": "Do not print additional information (silent mode) (default: false)",
},
"maxtime": {
"type": "STRING",
"order": 0,
"command": "-maxtime",
"visible": false,
"description": "Maximum running time in seconds for entire process. (default: 0)",
},
"request": {
"type": "FILE",
"order": 0,
"command": "-request",
"visible": false,
"description": "File containing the raw http request",
},
"threads": {
"type": "STRING",
"order": 0,
"command": "-t",
"visible": false,
"description": "Number of concurrent threads. (default: 40)",
},
"timeout": {
"type": "STRING",
"order": 0,
"command": "-timeout",
"visible": false,
"description": "HTTP request timeout in seconds. (default: 10)",
},
"verbose": {
"type": "BOOLEAN",
"order": 0,
"command": "-v",
"visible": false,
"description": "Verbose output, printing full URL and redirect location (if any) with the results. (default: false)",
},
"encoders": {
"type": "STRING",
"order": 0,
"command": "-enc",
"visible": false,
"description": "Encoders for keywords, eg. 'FUZZ:urlencode b64encode'",
},
"scrapers": {
"type": "STRING",
"order": 0,
"command": "-scrapers",
"visible": false,
"description": "Active scraper groups (default: all)",
},
"wordlist": {
"type": "FILE",
"order": 0,
"command": "-w",
"visible": true,
"description": "Wordlist file path and (optional) keyword separated by colon.",
},
"input-cmd": {
"type": "STRING",
"order": 0,
"command": "-input-cmd",
"visible": false,
"description": "Command producing the input. --input-num is required when using this input method. Overrides -w.",
},
"input-num": {
"type": "STRING",
"order": 0,
"command": "-input-num",
"visible": false,
"description": "Number of inputs to test. Used in conjunction with --input-cmd. (default: 100)",
},
"post-data": {
"type": "STRING",
"order": 0,
"command": "-d",
"visible": false,
"description": "POST data",
},
"recursion": {
"type": "BOOLEAN",
"order": 0,
"command": "-recursion",
"visible": false,
"description": "Scan recursively. Only FUZZ keyword is supported, and URL (-u) has to end in it. (default: false)",
},
"client-key": {
"type": "FILE",
"order": 0,
"command": "-ck",
"visible": false,
"description": "Client key for authentication. Client certificate needs to be defined as well for this to work",
},
"extensions": {
"type": "STRING",
"order": 0,
"command": "-e",
"visible": false,
"description": "Comma separated list of extensions. Extends FUZZ keyword.",
},
"match-time": {
"type": "STRING",
"order": 0,
"command": "-mt",
"visible": false,
"description": "Match how many milliseconds to the first response byte, either greater or less than. EG: >100 or <100",
},
"client-cert": {
"type": "FILE",
"order": 0,
"command": "-cc",
"visible": false,
"description": "Client cert for authentication. Client key needs to be defined as well for this to work",
},
"cookie-data": {
"type": "STRING",
"order": 0,
"command": "-b",
"visible": false,
"description": "Cookie data",
},
"filter-mode": {
"type": "STRING",
"order": 0,
"command": "-fmode",
"visible": false,
"description": "Filter set operator. Either of: and, or (default: or)",
},
"filter-time": {
"type": "STRING",
"order": 0,
"command": "-ft",
"visible": false,
"description": "Filter by number of milliseconds to the first response byte, either greater or less than. EG: >100 or <100",
},
"header-file": {
"type": "FILE",
"order": 2,
"command": "-header-file",
"visible": false,
"description": "Header `Name: Value`, separated by a newline",
},
"http-method": {
"type": "STRING",
"order": 0,
"command": "-X",
"visible": false,
"description": "HTTP method to use (default: GET)",
},
"ignore-body": {
"type": "BOOLEAN",
"order": 0,
"command": "-ignore-body",
"visible": false,
"description": "Do not fetch the response content. (default: false)",
},
"input-shell": {
"type": "STRING",
"order": 0,
"command": "-input-shell",
"visible": false,
"description": "Shell to be used for running command",
},
"match-lines": {
"type": "STRING",
"order": 0,
"command": "-ml",
"visible": false,
"description": "Match amount of lines in response",
},
"match-words": {
"type": "STRING",
"order": 0,
"command": "-mw",
"visible": false,
"description": "Match amount of words in response",
},
"maxtime-job": {
"type": "STRING",
"order": 0,
"command": "-maxtime-job",
"visible": false,
"description": "Maximum running time in seconds per job. (default: 0)",
},
"scraperfile": {
"type": "FILE",
"order": 0,
"command": "-scraperfile",
"visible": false,
"description": "Custom scraper file path",
},
"color-output": {
"type": "BOOLEAN",
"order": 0,
"command": "-c",
"visible": false,
"description": "Colorize output",
},
"filter-lines": {
"type": "STRING",
"order": 0,
"command": "-fl",
"visible": false,
"description": "Filter by amount of lines in response. Comma separated list of line counts and ranges",
},
"filter-words": {
"type": "STRING",
"order": 0,
"command": "-fw",
"visible": false,
"description": "Filter by amount of words in response. Comma separated list of word counts and ranges",
},
"match-regexp": {
"type": "STRING",
"order": 0,
"command": "-mr",
"visible": false,
"description": "Match regexp",
},
"matcher-mode": {
"type": "STRING",
"order": 0,
"command": "-mmode",
"visible": false,
"description": "Matcher set operator. Either of: and, or (default: or)",
},
"replay-proxy": {
"type": "STRING",
"order": 0,
"command": "-replay-proxy",
"visible": false,
"description": "Replay matched requests using this proxy.",
},
"filter-regexp": {
"type": "STRING",
"order": 0,
"command": "-fr",
"visible": false,
"description": "Filter regexp",
},
"output-format": {
"type": "STRING",
"order": 0,
"command": "-of",
"visible": false,
"description": "Output file format. Available formats: json, ejson, html, md, csv, ecsv (default: json)",
},
"request-proto": {
"type": "STRING",
"order": 0,
"command": "-request-proto",
"visible": false,
"description": "Protocol to use along with raw request (default: https)",
},
"http-proxy-url": {
"type": "STRING",
"order": 0,
"command": "-x",
"visible": false,
"description": "Proxy URL (SOCKS5 or HTTP). For example: http://127.0.0.1:8080 or socks5://127.0.0.1:8080",
},
"autocalibration": {
"type": "BOOLEAN",
"order": 0,
"command": "-ac",
"visible": false,
"description": "Automatically calibrate filtering options (default: false)",
},
"recursion-depth": {
"type": "STRING",
"order": 0,
"command": "-recursion-depth",
"visible": false,
"description": "Maximum recursion depth. (default: 0)",
},
"follow-redirects": {
"type": "BOOLEAN",
"order": 0,
"command": "-r",
"visible": false,
"description": "Follow redirects (default: false)",
},
"stop-on-forbidden": {
"type": "BOOLEAN",
"order": 0,
"command": "-sf",
"visible": false,
"description": "Stop when > 95% of responses return 403 Forbidden (default: false)",
},
"match-status-codes": {
"type": "STRING",
"order": 0,
"command": "-mc",
"visible": false,
"description": "Match HTTP status codes, or all for everything. (default: 200,204,301,302,307,401,403",
},
"recursion-strategy": {
"type": "STRING",
"order": 0,
"command": "-recursion-strategy",
"visible": false,
"description": "Recursion strategy: default for a redirect based, and greedy to recurse on all matches (default: default)",
},
"stop-on-all-errors": {
"type": "BOOLEAN",
"order": 0,
"command": "-sa",
"visible": false,
"description": "Stop on all error cases. Implies -sf and -se. (default: false)",
},
"filter-status-codes": {
"type": "STRING",
"order": 0,
"command": "-fc",
"visible": false,
"description": "Filter HTTP status codes from response. Comma separated list of codes and ranges",
},
"match-response-size": {
"type": "STRING",
"order": 0,
"command": "-ms",
"visible": false,
"description": "Match HTTP response size",
},
"filter-response-size": {
"type": "STRING",
"order": 0,
"command": "-fs",
"visible": false,
"description": "Filter HTTP response size. Comma separated list of sizes and ranges",
},
"host-autocalibration": {
"type": "BOOLEAN",
"order": 0,
"command": "-ach",
"visible": false,
"description": "Per host autocalibration (default: false)",
},
"custom-autocalibration": {
"type": "STRING",
"order": 0,
"command": "-acc",
"visible": false,
"description": "Custom auto-calibration string. Can be used multiple times. Implies -ac",
},
"output-skip-empty-file": {
"type": "BOOLEAN",
"order": 0,
"command": "-or",
"visible": false,
"description": "Don't create the output file if we don't have results (default: false)",
},
"autocalibration-keyword": {
"type": "STRING",
"order": 0,
"command": "-ack",
"visible": false,
"description": "Autocalibration keyword (default: FUZZ)",
},
"stop-on-spurious-errors": {
"type": "BOOLEAN",
"order": 0,
"command": "-se",
"visible": false,
"description": "Stop on spurious errors (default: false)",
},
"autocalibration-strategy": {
"type": "STRING",
"order": 0,
"command": "-acs",
"visible": false,
"description": "Custom auto-calibration strategies. Can be used multiple times. Implies -ac",
},
"dont-fetch-response-body": {
"type": "BOOLEAN",
"order": 0,
"command": "-ignore-body",
"visible": false,
"description": "Do not fetch the response content. (default: false)",
},
"ignore-wordlist-comments": {
"type": "BOOLEAN",
"order": 0,
"command": "-ic",
"visible": false,
"description": "Ignore wordlist comments (default: false)",
},
"dirsearch-wordlist-compatibility-mode": {
"type": "BOOLEAN",
"order": 0,
"command": "-D",
"visible": false,
"description": "DirSearch wordlist compatibility mode. Used in conjunction with -e flag. (default: false)",
},
}}
/>
