Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
x8 — Набор инструментов для обнаружения скрытых параметров | Kitploit
Инструменты/GitHubGitHub/sh1yo/x8
РазведкаАнализ уязвимостейСбор информацииВеб-безопасность
GitHubsh1yo/x8

x8

Набор инструментов для обнаружения скрытых параметров

Репозиторий
2.1k1961 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Twitter stars issues

Latest Version crates.io crates_downloads github_downloads

x8

Набор инструментов для обнаружения скрытых параметров, написанный на Rust.

Инструмент помогает выявлять скрытые параметры, которые могут быть уязвимы или раскрывать интересный функционал, упущенный другими тестировщиками. Высокая точность достигается за счет построчного сравнения страниц, сравнения кодов ответов и отражений.

Документация

Документация с объяснением всех функций доступна по адресу https://sh1yo.art/x8docs/. Исходный код документации находится в /docs.md.

Содержание

  • Возможности
  • Примеры
  • Тестовый сайт
  • Использование
  • Словари
  • Интеграция с Burp Suite
  • Установка

Возможности

  • Высокая скорость.
  • Гибкая настройка запросов через шаблоны и точки внедрения.
  • Высокая масштабируемость – способен проверять тысячи URL за один запуск.
  • Повышенная точность по сравнению с аналогичными инструментами, особенно в сложных случаях.
  • Возможность находить параметры с неслучайными значениями, например admin=true.
  • Широкие возможности настройки.
  • Достигает почти «сырых» запросов за счет модификации внешней библиотеки.

Примеры

Проверка параметров в строке запроса

root@kitploit:~
x8 -u "https://example.com/" -w <wordlist>

С параметрами по умолчанию:

root@kitploit:~
x8 -u "https://example.com/?something=1" -w <wordlist>

/?something=1 эквивалентно /?something=1&%s

Отправка параметров в теле запроса

root@kitploit:~
x8 -u "https://example.com/" -X POST -w <wordlist>

Или с произвольным телом:

root@kitploit:~
x8 -u "https://example.com/" -X POST -b '{"x":{%s}}' -w <wordlist>

%s будет заменён на различные параметры, например {"x":{"a":"b3a1a", "b":"ce03a", ...}}

Параллельная проверка нескольких URL

root@kitploit:~
x8 -u "https://example.com/" "https://4rt.one/" -W0

Пользовательский шаблон

root@kitploit:~
x8 -u "https://example.com/" --param-template "user[%k]=%v" -w <wordlist>

Теперь каждый запрос будет выглядеть как /?user[a]=hg2s4&user[b]=a34fa&...

Процентное кодирование

Иногда параметры необходимо кодировать. Это тоже возможно:

root@kitploit:~
x8 -u "https://example.com/?path=..%2faction.php%3f%s%23" --encode -w <wordlist>
root@kitploit:~
GET /?path=..%2faction.php%3fWTDa8%3Da7UOS%26rTIDA%3DexMFp...%23 HTTP/1.1
Host: example.com

Поиск заголовков

root@kitploit:~
x8 -u "https://example.com" --headers -w <wordlist>

Поиск значений заголовков

Также можно нацелиться на отдельные заголовки:

root@kitploit:~
x8 -u "https://example.com" --headers -H "Cookie: %s" -w <wordlist>

Тестовый сайт

Вы можете проверить инструмент и сравнить его с другими по следующим URL:

https://4rt.one/level1 (GET)

https://4rt.one/level3 (GET)

Использование

root@kitploit:~
USAGE:
    x8 [FLAGS] [OPTIONS]

FLAGS:
        --append                       Append to the output file instead of overwriting it.
    -B                                 Equal to -x http://localhost:8080
        --check-binary                 Check the body of responses with binary content types
        --disable-additional-checks    Private
        --disable-colors
        --disable-custom-parameters    Do not automatically check parameters like admin=true
        --disable-progress-bar
        --disable-trustdns             Can solve some dns related problems
        --encode                       Encodes query or body before making a request, i.e & -> %26, = -> %3D
                                       List of chars to encode: ", `, , <, >, &, #, ;, /, =, %
    -L, --follow-redirects             Follow redirections
        --force                        Force searching for parameters on pages > 25MB. Remove an error in case there's 1
                                       worker with --one-worker-per-host option.
    -h, --help                         Prints help information
        --headers                      Switch to header discovery mode.
                                       NOTE Content-Length and Host headers are automatically removed from the list
        --invert                       By default, parameters are sent within the body only in case PUT or POST methods
                                       are used.
                                       It's possible to overwrite this behavior by specifying the option
        --mimic-browser                Add default headers that browsers usually set.
        --one-worker-per-host          Multiple urls with the same host will be checked one after another,
                                       while urls with different hosts - are in parallel.
                                       Doesn't increase the number of workers
        --reflected-only               Disable page comparison and search for reflected parameters only.
        --remove-empty                 Skip writing to file outputs of url:method pairs without found parameters
        --replay-once                  If a replay proxy is specified, send all found parameters within one request.
        --strict                       Only report parameters that have changed the different parts of a page
        --test                         Prints request and response
    -V, --version                      Prints version information
        --verify                       Verify found parameters.

OPTIONS:
    -b, --body <body>                                       Example: --body '{"x":{%s}}'
                                                            Available variables: {{random}}
    -c <concurrency>                                        The number of concurrent requests per url [default: 1]
        --custom-parameters <custom-parameters>
            Check these parameters with non-random values like true/false yes/no
            (default is "admin bot captcha debug disable encryption env show sso test waf")
        --custom-values <custom-values>
            Values for custom parameters (default is "1 0 false off null true yes no")

    -t, --data-type <data-type>
            Available: urlencode, json
            Can be detected automatically if --body is specified (default is "urlencode")
    -d, --delay <Delay between requests in milliseconds>     [default: 0]
    -H <headers>                                            Example: -H 'one:one' 'two:two'
        --http <http>                                       HTTP version. Supported versions: --http 1.1, --http 2
    -j, --joiner <joiner>
            How to join parameter templates. Example: --joiner '&'
            Default: urlencoded - '&', json - ', ', header values - '; '
        --learn-requests <learn-requests-count>             Set the custom number of learn requests. [default: 9]
    -m, --max <max>
            Change the maximum number of parameters per request.
            (default is <= 256 for query, 64 for headers and 512 for body)
    -X, --method <methods>                                  Multiple values are supported: -X GET POST
    -o, --output <file>
    -O, --output-format <output-format>                     standart, json, url, request [default: standart]
    -P, --param-template <parameter-template>
            %k - key, %v - value. Example: --param-template 'user[%k]=%v'
            Default: urlencoded - <%k=%v>, json - <"%k":%v>, headers - <%k=%v>
    -p, --port <port>                                       Port to use with request file
        --progress-bar-len <progress-bar-len>                [default: 26]
        --proto <proto>                                     Protocol to use with request file (default is "https")
    -x, --proxy <proxy>
        --recursion-depth <recursion-depth>
            Check the same list of parameters with the found parameters until there are no new parameters to be found.
            Conflicts with --verify for now.
        --replay-proxy <replay-proxy>
            Request target with every found parameter via the replay proxy at the end.

    -r, --request <request>                                 The file with the raw http request
        --save-responses <save-responses>
            Save request and response to a directory when a parameter is found

        --split-by <split-by>
            Split the request into lines by the provided sequence. By default splits by \r, \n and \r\n

        --timeout <timeout>                                 HTTP request timeout in seconds. [default: 15]
    -u, --url <url>
            You can add a custom injection point with %s.
            Multiple urls and filenames are supported:
            -u filename.txt
            -u https://url1 http://url2
    -v, --verbose <verbose>                                 Verbose level 0/1/2 [default: 1]
    -w, --wordlist <wordlist>
            The file with parameters (leave empty to read from stdin) [default: ]

    -W, --workers <workers>
            The number of concurrent url checks.
            Use -W0 to run everything in parallel [default: 1]

Словари

Параметры:

  • samlists
  • arjun

Заголовки:

  • Param Miner

Интеграция с Burp Suite

Интеграция с Burp Suite осуществляется через расширение send to.

Настройка

  1. Запустите Burp Suite и перейдите на вкладку «Extender».
  2. Найдите и установите расширение «Custom Send To» из BApp Store.
  3. Откройте вкладку «Send to» и нажмите «Add» для настройки расширения.

Дайте имя записи и вставьте следующую команду:

root@kitploit:~
/path/to/x8 --progress-bar-len 20 -c 3 -r %R -w /path/to/wordlist --proto %T --port %P

Вы также можете добавить свои часто используемые аргументы, такие как --output-format, --replay-proxy, --recursion-depth и т.д.

ПРИМЕЧАНИЕ: если индикатор выполнения работает неправильно, попробуйте уменьшить значение --progress-bar-len.

Переключите режим с «Run in background» на «Run in terminal».

image

Если у вас возникли проблемы с отображением шрифтов в терминале, вы можете настроить параметры xterm в разделе «Send to Miscellaneous Options». Просто замените существующий текст на xterm -rv -fa 'Monospace' -fs 10 -hold -e %C или замените xterm на предпочитаемый эмулятор терминала.

Теперь вы можете перейти на вкладку Proxy/Repeater и отправить запрос в инструмент:

image

В следующем диалоговом окне вы можете изменить команду и выполнить её в новом окне терминала.

image

После выполнения команды появится новое окно терминала с запущенным инструментом.

image

Установка

ПРИМЕЧАНИЕ: Начиная с версии 4.0.0, установка через cargo install использует ветку crate вместо main. Эта ветка включает оригинальную библиотеку reqwest, которая выполняет HTTP-нормализацию и предотвращает отправку некорректных запросов. Если вы хотите использовать модифицированную версию reqwest без этих ограничений, рекомендую устанавливать через страницу «Releases» или собирать из исходников.

  • Docker

    • установка
      root@kitploit:~
      git clone https://github.com/Sh1Yo/x8
      cd x8
      docker build -t x8 .
      
    • использование
  • Linux

    • из релизов
    • из репозиториев BlackArch (репозитории должны быть установлены)
      root@kitploit:~
      # pacman -Sy x8
      
    • из исходного кода (должен быть установлен Rust)
      root@kitploit:~
      git clone https://github.com/sh1yo/x8
      cd x8
      cargo build --release
      # переместите бинарный файл в $PATH, чтобы использовать его без указания полного пути
      cp ./target/release/x8 /usr/local/bin 
      # если /usr/local/bin не существует, можно попробовать
      # sudo cp ./target/release/x8 /usr/bin
      
    • через cargo install
      root@kitploit:~
      cargo install x8
      
  • Mac

    • из исходного кода (должен быть установлен Rust)
      root@kitploit:~
      git clone https://github.com/sh1yo/x8
      cd x8
      cargo build --release
      # переместите бинарный файл в $PATH, чтобы использовать его без указания полного пути
      cp ./target/release/x8 /usr/local/bin 
      
    • через cargo install
      root@kitploit:~
      cargo install x8
      
Скачать инструмент
  • Windows

    • из релизов