使用JSRPC实现前端加密破解,自动化加密,网络安全零基础入门到精通实战教程!

前言

当我们遇到一些前端加密的时候,通常我们会去逆向JS,找到加密函数,然后使用burp插件或者python实现加密,这样我们还需要扣一些细节去补环境,下面介绍利用JSRPC的方法(只需要找到加密函数)实现加密

JSRPC就是远程调用协议,简单来说就是我们可以本地编写代码去调用浏览器的JS加密函数,我们就不需要去考虑函数的具体逻辑了

实现过程

这里以人人网为例,首先可以看到有几个参数是加密的

在这里插入图片描述

这里经过测试,其中appKey是固定的,password为md5加密,callId是时间戳,我们只需要获取sig值就可以

我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~

经过测试后发现sig的加密函数在这里,我们只需要s和r.secretKey,s就是需要加密的字段,控制台可以直接打印出格式,后面的为固定值

在这里插入图片描述

我们先用编写一下服务端的代码,用来输入待加密的字符串,交给浏览器去加密并传回来打印

import sys
import asyncio
import websockets
async def receive_message(websocket):
	while True:
		send_text = input("请输入要加密的字符串:")
		if send_text == "exit":
			print("退出!")
			await websocket.send(send_text)
			await websocket.close()
			sys.exit()
		else:
			await websocket.send(send_text)
			response_text = await websocket.recv()
			print("加密结果:", response_text)
start_server = websockets.serve(receive_message, "127.0.0.1", 8088)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

这里启动一下

在这里插入图片描述

然后我们就去把客户端代码注入到网页中,这里方法有很多,我使用的是浏览器开发者工具 Overrides 重写功能

打开F12,点击Sources-Overrides-Select folder for Overrides添加一个文件夹用来存放改写后的js脚本

在这里插入图片描述

弹出的界面选择允许就好

然后切到Page,找到相关js文件,右键选择Override content,插入WebSocket客户端的代码

在这里插入图片描述

然后添加我们的websocket客户端代码,Ctrl+s保存就好

(function () {
	var ws = new WebSocket("ws://127.0.0.1:8088")
	var secretKey = "bcceb522717c2c49f895b561fa913d10" //加密函数所需要的参数,为固定值直接定义了
	ws.onmessage = function(evt) {
		console.log("收到消息:" + evt.data);
		var dataObject = JSON.parse(evt.data); // 将字符串转换为js对象
		if (evt.data == "exit"){
				ws.close();
			}else{
		ws.send(ze.getSign(dataObject,secretKey));//加密后发给服务端,dataObject就是s
		}
	}
}
)();

在这里插入图片描述

启动以后,需要到浏览器刷新一下页面,就可以后端输入加密的字段进行加密了,对比最开始请求包里面的sig值发现完全一样

在这里插入图片描述

进行自动加密

先改动下我们服务端脚本

import asyncio
import websockets

connected = set()
async def server(websocket):
	connected.add(websocket)
	try:
		async for message in websocket:
			for conn in connected:
				if conn != websocket:
					await conn.send(message)
	finally:
		connected.remove(websocket)
start_server = websockets.serve(server, "127.0.0.1", 8089)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

再使用python启动一个web服务,添加一个接口来进行加密

import asyncio
import json
import websockets
from flask import Flask,request
app = Flask(__name__)
loop = asyncio.get_event_loop()

async def encode(message):
	# 连接 websocket 并发送消息 获取相应
	async with websockets.connect("ws://127.0.0.1:8088") as websocket:
		await websocket.send(message)
		return await websocket.recv()
def get_encrypt(message):
	return str(loop.run_until_complete(encode(message)))

@app.route('/encrypt', methods=['POST'])
def encode_str():
	if request.is_json:
		data_dict = {}
		data = request.get_json()
		data_dict['user'] = data.get('user')
		data_dict['password'] = data.get('password')
		data_dict['appKey'] = data.get('appKey')
		data_dict['sessionKey'] = data.get('sessionKey')
		data_dict['callId'] = data.get('callId')
		dataobject = json.dumps(data_dict)

		return get_encrypt(dataobject)

if __name__ == '__main__':
	app.run(port=5001)

这里启动好两个脚本,我们使用burp构造一下数据包来提交到加密接口即可实现自动加密,burp有个插件(autodecode)可以联合使用,具体可以自行百度

在这里插入图片描述

在这里插入图片描述

RPC框架

Sekiro

链接:https://github.com/yint-tech/sekiro-open

SEKIRO是一个多语言的、分布式、网络拓扑无关的服务发布平台,通过书写各自语言的handler将功能发布到中心API市场,业务系统通过 RPC的方式使用远端节点的能力

JSRPC

链接:https://github.com/jxhczhl/JsRpc

原理:在网站的控制台新建一个WebScoket客户端链接到服务器通信,调用服务器的接口,服务器会发送信息给客户端,客户端接收到要执行的方法执行完js代码后把内容发回给服务器,服务器接收到后再显示出来

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述
在这里插入图片描述

👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)
在这里插入图片描述
在这里插入图片描述

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:
在这里插入图片描述
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
在这里插入图片描述

👉5.黑客必读书单👈

在这里插入图片描述

👉6.网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
在这里插入图片描述

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值