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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
GWTMap — GWT 애플리케이션의 공격 표면을 매핑하여 난독화된 RPC 엔드포인트를 추출하고 보안 테스트를 위한 직렬화된 요청 페이로드를 생성합니다. | Kitploit
도구/GitHubGitHub/reverseclabs/gwtmap
Reverse EngineeringWeb Application ExploitationInformation GatheringWeb SecurityPenetration Testing
GitHubreverseclabs/gwtmap

GWTMap

GWT 애플리케이션의 공격 표면을 매핑하여 난독화된 RPC 엔드포인트를 추출하고 보안 테스트를 위한 직렬화된 요청 페이로드를 생성합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

설명

GWTMap은 Google Web Toolkit(GWT) 기반 애플리케이션의 공격 표면을 매핑하는 데 도움이 되는 도구입니다. 이 도구의 목적은 최신 GWT 애플리케이션의 난독화된 클라이언트 측 코드 내에 숨겨진 서비스 메서드 엔드포인트를 추출하고, 해당 엔드포인트와 상호 작용하기 위한 예제 GWT-RPC 요청 페이로드를 생성하는 것을 용이하게 하는 것입니다.

자세한 정보는 여기에서 확인할 수 있습니다: https://labs.f-secure.com/blog/gwtmap-reverse-engineering-google-web-toolkit-applications.

요구 사항

스크립트를 실행하려면 Python3, argparse, requests가 필요합니다. 다음 명령어를 사용하여 설치할 수 있습니다:

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

사용법

도움말

root@kitploit:~
$ ./gwtmap.py -h
usage: gwtmap.py [-h] [--version] [-u <TARGET_URL>] -F <FILE> [-b <BASE_URL>] [-p <PROXY>] [-c <COOKIES>] [-f <FILTER>] [--basic] [--rpc] [--probe] [--svc] [--code] [--color] [--backup [DIR]] [-q]

Enumerates GWT-RPC methods from {hex}.cache.js permutation files

Arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -u <TARGET_URL>, --url <TARGET_URL>
                        URL of the target GWT {name}.nocache.js bootstrap or {hex}.cache.js file
  -F <FILE>, --file <FILE>
                        path to the local copy of a {hex}.cache.js GWT permutation file
  -b <BASE_URL>, --base <BASE_URL>
                        specifies the base URL for a given permutation file in -F/--file mode
  -p <PROXY>, --proxy <PROXY>
                        URL for an optional HTTP proxy (e.g. -p http://127.0.0.1:8080)
  -c <COOKIES>, --cookies <COOKIES>
                        any cookies required to access the remote resource in -u/--url mode (e.g. 'JSESSIONID=ABCDEF; OTHER=XYZABC')
  -f <FILTER>, --filter <FILTER>
                        case-sensitive method filter for output (e.g. -f AuthSvc.checkSession)
  --basic               enables HTTP Basic authentication if require. Prompts for credentials
  --rpc                 attempts to generate a serialized RPC request for each method
  --probe               sends an HTTP probe request to test each method returned in --rpc mode
  --svc                 displays enumerated service information, in addition to methods
  --code                skips all and dumps the 're-formatted' state of the provided resource
  --color               enables console output colors
  --backup [DIR]        creates a local backup of retrieved code in -u/--url mode
  -q, --quiet           enables quiet mode (minimal output)

Example: ./gwtmap.py -u "http://127.0.0.1/example/example.nocache.js" -p "http://127.0.0.1:8080" --rpc

사용법

부트스트랩 파일을 통해 원격 애플리케이션의 메서드를 열거하고 코드의 로컬 백업을 생성합니다 (무작위로 퍼뮤테이션 선택):

root@kitploit:~
./gwtmap.py -u http://192.168.22.120/olympian/olympian.nocache.js --backup

특정 코드 퍼뮤테이션을 통해 원격 애플리케이션의 메서드를 열거합니다:

root@kitploit:~
./gwtmap.py -u http://192.168.22.120/olympian/C39AB19B83398A76A21E0CD04EC9B14C.cache.js

HTTP 프록시를 통해 트래픽을 라우팅하면서 메서드를 열거합니다:

root@kitploit:~
./gwtmap.py -u http://192.168.22.120/olympian/olympian.nocache.js --backup -p http://127.0.0.1:8080

주어진 퍼뮤테이션의 로컬 복사본(파일)에서 메서드를 열거합니다:

root@kitploit:~
./gwtmap.py -F test_data/olympian/C39AB19B83398A76A21E0CD04EC9B14C.cache.js

특정 서비스 또는 메서드로 출력을 필터링합니다:

root@kitploit:~
./gwtmap.py -u http://192.168.22.120/olympian/olympian.nocache.js --filter AuthenticationService.login

필터링된 서비스의 모든 메서드에 대한 RPC 페이로드를 생성하고, 색상 출력 사용:

root@kitploit:~
./gwtmap.py -u http://192.168.22.120/olympian/olympian.nocache.js --filter AuthenticationService --rpc --color

필터링된 서비스 메서드에 대해 생성된 RPC 요청을 자동으로 테스트(프로브)합니다:

root@kitploit:~
./gwtmap.py -u http://192.168.22.120/olympian/olympian.nocache.js --filter AuthenticationService.login --rpc --probe

전체 예제

메서드 "testDetails"에 대한 RPC 요청을 생성하고 서비스를 자동으로 프로브합니다:

root@kitploit:~
$ ./gwtmap.py -u http://192.168.22.120/olympian/olympian.nocache.js --filter TestService.testDetails --rpc --probe   

   ___|  \        / __ __|   \  |     \      _ \
  |       \  \   /     |    |\/ |    _ \    |   |
  |   |    \  \ /      |    |   |   ___ \   ___/
 \____|    _/\_/      _|   _|  _| _/    _\ _|
                             version 0.1

[+] Analysing
====================
http://192.168.22.120/olympian/olympian.nocache.js
Permutation: http://192.168.22.120/olympian/4DE825BB25A8D7B3950D45A81EA7CD84.cache.js
+ fragment : http://192.168.22.120/olympian/deferredjs/4DE825BB25A8D7B3950D45A81EA7CD84/1.cache.js
+ fragment : http://192.168.22.120/olympian/deferredjs/4DE825BB25A8D7B3950D45A81EA7CD84/2.cache.js


[+] Module Info
====================
GWT Version: 2.9.0
Content-Type: text/x-gwt-rpc; charset=utf-8
X-GWT-Module-Base: http://192.168.22.120/olympian/
X-GWT-Permutation: 4DE825BB25A8D7B3950D45A81EA7CD84
RPC Version: 7
RPC Flags: 0


[+] Methods Found
====================

----- TestService -----

TestService.testDetails( java.lang.String/2004016611, java.lang.String/2004016611, I, D, java.lang.String/2004016611 )
POST /olympian/testService HTTP/1.1
Host: 192.168.22.120
Content-Type: text/x-gwt-rpc; charset=utf-8
X-GWT-Permutation: 4DE825BB25A8D7B3950D45A81EA7CD84
X-GWT-Module-Base: http://192.168.22.120/olympian/
Content-Length: 262

7|0|10|http://192.168.22.120/olympian/|67E3923F861223EE4967653A96E43846|com.ecorp.olympian.client.asyncService.TestService|testDetails|java.lang.String/2004016611|D|I|§param_Bob§|§param_Smith§|§param_"Im_a_test"§|1|2|3|4|5|5|5|7|6|5|8|9|§32§|§76.6§|10|

HTTP/1.1 200
//OK[1,["Name: param_Bob param_Smith\nAge: 32\nWeight: 76.6\nBio: param_\"Im_a_test\"\n"],0,7]


[+] Summary
====================
Showing 1/5 Services
Showing 1/25 Methods
도구 다운로드