新聞中心
前言
jsrpc是指在瀏覽器開啟一個ws和go服務(wù)連接,以調(diào)用http接口的形式來通信,瀏覽器端收到調(diào)用通信執(zhí)行原先設(shè)置好的js代碼。可以用于js逆向調(diào)用加密函數(shù)直接返回結(jié)果,也可以用來直接獲取數(shù)據(jù)。

創(chuàng)新互聯(lián)主營長陽網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,長陽h5微信小程序搭建,長陽網(wǎng)站營銷推廣歡迎長陽等地區(qū)企業(yè)咨詢
該工具和代碼,已經(jīng)上傳到git,下載即可用。
下載地址:https://github.com/jxhczhl/JsRpc#jsrpc-hliang
代碼目錄結(jié)構(gòu)
-- main.go (服務(wù)器的主代碼)
-- resouces/JsEnv.js (客戶端注入js環(huán)境)
基本介紹
運(yùn)行服務(wù)器程序和js腳本,即可讓它們通信,實(shí)現(xiàn)調(diào)用接口執(zhí)行js獲取想要的值(加解密)
實(shí)現(xiàn)
原理:在網(wǎng)站的控制臺新建一個WebScoket客戶端鏈接到服務(wù)器通信,調(diào)用服務(wù)器的接口 服務(wù)器會發(fā)送信息給客戶端 客戶端接收到要執(zhí)行的方法執(zhí)行完js代碼后把獲得想要的內(nèi)容發(fā)回給服務(wù)器 服務(wù)器接收到后再顯示出來
說明:本方法可以https證書且支持wss
在https的網(wǎng)站想要新建WebSocket連接如果是連接到普通的ws可能會報安全錯誤,好像連接本地(127.0.0.1)不會報錯~ 可以用本地和wss 你自己看著玩。
無https證書者。直接編譯main.go,我試了一下,發(fā)現(xiàn)使用本地ip(127.0.0.1)可以在https的網(wǎng)站直接連接ws使用 默認(rèn)端口12080。
有https證書者。修改main.go文件 把r.Run()注釋掉,把r.RunTls注釋取消掉 并且參數(shù)設(shè)置證書的路徑 直接輸入名字就是當(dāng)前路徑 默認(rèn)端口:12443。
另外的題外話,有域名沒證書不會搞的 或者有域名有公網(wǎng)(非固定IP的)都可以搞成的,自己研究研究。
使用方法
首先下載編譯好的文件,下載地址:https://github.com/jxhczhl/JsRpc/releases/tag/Windows
直接雙擊打開編譯好的文件,開啟服務(wù)。
api 簡介
- /list :查看當(dāng)前連接的ws服務(wù)
- /ws :瀏覽器注入ws連接的接口
- /result :獲取數(shù)據(jù)的接口 (數(shù)據(jù)格式j(luò)son: {"group":"hhh","hello":"好困啊yes","name":"baidu","status":"200"} )
說明:接口用?group和name來區(qū)分 如注入ws的例子 ws://127.0.0.1:12080/ws?group={}&name={}, group和name都可以隨便,這是調(diào)用的接口:http://127.0.0.1:12080/go?group={}&name={}&action={}?m={},group和name填寫上面注入時候的,action是注冊的方法名,param是可選的參數(shù)。
注入JS,構(gòu)建通信環(huán)境
打開JsEnv 復(fù)制粘貼到網(wǎng)站控制臺(注意有時要放開斷點(diǎn))。
注入ws與方法
// 連接通信
var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=hhh&name=baidu");
// 注冊一個方法 第一個參數(shù)hello為方法名,
// 第二個參數(shù)為函數(shù),resolve里面的值是想要的值(發(fā)送到服務(wù)器的)
// param是可傳參參數(shù),可以忽略
demo.regAction("hello", function (resolve, param) {
var c = "好困啊" + param;
resolve(c);
})
訪問接口,獲得數(shù)據(jù)
http://127.0.0.1:12080/go?group=hhh&name=baidu&action=hello¶m=yes
// 其中 hello是會變的 是action名字。 用代碼訪問的時候要注意這個名字
{
"group":"hhh",
"hello":"好困啊yes",
"name":"baidu",
"status":"200"
}
總結(jié)
大家好,我是黑臉怪。 這篇文章主要給大家介紹jsrpc,文章的理論性很強(qiáng),看上去十分的粗獷,不過別擔(dān)心,接下來我給大家出幾篇關(guān)于使用jsrpc來進(jìn)行逆向的文章,針對實(shí)際的網(wǎng)站應(yīng)用此工具,讓大家加深對該工具的理解和認(rèn)識。點(diǎn)擊閱讀原文,即可可以前往項(xiàng)目git地址。
jsrpc是指在瀏覽器開啟一個ws和go服務(wù)連接,以調(diào)用http接口的形式來通信,瀏覽器端收到調(diào)用通信執(zhí)行原先設(shè)置好的js代碼??梢杂糜趈s逆向調(diào)用加密函數(shù)直接返回結(jié)果,也可以用來直接獲取數(shù)據(jù)。日后用在爬蟲中,可以事半功倍。
網(wǎng)頁題目:Python網(wǎng)絡(luò)爬蟲之js逆向之遠(yuǎn)程調(diào)用(rpc)免去摳代碼補(bǔ)環(huán)境簡介
網(wǎng)頁路徑:http://www.dlmjj.cn/article/ccesgoj.html


咨詢
建站咨詢
