RPC调用获取参数值

进阶的可以看:https://baijiahao.baidu.com/s?id=1725536000710059774&wfr=spider&for=pc

本文以 RPC 获取百度登录password加密值为例:

涉及的知识点有:

  1.js调试,寻找加密代码

  2. 浏览器本地代码替换

  3. js自执行函数

  4. 插桩

  5. RPC 远程调用

  6. python websocket ,js websocket

 

一.寻找百度登录password 加密代码

1.找加密代码

 2. 加密代码的位置

 

 

二.js本地替换

1.浏览器--> Overides--->select floder for overides--> 选择目录---> 会弹出权限允许按钮--> 点击允许--> 未格式化的js文件右键—》 save for overrides--> 复制格式好的代码到未格式的js文件中(替换)--》保存

 

 

 

 

 

 

三.将自执行websockect 客户代码注入到本地js加密文件中(加密前一句,添加)

  js自执行函数

  闭包自执行函数,不污染全局变量

!(function () {
    
})();

1. 将需要写的逻辑代码加入到自执行函数中

web.js

复制代码
!(function () {

    // 导出函数e,从而能外部调用
    window.deng=e;

    var ws = new WebSocket("ws://127.0.0.1:5678");
    ws.onopen=function (ev) {

    };

    ws.onmessage =function (ev) {
        //收到客户端的信息,并对其进行加密
        var pwd = window.deng.RSA.encrypt(ev.data);
        // 向客户端发送加密后的信息
        console.log(pwd);
        ws.send(pwd)

    };


})();
复制代码

 2. 将上面web.js中的代码加入本地js文件中并保存本地替换插桩

 

 3. 开启python websocket 服务端

服务端server.py 代码:

复制代码
import asyncio
import websockets

async def echo(websocket, path):
    # cnt = 0
    while True:
        #要发送的消息
        msg = input("send=>")
        #给客户端发信息
        await websocket.send(msg)
        try:
            message = await websocket.recv()
            print(f"加密前{msg}\n加密后:{message}")
            print("==================")
        except Exception as e:
            print(e)
        # await asyncio.sleep(1)



start_server = websockets.serve(echo, '127.0.0.1', 5678)  # 地址改为你自己的地址
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
server.py
复制代码

 

 4. 开启浏览器客户端

web.js的代码已经注入到本地js中,作为客户端

(1)刷新百度页面,重新进入百度登录页面,点击登录

 

 

 

5. python服务端发送明文密码后:

 

posted @   冰底熊  阅读(401)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2018-12-12 41 MYSQL 索引和慢查询优化
点击右上角即可分享
微信分享提示