2 Star 5 Fork 1

Ripper / JSRPC

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

JsRPC

-- js逆向之远程调用(rpc)免去抠代码补环境

tip:懒得自己编译的 ,releases中有已经编译好的包 (win、Linux、MacOS的都有~)

目录结构

-- main.go (服务器的主代码)
-- resouces/JsEnv.js (客户端注入js环境)

基本介绍

运行服务器程序和js脚本 即可让它们通信,实现调用接口执行js获取想要的值(加解密)

实现

原理:在网站的控制台新建一个WebScoket客户端链接到服务器通信,调用服务器的接口 服务器会发送信息给客户端 客户端接收到要执行的方法执行完js代码后把获得想要的内容发回给服务器 服务器接收到后再显示出来

说明:本方法可以https证书且支持wss

在https的网站想要新建WebSocket连接如果是连接到普通的ws可能会报安全错误,好像连接本地(127.0.0.1)不会报错~ 可以用本地和wss 你自己看着玩

  1. 无https证书者。直接编译main.go 我试了一下,发现使用本地ip(127.0.0.1)可以在https的网站直接连接ws使用 默认端口12080
  2. 有https证书者。修改main.go文件 把r.Run()注释掉,把r.RunTls注释取消掉 并且参数设置证书的路径 直接输入名字就是当前路径 默认端口:12443

另外的题外话,有域名没证书不会搞的 或者有域名有公网(非固定IP的)都可以搞成的,自己研究研究

食用方法

打开编译好的文件,开启服务

如下图所示

image.png

api 简介

  • /list :查看当前连接的ws服务
  • /ws :浏览器注入ws连接的接口
  • /result :获取数据的接口 (数据格式json: {"group":"hhh","hello":"好困啊yes","name":"baidu","status":"200"} )

说明:接口用groupname来区分 如 ws://127.0.0.1:12080/ws?group={}&name={} //注入ws的例子 groupname都可以随便

示例接口

http://127.0.0.1:12080/go?group=hhh&name=baidu&action=hello&param=yes

参数解析说明

http://127.0.0.1:12080/go?group={}&name={}&action={}&param={}

这是调用的接口 groupname填写上面注入时候的,action是注册的方法名,param是可选的参数(这个参数完全取决于console注入的方法)

注入JS,构建通信环境

打开JsEnv 复制粘贴到网站控制台(注意有时要放开断点)

image

注入ws与方法

// 连接通信
var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=hhh&name=baidu");
// 注册一个方法 第一个参数hello为方法名,
// 第二个参数为函数,resolve里面的值是想要的值(发送到服务器的)
// param是可传参参数,可以忽略
demo.regAction("hello", function (resolve, param) {
    var c = "好困啊" + param;
    resolve(c);
})

image

访问接口,获得数据

http://127.0.0.1:12080/go?group=hhh&name=baidu&action=hello&param=yes
// 其中 hello是会变的 是action名字。 用代码访问的时候要注意这个名字
{
  "group":"hhh",
  "hello":"好困啊yes",
  "name":"baidu",
  "status":"200"
}

image

食用方法

控制台直接注入方法

  1. resouces/JsEnv.js代码完全复制,在浏览器f12控制台直接粘贴回车即可
  2. 将上方的注入ws与方法 同样的复制然后在控制台粘贴回车

油猴脚本

推荐使用油猴脚本在浏览器外部挂载js,示例代码:https://greasyfork.org/zh-CN/scripts/440234-%E6%8A%96%E9%9F%B3json-rpc

MIT License Copyright (c) 2022 Ripper Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

jsrpc,在浏览器开启一个ws和服务连接,以请求http接口的形式来和浏览器通信 ,浏览器端收到调用通信执行原先设置好的js代码并获得返回值。 展开 收起
Go 等 3 种语言
MIT
取消

发行版 (3)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/ripperTs/jsrpc.git
git@gitee.com:ripperTs/jsrpc.git
ripperTs
jsrpc
JSRPC
master

搜索帮助