2022-03-16 17:39:43 +08:00

108 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

通讯+调用
程序A加密 程序B
内存共享 本地RPC
窗口消息 本地RPC长度有限制
串口通讯 com口
通讯管道 本地RPC (防止多开) 对我们不可见
网络 tcp/ip 远程RPC
程序a 浏览器http ws 任意语言开发的软件
打开浏览器 --》控制浏览器(开发者人员工具 谷歌远程调试协议)--》注入js代码window 加密算法(作用域不是全局的))
https://www.cnblogs.com/breakyizhan/p/13282613.html
远程弊端:对于环境检测效果不好,容易被检测,多线程不如扣代码,出去没法装逼
优点:省略扣代码的过程
rpc 任意语言开发的软件控制浏览器调用网站的加密结果
## python 编写 websockets
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
message = "I got your message: {}".format(message)
await websocket.send(message)
asyncio.get_event_loop().run_until_complete(websockets.serve(echo, 'localhost', 8765))
asyncio.get_event_loop().run_forever()
测试网站
http://coolaf.com/tool/chattest
websockets 地址
ws://127.0.0.1:8765
## 案例百度登陆
找到RSA加密地方
e.RSA.encrypt('111111111111111')
![debugger](../img/61.png)
将js保存到本地替换
![debugger](../img/62.png)
进行js注入
if (e.RSA && e.rsakey) {
var s = o;
!function () {
window.ayf = e;
var ws = new WebSocket("ws://127.0.0.1:9999");
ws.onopen = function (evt) {
};
ws.onmessage = function (evt) {
ws.send(window.ayf.RSA.evcrypt(evt.data))
};
ws.onclose = function (evt) {
};
}();
s.length < 128 && !e.config.safeFlag && (i.password = baidu.url.escapeSymbol(e.RSA.encrypt(s)),
i.rsakey = e.rsakey,
i.crypttype = 12)
}
python 服务端代码
import asyncio
import websockets
import time
async def echo(websocket, path):
while True:
t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
await websocket.send(t)
msg = await websocket.recv()
print(msg)
await asyncio.sleep(10)
asyncio.get_event_loop().run_until_complete(
websockets.serve(echo, '127.0.0.1', 9999))
asyncio.get_event_loop().run_forever()