如何映射Google Web Toolkit的攻击面
如何映射Google Web Toolkit的攻击面
如何映射Google Web Toolkit的攻击面,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
GWTMap
GWTMap是一款针对GWT的安全审计工具,在它的帮助下,广大研究人员不仅可以对基于Google Web Toolkit(GWT)的应用程序进行安全审计,而且还可以使用GWTMap来映射这类应用程序的攻击面。该工具的主要功能是帮助广大研究人员提取出隐藏在现代GWT应用程序混淆客户端代码中的任何服务方法节点,并尝试生成GWT-RPC请求样例Payload来与这些应用程序进行交互。
依赖环境
脚本的正常运行需要Python3环境以及argparse和requests库。在安装并配置好Python3环境之后,我们可以使用下列命令来安装相应的依赖组件:
python-mpipinstall-rrequirements.txt
帮助菜单
$./gwtmap.py-husage: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]EnumeratesGWT-RPCmethodsfrom{hex}.cache.jspermutationfilesArguments:-h,--help显示帮助信息并退出--version显示程序版本号并退出-u<TARGET_URL>,--url<TARGET_URL>目标GWT地址-F<FILE>,--file<FILE>本地拷贝文件路径-b<BASE_URL>,--base<BASE_URL>给定组合文件的URL基地址-p<PROXY>,--proxy<PROXY>HTTP代理URL地址URL,比如说:-phttp://127.0.0.1:8080-c<COOKIES>,--cookies<COOKIES>访问远程资源所需的cookie,比如说:'JSESSIONID=ABCDEF;OTHER=XYZABC'-f<FILTER>,--filter<FILTER>输出过滤,比如说:-fAuthSvc.checkSession--basic启用HTTPBasic认证--rpc针对每一个方法生成序列化RPC请求--probe发送HTTP探测请求来测试每一个方法--svc显示枚举服务信息和方法--code导出给定资源的're-formatted'状态--color启用终端输出颜色高亮显示--backup[DIR]创建获取代码的本地拷贝-q,--quiet启用静默模式(最小化输出)执行样例:./gwtmap.py-u"http://127.0.0.1/example/example.nocache.js"-p"http://127.0.0.1:8080"--rpc
工具使用
通过目标的Bootstrap文件来枚举一个远程应用程序中的方法,并创建目标代码的本地备份(随机选择排列):
./gwtmap.py-uhttp://192.168.22.120/olympian/olympian.nocache.js--backup
通过特定的代码组合枚举远程应用程序中的方法:
./gwtmap.py-uhttp://192.168.22.120/olympian/C39AB19B83398A76A21E0CD04EC9B14C.cache.js
通过一个HTTP代理枚举目标应用程序的路由流量方法:
./gwtmap.py-uhttp://192.168.22.120/olympian/olympian.nocache.js--backup-phttp://127.0.0.1:8080
枚举任意给定组合的本地文件拷贝中的方法:
./gwtmap.py-Ftest_data/olympian/C39AB19B83398A76A21E0CD04EC9B14C.cache.js
对特定服务或方法进行输出过滤:
./gwtmap.py-uhttp://192.168.22.120/olympian/olympian.nocache.js--filterAuthenticationService.login
针对已过滤的服务中所有的方法生成RPC Payload,输出数据带有颜色高亮显示:
./gwtmap.py-uhttp://192.168.22.120/olympian/olympian.nocache.js--filterAuthenticationService--rpc--color
针对所有已过滤服务方法自动测试(探测)生成的RPC请求:
./gwtmap.py-uhttp://192.168.22.120/olympian/olympian.nocache.js--filterAuthenticationService.login--rpc--probe
完整使用样例
在这个样例中,我们针对“testDetails”方法来生成了一个RPC请求,然后实现针对服务的自动化探测:
$./gwtmap.py-uhttp://192.168.22.120/olympian/olympian.nocache.js--filterTestService.testDetails--rpc--probe___|\/____|\|\_\|\\/||\/|_\||||\\/|||___\___/\____|_/\_/_|_|_|_/_\_|version0.1[+]Analysing====================http://192.168.22.120/olympian/olympian.nocache.jsPermutation: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[+]ModuleInfo====================GWTVersion:2.9.0Content-Type:text/x-gwt-rpc;charset=utf-8X-GWT-Module-Base:http://192.168.22.120/olympian/X-GWT-Permutation:4DE825BB25A8D7B3950D45A81EA7CD84RPCVersion:7RPCFlags:0[+]MethodsFound====================-----TestService-----TestService.testDetails(java.lang.String/2004016611,java.lang.String/2004016611,I,D,java.lang.String/2004016611)POST/olympian/testServiceHTTP/1.1Host:192.168.22.120Content-Type:text/x-gwt-rpc;charset=utf-8X-GWT-Permutation:4DE825BB25A8D7B3950D45A81EA7CD84X-GWT-Module-Base:http://192.168.22.120/olympian/Content-Length:2627|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.1200//OK[1,["Name:param_Bobparam_Smith\nAge:32\nWeight:76.6\nBio:param_\"Im_a_test\"\n"],0,7][+]Summary====================Showing1/5ServicesShowing1/25Methods
看完上述内容,你们掌握如何映射Google Web Toolkit的攻击面的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!