jsRpc js逆向远程调用加密函数

  1. rpc介绍:

    RPC 全称 Remote Procedure Call——远程过程调用,简单说就是为了解决远程调用服务的一种技术,使得调用者像调用本地服务一样方便透明;
    使用RPC服务就可以直接在浏览器中的页面js中注入代码,将其作为一个客户端,本地相当于一个服务端,就可以实现js免破解,相当于黑盒的逆向调用,还是有相当大的场景;

  2. jsRpc

    RPC服务自己写,比较麻烦,有现有的轮子jsRpc git地址可以直接使用,使用方法及其案例在git中都有记录

  3. 使用步骤及注意点
    a: 在JsRpc Releases下载地址下载exe应用,然后双击打开服务;

    b:在chrome检查中的sources找到js逆向中的加密字段,然后通过overrides重写该js文件,也可以使用其他方法,然后再overrides中把这个加密方法进行window.方法名称(自定义)= 加密字段,将加密方法暴露到全局,然后保存该文件,手动刷新网页就可以加载重写之后的js文件;
    图1-1
    c:如果临时测试也可以直接在chrome检查的console控制台进行手动处理,将github中的/resouces/JsEnv_De.js中的js代码直接放到console加载执行下, 并且使用js代码生成一个rpc链接 ;

    var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=weibo");
    

    d:在console控制台上,可以手动试下暴露出来的全局方法,看是否可正常使用,可以正常使用的话,就可以在console控制台上进行注册rpc

    //window.hlg 就是暴露出来的加密方法;
    demo.regAction("password_jiami", function (resolve,param) {
        //这里还是param参数 param里面的key 是先这里写,但到时候传接口就必须对应的上
        var res = window.hlg(param['password']);
        console.log(res);    
        resolve(res);
    });
    

    e:然后创建一个python脚本,去调用注册的方法password_jiami,代码如下:

    import requests
    
    # js_code = """
    # (function(){
    #     console.log("test")
    #     return "执行成功"
    # })()
    # """
    #
    # url = "http://localhost:12080/execjs"
    # data = {
    #     "group": "zzz",
    #     "code": js_code
    # }
    # res = requests.post(url, data=data)
    # print(res.text)
    
    import json
    
    url = "http://127.0.0.1:12080/go"
    data = {
        "group": "weibo",
        "action": "password_jiami",
        "param": json.dumps({'password': 55555555})
    }
    print(data["param"]) #dumps后就是长这样的字符串{"user": "\u9ed1\u8138\u602a", "status": "\u597d\u56f0\u554a"}
    res=requests.post(url, data=data) #这里换get也是可以的
    print(res.text)
    # resp = requests.get("http://127.0.0.1:12080/page/html?group=zzz")     # 直接获取当前页面的html
    # resp = requests.get("http://127.0.0.1:12080/page/cookie?group=zzz")   # 直接获取当前页面的cookie
    # print(resp)
    

    f:如果调用顺利,就可以返回响应加密字段了;

  4. JsRpc 中的js代码直接注入加密的js文件中,方便实现自动化,进行脚本代码调用;
    a: 在overrides中对加密js文件的文件头上添加JsRpc中的/resouces/JsEnv_De.js中的代码;

    b:然后对加密js代码进行注册服务,可以参考我的代码;
    在这里插入图片描述
    具体代码如下:

    (function () {
        window.hlg = function (Password){
             return Jh("".concat([rp(), np()].join("	"), "\n").concat(Password), s.pubkey)
         };
         var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=weibo");
         demo.regAction("password_jiami", function (resolve,param) {
             //这里还是param参数 param里面的key 是先这里写,但到时候传接口就必须对应的上
             var res = window.hlg(param['password']);
             console.log(res);    
             resolve(res);
         });
     }
     )();
    

    c: 代码重新保存之后,一定要对网页进行刷新, 才可以使用重写之后的js文件(如果加密的js文件名称会发生变化,可以考虑使用油猴,或者抓包平台进行js代码文件重写);

    d:然后再使用python脚本去调用就好了;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/660244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

真实故障分享,H3C ER3208G3-X路由器-双绞线一闪一停

六类非屏蔽双绞线 网线钳 如上图所示,2号线接到h3c路由器出现网线一闪一停,用对线器测试一到8芯能一一对应,无法上网。2号线接到h3c交换机能正常上网,难道是网线对568A 568B有要求? 解决方式:通过两端568…

电脑丢失api-ms-win-crt-runtime-l1-1-0.dll的多种修复方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“api-ms-win-crt-runtime-l1-1-0.dll丢失”。这个错误通常发生在Windows操作系统中,它表示一个动态链接库文件丢失或损坏。这个问题可能会导致某些应用程序无法正常运行&#xf…

synchronized 锁的到底是什么?

通过8种情况演示锁运行案例,看看我们到底锁的是什么 1锁相关的8种案例演示code package com.bilibili.juc.lock;import java.util.concurrent.TimeUnit;/*** 题目:谈谈你对多线程锁的理解,8锁案例说明* 口诀:线程 操作 资源类* 8…

代码随想录算法训练营第36期DAY43

DAY43 343整数拆分 注意:当几个数的数值相近,乘积才会尽可能地大(好想:数一大一小,最大当然是自己乘以自己) 代码随想录官方题解: class Solution {public: int integerBreak(int n) { …

【Tlias智能学习辅助系统】01 准备工作

Tlias智能学习辅助系统 01 创建员工、部门表创建springboot工程,引入对应的起步依赖(web、mybatis、mysql驱动、lombok)准备 Mapper、Service、Controller 等基础结构MapperServiceControllerpojo封装类application.properties 接口开发规范 创建员工、部门表 -- 创…

前端调用exe程序配置

前置条件 访问端安装好需要调用的exe程序 1、新建reg文件 先新建一个txt文件,重命名为xx.reg 点击是,确认更改 2、编写注册表内容 右键点击文件,用记事本打开,输入以下内容 将下面的${exeName}修改为自定义的程序名&#x…

Web开发中,就session和cookie相比,用session比用cookie的优点有哪些?

在Web项目中,session和cookie都是用于存储用户数据的机制,但它们有不同的优缺点。使用session比使用cookie有以下几个主要优点: 1. 安全性更高 敏感数据保护:Session数据存储在服务器端,而不是客户端。这样&#xff…

Nginx教程(持续更新中~)

浏览器优先查看host文件中的映射,如果host中没有就会从网上CDN找该域名对应的ip,但是目前使用的www.123.com是外卖假设的,CDN中并没有,所以就采用host中填写 第二种weight: 第三种 ip_hash: 第四种 fair: ​​​​​​

倩女幽魂手游攻略:新人入坑必看指南!

《倩女幽魂》是一款经典的MMORPG游戏,凭借其丰富的剧情、精美的画面和多样的玩法,吸引了众多玩家。在游戏中,提升角色等级和战斗力是每个玩家的核心目标。本文将详细介绍如何在游戏中快速提升角色等级、增强实力,并提供一些实用的…

MyBatisPlus学习笔记(二)

条件构造器: Wrapper的作用就是来封装我们当前的条件的 删除用的和查询用的一样:QueryWrapper 和 LambdaQueryWrapper MyBatis-Plus分页插件的配置和使用 Ctrl H 查看当前接口或者类的一个继承关系 Ctrl P 分页插件 乐观锁和悲观锁 通用枚举 代码…

leetcode 1270 向公司CEO汇报工作的所有人(postgresql)

需求 员工表:Employees ---------------------- | Column Name | Type | ---------------------- | employee_id | int | | employee_name | varchar | | manager_id | int | ---------------------- employee_id 是这个表的主键。 这个表中每一行中,e…

基于k-NN + GCN的轴承故障诊断模型

目录 往期精彩内容: 创新点: 前言 1 轴承故障数据的预处理 1.1 导入数据 1.2 数据预处理,制作数据集 2 基于Pytorch的GCN轴承故障诊断 2.1 定义GCN分类网络模型 2.2 设置参数,训练模型 2.3 模型评估 代码、数据如下&…

AI大模型探索之路-实战篇10:数据预处理的艺术:构建Agent智能数据分析平台的基础

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

关于眼图(复试笔试考过,工作常用测试手段)

一、什么是眼图 眼图是 一系列数字信号 在示波器上累积而显示的图形,它包含了丰富的信息,从眼图上可以观察出码间串扰和噪声的影响,体现了 数字信号整体的特征,从而估计系统优劣程度,因而眼图分析是 高速互连系统 信…

调试记录-U盘枚举失败之LPM影响

现象 板子接部分U盘出现枚举失败,看log像是硬件信号问题,如: [ 29.186464] usb usb3-port1: Cannot enable. Maybe the USB cable is bad? [ 30.079624] usb usb3-port1: Cannot enable. Maybe the USB cable is bad? [ 30.080200]…

QT7_视频知识点笔记_67_项目练习(页面以及对话框的切换,自定义数据类型,DB数据库类的自定义及使用)

视频项目:7----汽车销售管理系统(登录,品牌车管理,新车入库,销售统计图表)-----项目视频没有,代码也不全,更改项目练习:学生信息管理系统。 学生信息管理系统&#xff1…

部署ELK日志分析系统——超详细

ELK日志分析系统 文章目录 ELK日志分析系统资源列表基础环境一、环境准备二、部署Elasticsearch软件2.1、安装Elasticsearch软件2.2、加载系统服务2.3、更改Elasticsearch主配置文件2.4、创建数据存放路径并授权2.5、启动Elasticsearch2.6、查看节点信息 三、安装Elasticsearch…

普乐蛙VR大型航天科普馆VR博物馆太空舱模拟体验馆

主题科普馆、学校、家长、同学们看过来!!想身临其境体验太空漫游、登陆月球、探索月球地貌吗?!以新颖有趣的VR设备体验形式,可以在寓教于乐中学习太空知识、亲自收集月球土壤等等。接下来,就让小编带大家乘…

DSM驾驶行为分析系统在渣土车管理中的应用

随着科技的不断进步,智能交通系统正逐渐成为现代交通管理的重要工具。其中,DSM驾驶行为分析系统以其独特的功能和优势,在提升驾驶安全性、优化驾驶员管理等方面发挥着重要作用。索迪迈科技将DSM驾驶行为分析系统成功应用于渣土车管理中&#…

借助Kong记录接口的请求和响应内容

和APISIX类似,Kong也是一个Api GateWay。 运行在调用Api之前,以插件的扩展方式为Api提供管理, 如 鉴权、限流、监控、健康检查等. Kong是基于Lua语言、Nginx以及OpenResty开发的,拥有动态路由、负载均衡、高可用、高性能、熔断(基…