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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
graphw00f — GraphQL 서버 엔진 핑거프린팅 도구로, 정상적이고 변형된 쿼리를 전송하여 백엔드 기술을 식별하고 GraphQL 위협 매트릭스를 통해 보안 방어를 평가합니다. | Kitploit
도구/GitHubGitHub/dolevf/graphw00f
ReconnaissanceAPI Security TestingInformation GatheringWeb Security
GitHubdolevf/graphw00f

graphw00f

GraphQL 서버 엔진 핑거프린팅 도구로, 정상적이고 변형된 쿼리를 전송하여 백엔드 기술을 식별하고 GraphQL 위협 매트릭스를 통해 보안 방어를 평가합니다.

저장소 보기
884983개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

graphw00f

로고 제작: Nick Aleks에게 감사드립니다!

graphw00f - GraphQL 서버 핑거프린팅

목차

  • 작동 원리
  • 탐지
  • GraphQL 위협 매트릭스
  • 사전 요구 사항
  • 설치
  • 설정
  • 사용 예제
    • GraphQL 핑거프린팅
    • GraphQL 탐지 및 핑거프린팅
  • 지원 및 이슈
  • 참고 자료

작동 원리

graphw00f(wafw00f에서 영감을 받음)는 GQL 엔드포인트를 위한 GraphQL 핑거프린팅 도구입니다. 정상적인 쿼리와 변형된 쿼리를 혼합하여 전송함으로써 백그라운드에서 실행 중인 GraphQL 엔진을 식별합니다. graphw00f는 GraphQL 위협 매트릭스 프로젝트를 활용하여 각 기술이 기본적으로 제공하는 보안 방어 기능과 해당 방어 기능이 기본적으로 활성화되어 있는지 여부에 대한 인사이트를 제공합니다.

특별히 제작된 쿼리는 각기 다른 GraphQL 서버 구현체가 쿼리, 뮤테이션, 서브스크립션에 대해 고유한 방식으로 응답하게 만듭니다. 이를 통해 백엔드 엔진을 손쉽게 핑거프린팅하고 다양한 GraphQL 구현체를 구별할 수 있습니다. (CWE: CWE-200)

graphw00f는 GET 또는 POST 기반 쿼리를 사용하는 GraphQL 서버를 탐지하고 핑거프린팅하는 것을 지원합니다.

탐지

graphw00f는 현재 다음 GraphQL 엔진을 발견하려고 시도합니다:

  • Graphene - Python
  • Ariadne - Python
  • Apollo - TypeScript
  • graphql-go - Go
  • gqlgen - Go
  • WPGraphQL - PHP
  • GraphQL API for Wordpress - PHP
  • Gato GraphQL - PHP
  • graphql-ruby - Ruby
  • graphql-php - PHP
  • Hasura - Haskell
  • HyperGraphQL - Java
  • graphql-java - Java
  • Juniper - Rust
  • Sangria - Scala
  • Flutter - Dart
  • Diana.jl - Julia
  • Strawberry - Python
  • Tartiflette - Python
  • Dgraph - JavaScript
  • Directus - TypeScript
  • AWS AppSync
  • GraphQL Yoga - TypeScript
  • Lighthouse - PHP
  • Agoo - Ruby
  • Mercurius - JavaScript
  • morpheus-graphql - Haskell
  • Lacinia - Clojure
  • Caliban - Scala
  • jaal - Golang
  • absinthe-graphql - Elixir
  • GraphQL.NET - Microsoft .NET
  • pg_graphql - Rust
  • tailcall - Rust
  • Hot Chocolate - Microsoft .NET
  • Inigo - Go
  • ballerina-graphql - Ballerina

GraphQL 위협 매트릭스

graphw00f 프로젝트는 GraphQL 위협 매트릭스 프로젝트를 기술 보안 매트릭스 데이터베이스로 사용합니다. graphw00f가 GraphQL 엔드포인트를 성공적으로 핑거프린팅하면 위협 매트릭스 문서를 출력합니다. 이 문서는 보안 엔지니어가 해당 기술의 성숙도, 제공하는 보안 기능, 그리고 CVE를 포함하는지 여부를 식별하는 데 도움을 줍니다.

GraphQL 위협 매트릭스

사전 요구 사항

  • python3
  • requests

설치

저장소 클론

git clone https://github.com/dolevf/graphw00f.git

graphw00f 실행

root@kitploit:~
사용법: main.py -d -f -t http://example.com

옵션:
  -h, --help            이 도움말 메시지를 표시하고 종료합니다
  -r, --noredirect      3xx 응답에 의해 주어진 리디렉션을 따르지 않습니다
  -t URL, --target=URL  경로를 포함한 대상 URL
  -f, --fingerprint     핑거프린트 모드
  -d, --detect          탐지 모드
  -p PROXY, --proxy=PROXY
                        HTTP(S) 프록시 URL 형식:
                        http://user:pass@host:port
  -T TIMEOUT, --timeout=TIMEOUT
                        요청 시간 초과(초)
  -o OUTPUT_FILE, --output-file=OUTPUT_FILE
                        결과를 파일(CSV)로 출력
  -l, --list            graphw00f가 탐지 가능한 모든 GraphQL 기술 목록 표시
  -u USERAGENT, --user-agent=USERAGENT
                        사용할 사용자 정의 User-Agent(헤더 설정의 값을 덮어씁니다)
  -H HEADER, --header=HEADER
                        보낼 사용자 정의 헤더 (예: "Authorization: Bearer ey...").
  -w WORDLIST, --wordlist=WORDLIST
                        사용자 정의 GraphQL 엔드포인트 목록 파일 경로
  -v, --version         현재 버전을 출력하고 종료합니다

설정

graphw00f에 필요한 설정은 많지 않습니다. 하지만 특정 엔드포인트에 대해 Authorization 헤더나 쿠키 설정이 필요하다면 conf.py 파일을 사용하세요.

root@kitploit:~
# 사용자 정의 헤더
HEADERS = {'User-Agent':'graphw00f'}

# 사용자 정의 쿠키
COOKIES = {"PHPSESS":"DEADBEEF"}

--user-agent를 사용하면 conf.py 파일에 User-Agent가 있든 없든 관계없이 User-Agent 키가 추가됩니다. 파일에 이미 User-Agent가 있는 경우 명령줄 매개변수가 이를 덮어씁니다.

사용 예제

GraphQL 핑거프린팅

다음은 GraphQL 위치를 사전에 알고 있는 엔드포인트(/graphql)를 핑거프린팅(-f)하는 예제입니다.

root@kitploit:~
python3 main.py -f -t https://demo.hypergraphql.org:8484/graphql

                +-------------------+
                |     graphw00f     |
                +-------------------+
                  ***            ***
                **                  ***
              **                       **
    +--------------+              +--------------+
    |    Node X    |              |    Node Y    |
    +--------------+              +--------------+
                  ***            ***
                     **        **
                       **    **
                    +------------+
                    |   Node Z   |
                    +------------+

                graphw00f - v1.0.7
          GraphQL을 위한 핑거프린팅 도구
           Dolev Farhi <[email protected]>

[*] https://demo.hypergraphql.org:8484/graphql 에서 GraphQL 사용 가능 여부 확인 중...
[*] GraphQL 발견됨...
[*] 핑거프린팅 시도 중...
[*] 발견된 GraphQL 엔진: (HyperGraphQL)
[!] 공격 표면 매트릭스: https://github.com/dolevf/graphw00f/blob/main/docs/hypergraphql.md
[!] 기술: Java
[!] 홈페이지: https://www.hypergraphql.org
[*] 완료.

GraphQL 탐지 및 핑거프린팅

다음은 graphw00f가 GraphQL이 위치한 곳을 탐지(-d)한 후 핑거프린팅 프로세스를 실행(-f)하는 예제입니다.

root@kitploit:~
python3 main.py -f -d -t http://localhost:5000

                +-------------------+
                |     graphw00f     |
                +-------------------+
                  ***            ***
                **                  ***
              **                       **
    +--------------+              +--------------+
    |    Node X    |              |    Node Y    |
    +--------------+              +--------------+
                  ***            ***
                     **        **
                       **    **
                    +------------+
                    |   Node Z   |
                    +------------+

                graphw00f - v1.1.2
          GraphQL을 위한 핑거프린팅 도구
           Dolev Farhi <[email protected]>

[*] http://dvga.example.local:5000/graphql 확인 중
[!] http://dvga.example.local:5000/graphql 에서 GraphQL 발견됨
[*] 핑거프린팅 시도 중...
[*] 발견된 GraphQL 엔진: (Graphene)
[!] 공격 표면 매트릭스: https://github.com/nicholasaleks/graphql-threat-matrix/blob/master/implementations/graphene.md
[!] 기술: Python
[!] 홈페이지: https://graphene-python.org
[*] 완료.

지원 및 이슈

graphw00f에 오탐, 부정확한 탐지, 버그 등 문제가 있는 경우 환경 세부 정보와 함께 GitHub 이슈를 생성해 주세요.

참고 자료

GraphQL에 대해 더 배우고 싶으신가요? 제 다른 프로젝트인 Damn Vulnerable GraphQL Application에서 GraphQL을 해킹해 보세요!

도구 다운로드