今天分享一下某Bo的登录参数超简单获取方法
本文章没有任何排版,请各位食客将就使用,还请各位大佬指教我这小白首先放上登录地址,大家都知道地址的,其次推荐大家使用Chrome在保存到本地JS时依旧可以打断点aHR0cHM6Ly93ZWliby5jb20vbG9naW4ucGhw
我们先抓包
这个请求发起了一个post请求
这是带参数的一个请求名字也刚好叫Login.php
我们分析一下这个参数,在这里参考了一下网上的教程
全局搜索
看到搜索到了一些信息,我们挨个点击去分析,第一个点进去后,我们格式化文档一下,在点一次刷新
可以看到第一个41行是=null了,直接在267和788行打上断点,然后
在点登录时断点卡在了788上,往下跟了两步发现请求的参数全部出现了,(用的微信截图,没办法截鼠标放上的参数,各位自己跟着做到这里然后仔细观察一下吧)
现在我们知道参数是从这里取到加密后的了,往上滑一下找到这个方法
看到我们输入的账号和密码了,a账号,b密码,(c是固定数,d是固定值)这两个参数一直没变假设他们是固定值
参数很多补环境是很恶心的事情,就像我用的C#想补js环境不出问题,还是比较麻烦的,
这样根据网上的参考,我们直接返回到没格式化的JS文件中,替换一下JS,他这个JS文件会每隔一小时重命名一次,也是比较麻烦的
我们对着没格式化的JS文件右键有一个Save for overrides
如果你的没有,首先在资源这个选项卡中切换到Overrides然后添加一个文件夹上,点了2选择文件夹以后会在上边弹出一个通知,获取完整访问权,点击允许
这个时候在点Save for Overrides ,然后我们打开我们保存下来了,格式化一下,然后切换到刚刚 767行,在这一行上我们创建一个WebSocket客户端连接
JS代码
!function()
{
if(window.flagLx){}
else{
window.weiboLX=makeRequest;
var ws=newWebSocket("ws://127.0.0.1:9998");
window.flagLx=true;
ws.open=function(evt){};
ws.onmessage=function(evt){
var lx=evt.data;
var result=lx.split(",");
var res=window.weiboLX(result,result,7,false);
ws.send(JSON.stringify(res));
}
}
}();
这个时候我们在创建一个服务端,各位根据自己的喜好来使用不同的语言吧,我比较中意C#,现在使用C#来写了
用的第三方Nuget包是Fleck,代码有点潦草我从我代码里抠出来拼装的,各自根据自己顺手的编程语言来写就行
WebSocketServer _server = new WebSocketServer("ws://127.0.0.1:9998");
_server.Start(socket =>
{
socket.OnOpen = () =>
{
_sockets.Add(socket);
};
socket.OnClose = () =>
{
_sockets.Remove(socket);
};
socket.OnMessage = message =>//接受消息处理
{
Console.WriteLine(message)
};
socket.OnError = error =>
{
throw error;
};
});
public void Send(string message)
{
foreach (var socket in _sockets)
{
socket.Send(message);
}
}
//上边这一段放到窗机加载事件或者你看着给一个触发事件了,
//按钮点击发送
private void button2_Click(object sender, EventArgs e)
{
socket?.Send("123123,123");
}
然后我们需要先刷新页面,在网页输入账号密码点登录这样会连接上我们写的服务端了,然后用我们写好的服务端给客户端发送一个(账号,密码)因为我们的JS是根据,来分割的
这个我就随便打一下码了,这样我们就获得到了Post请求的参数,同理可用于某音的直播消息类
feiyu361 发表于 2023-5-11 11:31
写了,但连接不上
index.py:46: DeprecationWarning: There is no current event loop
asyncio.get_ev ...
import Asyncio
import websockets
import timeAsync
def check_permit (websocket ) :
#账号列表
for send text in ['111111111111,111','111111111112,112','1111111111113,113','1111111111114,114']
await websocket .send (send text)
return True
Async def recv_msg (webSocket) :
while 1:
recv text = await webSocket .recv()
print(recv text)
Async def main_logic(webSocket, path):
await check_permit(webSocket)
await recv_msg(webSocket)
start_server =websockets.serve (main_logic,'127.0.0.1',9998)
Asyncio.get event_loop() .run_until_complete(start_server)
Asyncio.get_event_loop().run_forever()
代码差不多就这意思,我复制来的,多少可能缺标点符号,需要你自己补充一下了 wanxu 发表于 2023-5-11 11:22
写一个websocket连接JS上这一段就可以了啊
写了,但连接不上
index.py:46: DeprecationWarning: There is no current event loop
asyncio.get_event_loop().run_forever()
就在这里一直等待,我wb的页面也刷新,点击登录,但不行 太好了,谢谢大师分享,学习一下! 有没有python版本的呢? Python脚本 需要 feiyu361 发表于 2023-5-11 11:05
有没有python版本的呢?
写一个websocket连接JS上这一段就可以了啊 感谢,很有帮助{:1_893:} 厉害👍 wanxu 发表于 2023-5-11 14:30
import Asyncio
import websockets
import timeAsync
不错,可以了,谢谢
页:
[1]
2