Packages and Binaries:

xsrfprobe

Prime Cross Site Request Forgery Audit and Exploitation Toolkit
XSRFProbe is an advanced Cross Site Request Forgery (CSRF/XSRF) Audit and Exploitation Toolkit. Equipped with a powerful crawling engine and numerous systematic checks, it is able to detect most cases of CSRF vulnerabilities, their related bypasses and further generate (maliciously) exploitable proof of concepts with each found vulnerability.

Installed size: 271 KB
How to install: sudo apt install xsrfprobe

Dependencies:
  • python3
  • python3-bs4
  • python3-pydantic
  • python3-rapidfuzz
  • python3-requests
  • python3-selenium
xsrfprobe
root@kali:~# xsrfprobe -h

                        ________                    ______
    ____  __________________  __/_______________________  /______
    __  |/_/_  ___/_  ___/_  /_ ___  __ \_  ___/  __ \_  __ \  _ \
    __>  < _(__  )_  /   _  __/ __  /_/ /  /   / /_/ /  /_/ /  __/
    /_/|_| /____/ /_/    /_/    _  .___//_/    \____//_.___/\___/
                                /_/

                                    ~  0xInfection | v3.0.0


usage: xsrfprobe -u <url> <args>

Required Arguments:
  -u, --url URL         Main URL to test

Optional Arguments:
  -c, --cookie COOKIE   Cookie value to be requested with each successive
                        request. If there are multiple cookies, separate them
                        with commas. For example: `-c PHPSESSID=i837c5n83u4,
                        _gid=jdhfbuysf`.
  -o, --output OUTPUT   Output directory where files to be stored. Default is
                        the output/ folder where all files generated will be
                        stored.
  -d, --delay DELAY     Time delay between requests in seconds. Default is
                        zero.
  -q, --quiet           Set the DEBUG mode to quiet. Report only when
                        vulnerabilities are found. Minimal output will be
                        printed on screen.
  -H, --headers HEADERS
                        Comma separated list of custom headers you'd want to
                        use. For example: ``--headers "Accept=text/php,
                        X-Requested-With=XHR"``.
  -v, --verbose         Increase the verbosity of the output (e.g., -vv is
                        more than -v).
  -t, --timeout TIMEOUT
                        HTTP request timeout value in seconds. The entered
                        value may be either in floating point decimal or an
                        integer. Example: ``--timeout 10.0``
  -E, --exclude EXCLUDE
                        Comma-separated paths / file containing paths
                        (separated by newlines) to exclude when crawling and
                        scanning.
  --user-agent USER_AGENT
                        Custom user-agent to be used. Only one user-agent can
                        be specified.
  --max-chars MAXCHARS  Maximum allowed character length for the custom token
                        value to be generated. For example: `--max-chars 5`.
                        Default value is 6.
  --crawl               Crawl the whole site and simultaneously test all
                        discovered endpoints for CSRF.
  --max-urls MAX_URLS   Maximum number of URLs to crawl (with --crawl). 0
                        means unlimited. Default: 200.
  --max-depth MAX_DEPTH
                        Maximum link depth to crawl from the seed URL (with
                        --crawl). 0 means unlimited. Default: 5.
  --crawl-timeout CRAWL_TIMEOUT
                        Wall-clock time budget for crawling in seconds (with
                        --crawl). 0 means unlimited. Default: 0.
  --no-analysis         Skip the Post-Scan Analysis of Tokens which were
                        gathered during requests
  --skip-poc            Skip the PoC Form Generation of POST-Based Cross Site
                        Request Forgeries.
  --no-verify           Do not verify SSL certificates with requests.
  --debug               Print out requests and responses while making
                        requests.
  --random-agent        Use random user-agents for making requests.
  --version             Display the version of XSRFProbe and exit.
  --json                Output the results into a JSON file.
  --force-header-tests  Run Referer/Origin header tests even when an anti-CSRF
                        token is confirmed enforced. Research/opt-in only:
                        bypass requests still carry a valid token, so results
                        on token-protected endpoints are false positives.

Browser Integration:
  --browser             Enable headless Firefox browser for SameSite and
                        browser-dependent tests.
  --auto-validate-poc   Auto-validate generated PoC files in headless browser
                        (requires --browser).
  --geckodriver-path GECKODRIVER_PATH
                        Path to geckodriver binary. Default: assumes
                        geckodriver is in PATH.
  --browser-timeout BROWSER_TIMEOUT
                        Page load timeout for headless browser in seconds.
                        Default: 30.
  --enum-subdomains     Enable subdomain enumeration via crt.sh for
                        SameSite=Strict sibling domain bypass tests.
  --no-form-submit      Do not submit forms during scanning. Only perform
                        passive token detection.



Updated on: 2026-Sep-03