JS逆向新技术--JSRPC

声明

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!由于本人水平有限,如有理解或者描述不准确的地方,还望各位大佬指教!!

介绍

JSRPC意思就是远程调用js代码,全称 Remote Procedure Call,是一种技术思想而非一种规范或协议。

优点:可以让我们直接调用浏览器环境下的js加密或解密函数,免去了扣加密逻辑的时间,和避免很多本地用node去执行js所出现的各种问题,比如说环境缺失等问题

缺点:必须开着浏览器

RPC 技术是非常复杂的,对于我们搞逆向的来说,不需要完全了解,只需要知道这项技术如何在逆向中应用就行了。

使用方法

这里我就推荐黑脸大佬的资源:https://github.com/jxhczhl/JsRpc#jsrpc-hliang

懒得看的大佬们,可以看下我的总结:

下载文件及资源:

1.首先下载编译好的文件,下载地址:https://github.com/jxhczhl/JsRpc/releases/tag/Windows

2.下载resouces/JsEnv.js(客户端注入的环境)

使用步骤

  1. 直接双击打开编译好的文件,开启服务。

  1. 注入JS,构建通信环境
    复制JsEnv.js代码到控制台

  1. 注入ws与方法

// 连接通信
var demo = new Hlclient("ws://127.0.0.1:12080/ws?group={}&name={}");   group和name可以随便取名字
// 注册一个方法 第一个参数为方法名,
// 第二个参数为函数,resolve里面的值是想要的值(发送到服务器的)
// param是可传参参数,可以忽略
demo.regAction("{方法名}", function (resolve, param) {
  var res_v = ck();
  resolve(res_v);
})
  1. 访问接口,获得数据

接口:http://127.0.0.1:12080/go?group={}&name={}&action={方法名}&param={参数}

实战

网站:aHR0cDovL3NwaWRlci53YW5nbHVvemhlLmNvbS9jaGFsbGVuZ2UvNg=

上面说到rjspc技术可以避免环境缺少问题。这一道题就是检测环境的。

通过进行抓包分析发现cookie参数v是加密的。

对Cookie进行hook。在控制台输入hook代码,刷新网页。

进入断点,跟栈分析。ct.update就是加密函数。找到加密函数那接下来就进入使用步骤。

1.开启服务

2.注入JS,构建通信环境(注意有时要放开断点)

4.访问接口,获得数据

可以看到参数已经从服务器返回。直接通过requests可以发起get请求获取数据。

注意点:浏览器和程序要保持长通信,不要刷新代码注入的网页,控制台可以关,但是注入的网页不可以关。

接下来我们完成这一道题。

总结

这道题是检测环境,但我们完全没有扣代码和补环境,直接调用接口就得到了加密参数。这正是JSRPC的好用之处,但该扣的还是得扣,该补的还是得补,这个技术只是为了方便我们在逆向不出来的时候用,还是推荐使用逆向方法增加自己的实力。目前如果不去逆向JS来实现加密参数的话,用得最多的就是自动化工具了,比如 Selenium、Puppeteer 等,很显然这些自动化工具配置繁琐、运行效率极低,而RPC技术不需要加载多余的资源,稳定性和效率明显都更高,RPC不需要考虑浏览器指纹、各种环境,如果风控不严的话,高并发也是能够轻松实现的,相反,由于RPC是一直挂载在同一个浏览器上的,所以针对风控较严格的站点,比如检测 UA、IP 与加密参数绑定之类的,那么RPC 调用太频繁就不太行了。总之 RPC 技术还是非常牛的,除了JS逆向,且没有针对RPC进行检测的话,可以说是目前比较万能、高效的方法了,一定程度上真正做到了加密参数一把梭!!

各位大佬觉得本文写的不错的话,可以一键四连哦。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值