|
@@ -1,19 +1,23 @@
|
|
# JsRPC-hliang
|
|
# JsRPC-hliang
|
|
|
|
+
|
|
-- js逆向之远程调用(rpc)免去抠代码补环境
|
|
-- js逆向之远程调用(rpc)免去抠代码补环境
|
|
|
|
|
|
> tip:懒得自己编译的 ,[releases](https://github.com/jxhczhl/JsRpc/releases)中有已经编译好的包 (win和Linux的都有~)
|
|
> tip:懒得自己编译的 ,[releases](https://github.com/jxhczhl/JsRpc/releases)中有已经编译好的包 (win和Linux的都有~)
|
|
|
|
|
|
## 目录结构
|
|
## 目录结构
|
|
|
|
+
|
|
-- main.go (服务器的主代码)
|
|
-- main.go (服务器的主代码)
|
|
- -- JsEnv.js (客户端-网页上的js环境)
|
|
|
|
|
|
+ -- JsEnv.js (客户端注入js环境)
|
|
|
|
+
|
|
## 基本介绍
|
|
## 基本介绍
|
|
|
|
+
|
|
运行服务器程序和js脚本 即可让它们通信,实现调用接口执行js获取想要的值(加解密)
|
|
运行服务器程序和js脚本 即可让它们通信,实现调用接口执行js获取想要的值(加解密)
|
|
|
|
+
|
|
## 实现
|
|
## 实现
|
|
|
|
|
|
-原理:在网站的控制台新建一个WebScoket客户端链接到服务器通信,调用服务器的接口 服务器会发送信息给客户端
|
|
|
|
-客户端接收到要执行的方法执行完js代码后把获得想要的内容发回给服务器 服务器接收到后再显示出来
|
|
|
|
|
|
+原理:在网站的控制台新建一个WebScoket客户端链接到服务器通信,调用服务器的接口 服务器会发送信息给客户端 客户端接收到要执行的方法执行完js代码后把获得想要的内容发回给服务器 服务器接收到后再显示出来
|
|
|
|
|
|
-> 说明:本方法可以https证书且支持wss
|
|
|
|
|
|
+> 说明:本方法可以https证书且支持wss
|
|
|
|
|
|
在https的网站想要新建WebSocket连接如果是连接到普通的ws可能会报安全错误,好像连接本地(127.0.0.1)不会报错~ 可以用本地和wss 你自己看着玩
|
|
在https的网站想要新建WebSocket连接如果是连接到普通的ws可能会报安全错误,好像连接本地(127.0.0.1)不会报错~ 可以用本地和wss 你自己看着玩
|
|
|
|
|
|
@@ -29,25 +33,23 @@
|
|
|
|
|
|
如下图所示
|
|
如下图所示
|
|
|
|
|
|
- 
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
**api 简介**
|
|
**api 简介**
|
|
|
|
|
|
- `/list` :查看当前连接的ws服务
|
|
- `/list` :查看当前连接的ws服务
|
|
- `/ws` :浏览器注入ws连接的接口
|
|
- `/ws` :浏览器注入ws连接的接口
|
|
-- `/go` :获取数据的接口 (数据格式json: {"group":"hhh","hello":"好困啊yes","name":"baidu","status":"200"} )
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+- `/result` :获取数据的接口 (数据格式json: {"group":"hhh","hello":"好困啊yes","name":"baidu","status":"200"} )
|
|
|
|
|
|
说明:接口用?group和name来区分
|
|
说明:接口用?group和name来区分
|
|
ws://127.0.0.1:12080/ws?group={}&name={}" //注入ws的例子 group和name都可以随便
|
|
ws://127.0.0.1:12080/ws?group={}&name={}" //注入ws的例子 group和name都可以随便
|
|
http://127.0.0.1:12080/go?group={}&name={}&action={}¶m={} //这是调用的接口 group和name填写上面注入时候的,action是注册的方法名,param是可选的参数
|
|
http://127.0.0.1:12080/go?group={}&name={}&action={}¶m={} //这是调用的接口 group和name填写上面注入时候的,action是注册的方法名,param是可选的参数
|
|
|
|
|
|
### 注入JS,构建通信环境
|
|
### 注入JS,构建通信环境
|
|
|
|
+
|
|
打开JsEnv 复制粘贴到网站控制台(注意有时要放开断点)
|
|
打开JsEnv 复制粘贴到网站控制台(注意有时要放开断点)
|
|
|
|
|
|
- 
|
|
|
|
|
|
+
|
|
|
|
|
|
### 注入ws与方法
|
|
### 注入ws与方法
|
|
|
|
|
|
@@ -57,14 +59,16 @@ var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=hhh&name=baidu");
|
|
// 注册一个方法 第一个参数hello为方法名,
|
|
// 注册一个方法 第一个参数hello为方法名,
|
|
// 第二个参数为函数,resolve里面的值是想要的值(发送到服务器的)
|
|
// 第二个参数为函数,resolve里面的值是想要的值(发送到服务器的)
|
|
// param是可传参参数,可以忽略
|
|
// param是可传参参数,可以忽略
|
|
-demo.regAction("hello", function (resolve,param) {
|
|
|
|
|
|
+demo.regAction("hello", function (resolve, param) {
|
|
var c = "好困啊" + param;
|
|
var c = "好困啊" + param;
|
|
resolve(c);
|
|
resolve(c);
|
|
})
|
|
})
|
|
```
|
|
```
|
|
|
|
|
|
- 
|
|
|
|
|
|
+
|
|
|
|
+
|
|
### 访问接口,获得数据
|
|
### 访问接口,获得数据
|
|
|
|
+
|
|
```dart
|
|
```dart
|
|
http://127.0.0.1:12080/go?group=hhh&name=baidu&action=hello¶m=yes
|
|
http://127.0.0.1:12080/go?group=hhh&name=baidu&action=hello¶m=yes
|
|
// 其中 hello是会变的 是action名字。 用代码访问的时候要注意这个名字
|
|
// 其中 hello是会变的 是action名字。 用代码访问的时候要注意这个名字
|
|
@@ -76,33 +80,25 @@ http://127.0.0.1:12080/go?group=hhh&name=baidu&action=hello¶m=yes
|
|
}
|
|
}
|
|
```
|
|
```
|
|
|
|
|
|
- 
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
## 食用案例-爱锭网15题
|
|
## 食用案例-爱锭网15题
|
|
|
|
+
|
|
本题解是把它ajax获取数据那一个函数都复制下来,然后控制台调用这样子~
|
|
本题解是把它ajax获取数据那一个函数都复制下来,然后控制台调用这样子~
|
|
|
|
|
|
|
|
|
|
1.f12查看请求,跟进去 找到ajax那块,可以看到call函数就是主要的ajax发包 输入页数就可以,那我们复制这个函数里面的代码备用
|
|
1.f12查看请求,跟进去 找到ajax那块,可以看到call函数就是主要的ajax发包 输入页数就可以,那我们复制这个函数里面的代码备用
|
|
|
|
+
|
|

|
|

|
|
-
|
|
|
|
-
|
|
|
|
|
|
|
|
2.先在控制台粘贴我的js环境,再注入一个rpc链接 注册一个call方法,名字自定义 第二个参数粘贴上面call的代码,小小修改一下
|
|
2.先在控制台粘贴我的js环境,再注入一个rpc链接 注册一个call方法,名字自定义 第二个参数粘贴上面call的代码,小小修改一下
|
|
先定义num=param 这样就传参进来了,再定义一个变量来保存获取到的数据,resolve(变量) 就是发送。完了就注入好了,可以把f12关掉了
|
|
先定义num=param 这样就传参进来了,再定义一个变量来保存获取到的数据,resolve(变量) 就是发送。完了就注入好了,可以把f12关掉了
|
|
-
|
|
|
|
-
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
3.调用接口就完事了,param就是传参页数
|
|
3.调用接口就完事了,param就是传参页数
|
|
|
|
+
|
|

|
|

|
|
|
|
|
|
控制台可以关,但是注入的网页不要关哦
|
|
控制台可以关,但是注入的网页不要关哦
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|