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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
graphicator — 자동화된 GraphQL 스키마 열거 및 데이터 추출 도구로, 인트로스펙션 문서를 반복 조회하고 쿼리를 재구성하며 응답을 저장하여 침투 테스트 및 API 보안 평가에 사용됩니다. | Kitploit
도구/GitHubGitHub/cybervelia/graphicator
API Security TestingInformation GatheringWeb SecurityPenetration Testing
GitHubcybervelia/graphicator

graphicator

자동화된 GraphQL 스키마 열거 및 데이터 추출 도구로, 인트로스펙션 문서를 반복 조회하고 쿼리를 재구성하며 응답을 저장하여 침투 테스트 및 API 보안 평가에 사용됩니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Graphicator

Graphicator는 GraphQL "스크래퍼"/추출기입니다. 이 도구는 대상 GraphQL 엔드포인트에서 반환된 인트로스펙션 문서를 반복 처리한 다음, 스키마를 내부 형식으로 재구성하여 지원되는 쿼리를 재생성할 수 있도록 합니다. 이러한 쿼리가 생성되면 이를 사용하여 엔드포인트에 요청을 보내고 반환된 응답을 파일에 저장합니다.

오류 응답은 저장되지 않습니다. 기본적으로 이 도구는 올바른 응답을 캐시하고 오류도 캐시하므로, 도구를 다시 실행할 때 동일한 쿼리를 다시 실행하지 않습니다.

현명하게 사용하고, 상호작용할 권한이 있는 대상에만 사용하십시오.

이 도구가 침투 테스터로서의 테스트를 자동화하고, 아직 GraphQL 테스트를 해보지 않은 사람들에게도 동기를 부여하기를 바랍니다.

GraphQL 엔드포인트에 대한 평가를 수행하는 방법을 알아보려면: https://cybervelia.com/?p=736&preview=true

설치

시스템에 설치

root@kitploit:~
python3 -m pip install -r requirements.txt

컨테이너 사용

root@kitploit:~
docker run --rm -it -p8005:80 cybervelia/graphicator --target http://the-target:port/graphql --verbose

작업이 완료되면 결과를 압축하여 zip 파일로 제공하며, 이 zip 파일은 포트 8005에서 제공되는 웹서버를 통해 제공됩니다. 컨테이너를 중지하려면 CTRL+C를 누르십시오. 컨테이너가 중지되면 데이터도 삭제됩니다. 또한 필요에 따라 호스트 포트를 변경할 수 있습니다.

사용법

root@kitploit:~
python3 graphicator.py [args...]

대상 설정

첫 번째 단계는 대상을 구성하는 것입니다. 이를 위해 --target 옵션이나 --file을 사용한 파일을 제공해야 합니다.

인수를 통해 단일 대상 설정

root@kitploit:~
python3 graphicator.py --target https://subdomain.domain:port/graphql

여러 대상 설정

root@kitploit:~
python3 graphicator.py --target https://subdomain.domain:port/graphql --target https://target2.tld/graphql

파일을 통해 대상 설정

root@kitploit:~
python3 graphicator.py --file file.txt

파일에는 한 줄에 하나의 URL이 포함되어야 합니다:

root@kitploit:~
http://target1.tld/graphql
http://sub.target2.tld/graphql
http://subxyz.target3.tld:8080/graphql

프록시 사용

도구를 모든 프록시에 연결할 수 있습니다.

기본 Burp 설정(포트 8080)에 연결

root@kitploit:~
python3 graphicator.py --target target --default-burp-proxy

자체 프록시에 연결

root@kitploit:~
python3 graphicator.py --target target --use-proxy

Tor를 통해 연결

root@kitploit:~
python3 graphicator.py --target target --use-tor

헤더 사용

root@kitploit:~
python3 graphicator.py --target target --header "x-api-key:60b725f10c9c85c70d97880dfe8191b3"

자세한 출력 활성화

root@kitploit:~
python3 graphicator.py --target target --verbose

멀티스레딩 활성화

root@kitploit:~
python3 graphicator.py --target target --multi

안전하지 않은 인증서 및 자체 서명 인증서에 대한 경고 비활성화

root@kitploit:~
python3 graphicator.py --target target --insecure

캐시된 결과 사용 방지

root@kitploit:~
python3 graphicator.py --target target --no-cache

예시

root@kitploit:~
python3 graphicator.py --target http://localhost:8000/graphql --verbose --multi

  _____                  __    _             __           
 / ___/____ ___ _ ___   / /   (_)____ ___ _ / /_ ___   ____
/ (_ // __// _ `// _ \ / _ \ / // __// _ `// __// _ \ / __/
\___//_/   \_,_// .__//_//_//_/ \__/ \_,_/ \__/ \___//_/   
               /_/                                         

By @fand0mas

[-] Targets:  1
[-] Headers:  'Content-Type', 'User-Agent'
[-] Verbose
[-] Using cache: True
************************************************************
  0%|                                                     | 0/1 [00:00<?, ?it/s][*] Enumerating... http://localhost:8000/graphql
[*] Retrieving... => query {getArticles  { id,title,views } }
[*] Retrieving... => query {getUsers  { id,username,email,password,level } }
100%|█████████████████████████████████████████████| 1/1 [00:00<00:00, 35.78it/s]
root@kitploit:~
$ cat reqcache/9652f1e7c02639d8f78d1c5263093072fb4fd06c.json 
{
    "data": {
        "getUsers": [
            {
                "id": 1,
                "username": "theo",
                "email": "[email protected]",
                "password": "1234",
                "level": 1
            },
            {
                "id": 2,
                "username": "john",
                "email": "[email protected]",
                "password": "5678",
                "level": 1
            }
        ]
    }
}
root@kitploit:~
$ cat reqcache-queries/9652f1e7c02639d8f78d1c5263093072fb4fd06c.query 
query {getUsers  { id,username,email,password,level } }

출력 구조

세 개의 폴더가 생성됩니다:

  • reqcache: 각 유효 쿼리의 응답이 JSON 형식으로 저장됩니다
  • reqcache-intro: 모든 인트로스펙션 쿼리가 이 디렉토리에 별도 파일로 저장됩니다
  • reqcache-queries: 모든 쿼리가 이 디렉토리에 별도 파일로 저장됩니다. 각 쿼리의 파일 이름은 해당 쿼리의 응답을 보유한 reqcache 디렉토리의 해당 파일 이름과 일치합니다.

파일 이름은 쿼리와 URL을 고려한 해시입니다.

라이선스 및 EULA

Copyright 2023 Cybervelia Ltd

이에 따라 본 소프트웨어와 관련 문서 파일(이하 "소프트웨어")의 사본을 획득한 모든 사람에게, 제한 없이 소프트웨어를 사용, 복사, 수정, 병합, 게시, 배포, 서브라이선스 및/또는 판매할 수 있는 권리(소프트웨어를 제공받은 사람에게 동일한 권리를 부여하는 조건 포함)를 무료로 허가합니다. 단, 다음 조건을 준수해야 합니다:

위 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 중요한 부분에 포함되어야 합니다.

본 소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해성에 대한 보증을 포함하여 어떠한 명시적 또는 묵시적 보증도 하지 않습니다. 어떠한 경우에도 저작자나 저작권 소유자는 계약, 불법 행위 또는 기타 행위로 인해 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않으며, 이는 소프트웨어 또는 그 사용이나 기타 거래로 인해 발생하는 경우에도 마찬가지입니다.

유지관리자

이 도구는 (@fand0mas)에 의해 생성 및 유지관리되고 있습니다.

기여도 환영합니다.

도구 다운로드