Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
x8 — 숨겨진 파라미터 탐지 스위트 | Kitploit
도구/GitHubGitHub/sh1yo/x8
ReconnaissanceVulnerability AnalysisInformation GatheringWeb Security
GitHubsh1yo/x8

x8

숨겨진 파라미터 탐지 스위트

저장소 보기
2.1k196122년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Twitter stars issues

Latest Version crates.io crates_downloads github_downloads

x8

Rust로 작성된 숨겨진 파라미터 발견 도구 모음입니다.

이 도구는 다른 테스터가 놓칠 수 있는, 취약하거나 흥미로운 기능을 드러낼 수 있는 숨겨진 파라미터를 식별하는 데 도움을 줍니다. 페이지의 줄 단위 비교, 응답 코드 비교, 반사(reflection) 비교를 통해 높은 정확도를 달성합니다.

문서

모든 기능을 설명하는 문서는 https://sh1yo.art/x8docs/에서 확인할 수 있습니다. 문서의 원본은 /docs.md에 있습니다.

목차

  • 기능
  • 예제
  • 테스트 사이트
  • 사용법
  • 워드리스트
  • Burp Suite 통합
  • 설치

기능

  • 빠름.
  • 템플릿과 인젝션 포인트를 사용하여 유연한 요청 구성 제공.
  • 확장성이 뛰어나 한 번의 실행으로 수천 개의 URL을 확인 가능.
  • 유사한 도구에 비해 특히 어려운 경우 높은 정확도 제공.
  • admin=true와 같이 무작위가 아닌 값을 가진 파라미터도 발견 가능.
  • 다양한 사용자 정의 옵션으로 구성이 매우 용이.
  • 외부 라이브러리 수정을 통해 거의 원시(raw) 요청 수준 달성.

예제

쿼리에서 파라미터 확인

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와 동일합니다.

본문(body)을 통해 파라미터 전송

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. BApp Store에서 'Custom Send To' 확장 기능을 찾아 설치합니다.
  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 값을 줄여보세요.

백그라운드 실행 대신 터미널에서 실행으로 전환합니다.

image

터미널의 글꼴 렌더링에 문제가 발생하면 Send to Miscellaneous Options에서 xterm 옵션을 조정할 수 있습니다. 기존 내용을 xterm -rv -fa 'Monospace' -fs 10 -hold -e %C로 바꾸거나, xterm을 선호하는 터미널 에뮬레이터로 대체하세요.

이제 프록시/리피터 탭으로 이동하여 요청을 도구로 보낼 수 있습니다:

image

다음 대화상자에서 명령어를 수정하고 새 터미널 창에서 실행할 수 있습니다.

image

명령어를 실행하면 새 터미널 창이 열리고 실행 중인 도구가 표시됩니다.

image

설치

참고: v4.0.0부터 cargo install을 통한 설치는 main 대신 crate 브랜치를 사용합니다. 이 브랜치에는 HTTP 정규화를 수행하고 유효하지 않은 요청 전송을 방지하는 원본 reqwest 라이브러리가 포함되어 있습니다. 이러한 제한 없이 수정된 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

    • 릴리스에서 설치
도구 다운로드