首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JsRPC:通过无缝的JavaScript远程过程调用提升前端渗透测试效率

RPC概述

什么是RPC?

全称 Remote Procedure Call——远程过程调用。

在js加密中JsRPC有什么作用?

          比如在访问网站时,我们想直接替换参数,查看有无sql注入或者想枚举密码、挖掘逻辑漏洞替换参数。但是发现参数值是加密的。此时,阅读js代码、补环境很费时费力。上手难度较大。

  这时候就可以使用JsRPC。

RPC的优点:

免去抠代码补环境。

基本流程

用户找到加密函数的位置【最重要】

在浏览器的console中输入env.js(包中自带的)

cmd中运行jsrpc程序

jsRPC

下载地址

https://github.com/jxhczhl/JsRpc

操作流程

阅读readme.md

使用流程

找到网站js中的加密处

插入Jsenv.js到console

将加密函数赋值给全局变量,和RPC建立关系

运行网站功能,用burp拦截请求包防止页面跳转

携带参数访问指定url拿到加密后的参数

案例

登陆demo 登陆密码进行加密

通过分析JS代码,发现调用了 desEncrypt 进行加密

控制台中执行,注入Client

https://github.com/jxhczhl/JsRpc/blob/main/resouces/JsEnv_Dev.js

group是组别,name是此次的名称,目的是区分每一个rpc,不过在安全测试当中没什么用处,保持固定就行了。

desEncrypt是方法名,param是传入的参数,resolve将需要的内容返回。param只能传入一个参数,类型应该是字符串。如果需要传递多个参数,需要对字符串进行截取处理。

可以直接往我们自己创建的WEB服务器发送数据, 对字符串aaa 进行加密

思考

对于前端加密这个场景JS RPC的思路可以大大节省时间,提高效率的。

不过对于漏洞挖掘,碰到有加密的场景,加密请求构造只是第一步。

后续请求Payload 怎么方便的修改并发送出去就是各位大哥的事情了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230628A026I800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券