溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何映射Google Web Toolkit的攻擊面

發(fā)布時間:2021-12-23 10:05:17 來源:億速云 閱讀:180 作者:柒染 欄目:網(wǎng)絡(luò)管理

如何映射Google Web Toolkit的攻擊面,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

GWTMap

GWTMap是一款針對GWT的安全審計工具,在它的幫助下,廣大研究人員不僅可以對基于Google Web Toolkit(GWT)的應(yīng)用程序進(jìn)行安全審計,而且還可以使用GWTMap來映射這類應(yīng)用程序的攻擊面。該工具的主要功能是幫助廣大研究人員提取出隱藏在現(xiàn)代GWT應(yīng)用程序混淆客戶端代碼中的任何服務(wù)方法節(jié)點,并嘗試生成GWT-RPC請求樣例Payload來與這些應(yīng)用程序進(jìn)行交互。

依賴環(huán)境

腳本的正常運行需要Python3環(huán)境以及argparse和requests庫。在安裝并配置好Python3環(huán)境之后,我們可以使用下列命令來安裝相應(yīng)的依賴組件:

python -m pip install -r requirements.txt

幫助菜單

$ ./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              顯示幫助信息并退出

  --version               顯示程序版本號并退出

  -u <TARGET_URL>, --url <TARGET_URL>

                        目標(biāo)GWT地址

  -F <FILE>, --file <FILE>

                        本地拷貝文件路徑

  -b <BASE_URL>, --base <BASE_URL>

                        給定組合文件的URL基地址

  -p <PROXY>, --proxy <PROXY>

                        HTTP代理URL地址URL,比如說:-p http://127.0.0.1:8080

  -c <COOKIES>, --cookies <COOKIES>

                        訪問遠(yuǎn)程資源所需的cookie,比如說:'JSESSIONID=ABCDEF; OTHER=XYZABC'

  -f <FILTER>, --filter <FILTER>

                        輸出過濾,比如說:-f AuthSvc.checkSession

  --basic                啟用HTTP Basic認(rèn)證

  --rpc                 針對每一個方法生成序列化RPC請求

  --probe               發(fā)送HTTP探測請求來測試每一個方法

  --svc                 顯示枚舉服務(wù)信息和方法

  --code                導(dǎo)出給定資源的're-formatted'狀態(tài)

  --color                啟用終端輸出顏色高亮顯示

  --backup [DIR]         創(chuàng)建獲取代碼的本地拷貝

  -q, --quiet             啟用靜默模式(最小化輸出)

 

執(zhí)行樣例: ./gwtmap.py -u "http://127.0.0.1/example/example.nocache.js" -p "http://127.0.0.1:8080" --rpc

工具使用

通過目標(biāo)的Bootstrap文件來枚舉一個遠(yuǎn)程應(yīng)用程序中的方法,并創(chuàng)建目標(biāo)代碼的本地備份(隨機(jī)選擇排列):

./gwtmap.py -u http://192.168.22.120/olympian/olympian.nocache.js --backup

通過特定的代碼組合枚舉遠(yuǎn)程應(yīng)用程序中的方法:

./gwtmap.py -u http://192.168.22.120/olympian/C39AB19B83398A76A21E0CD04EC9B14C.cache.js

通過一個HTTP代理枚舉目標(biāo)應(yīng)用程序的路由流量方法:

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

枚舉任意給定組合的本地文件拷貝中的方法:

./gwtmap.py -F test_data/olympian/C39AB19B83398A76A21E0CD04EC9B14C.cache.js

對特定服務(wù)或方法進(jìn)行輸出過濾:

./gwtmap.py -u http://192.168.22.120/olympian/olympian.nocache.js --filter AuthenticationService.login

針對已過濾的服務(wù)中所有的方法生成RPC Payload,輸出數(shù)據(jù)帶有顏色高亮顯示:

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

針對所有已過濾服務(wù)方法自動測試(探測)生成的RPC請求:

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

完整使用樣例

在這個樣例中,我們針對“testDetails”方法來生成了一個RPC請求,然后實現(xiàn)針對服務(wù)的自動化探測:

$ ./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

看完上述內(nèi)容,你們掌握如何映射Google Web Toolkit的攻擊面的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI