Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
GWTMap — 通过提取混淆的RPC端点并生成序列化请求负载,映射GWT应用的攻击面,用于安全测试。 | Kitploit
工具/GitHubGitHub/reverseclabs/gwtmap
逆向工程Web应用程序漏洞利用信息收集Web安全渗透测试
GitHubreverseclabs/gwtmap

GWTMap

通过提取混淆的RPC端点并生成序列化请求负载,映射GWT应用的攻击面,用于安全测试。

查看仓库
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]

从 {hex}.cache.js 变形文件中枚举 GWT-RPC 方法

参数:
  -h, --help            显示此帮助消息并退出
  --version             显示程序版本号并退出
  -u <TARGET_URL>, --url <TARGET_URL>
                        目标 GWT {name}.nocache.js 引导文件或 {hex}.cache.js 文件的 URL
  -F <FILE>, --file <FILE>
                        本地 {hex}.cache.js GWT 变形文件的路径
  -b <BASE_URL>, --base <BASE_URL>
                        在 -F/--file 模式下指定给定变形文件的基础 URL
  -p <PROXY>, --proxy <PROXY>
                        可选 HTTP 代理的 URL(例如 -p http://127.0.0.1:8080)
  -c <COOKIES>, --cookies <COOKIES>
                        在 -u/--url 模式下访问远程资源所需的 Cookie(例如 'JSESSIONID=ABCDEF; OTHER=XYZABC')
  -f <FILTER>, --filter <FILTER>
                        输出结果时区分大小写的方法过滤器(例如 -f AuthSvc.checkSession)
  --basic               如果需要则启用 HTTP 基本身份验证。会提示输入凭据
  --rpc                 尝试为每个方法生成序列化的 RPC 请求
  --probe               发送 HTTP 探测请求以测试 --rpc 模式下返回的每个方法
  --svc                 显示枚举的服务信息,以及方法信息
  --code                跳过所有步骤,仅转储提供资源的“重新格式化”状态
  --color               启用控制台输出颜色
  --backup [DIR]        在 -u/--url 模式下创建检索到的代码的本地备份
  -q, --quiet           启用安静模式(最小化输出)

示例: ./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

[+] 分析中
====================
http://192.168.22.120/olympian/olympian.nocache.js
变形文件: http://192.168.22.120/olympian/4DE825BB25A8D7B3950D45A81EA7CD84.cache.js
+ 片段 : http://192.168.22.120/olympian/deferredjs/4DE825BB25A8D7B3950D45A81EA7CD84/1.cache.js
+ 片段 : http://192.168.22.120/olympian/deferredjs/4DE825BB25A8D7B3950D45A81EA7CD84/2.cache.js


[+] 模块信息
====================
GWT 版本: 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 版本: 7
RPC 标志: 0


[+] 发现的方法
====================

----- 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]


[+] 摘要
====================
显示 1/5 个服务
显示 1/25 个方法
下载工具