今天分享一下某Bo的登录参数超简单获取方法

查看 30|回复 0
作者:wanxu   
本文章没有任何排版,请各位食客将就使用,还请各位大佬指教我这小白首先放上登录地址,大家都知道地址的,其次推荐大家使用Chrome在保存到本地JS时依旧可以打断点
aHR0cHM6Ly93ZWliby5jb20vbG9naW4ucGhw
我们先抓包


1.png (64.11 KB, 下载次数: 0)
下载附件
2023-5-10 08:51 上传

这个请求发起了一个post请求


2.jpg (41.54 KB, 下载次数: 0)
下载附件
2023-5-10 08:53 上传

这是带参数的一个请求名字也刚好叫Login.php
我们分析一下这个参数,在这里参考了一下网上的教程
全局搜索


3.png (64.64 KB, 下载次数: 0)
下载附件
2023-5-10 08:58 上传

看到搜索到了一些信息,我们挨个点击去分析,第一个点进去后,我们格式化文档一下,在点一次刷新


4.png (112.75 KB, 下载次数: 0)
下载附件
2023-5-10 09:03 上传

可以看到第一个41行是=null了,直接在267和788行打上断点,然后


5.png (76.77 KB, 下载次数: 0)
下载附件
2023-5-10 09:05 上传

在点登录时断点卡在了788上,往下跟了两步发现请求的参数全部出现了,(用的微信截图,没办法截鼠标放上的参数,各位自己跟着做到这里然后仔细观察一下吧)
现在我们知道参数是从这里取到加密后的了,往上滑一下找到这个方法


6.png (61.36 KB, 下载次数: 0)
下载附件
2023-5-10 09:10 上传

看到我们输入的账号和密码了,a账号,b密码,(c是固定数,d是固定值)这两个参数一直没变假设他们是固定值
参数很多补环境是很恶心的事情,就像我用的C#想补js环境不出问题,还是比较麻烦的,
这样根据网上的参考,我们直接返回到没格式化的JS文件中,替换一下JS,他这个JS文件会每隔一小时重命名一次,也是比较麻烦的
我们对着没格式化的JS文件右键有一个Save for overrides  
如果你的没有,首先在资源这个选项卡中切换到Overrides然后添加一个文件夹上,点了2选择文件夹以后会在上边弹出一个通知,获取完整访问权,点击允许


7.png (28.25 KB, 下载次数: 0)
下载附件
2023-5-10 09:19 上传

这个时候在点Save for Overrides ,然后我们打开我们保存下来了,格式化一下,然后切换到刚刚 767行,在这一行上我们创建一个WebSocket客户端连接


8.png (32.63 KB, 下载次数: 0)
下载附件
2023-5-10 09:23 上传

JS代码
[JavaScript] 纯文本查看 复制代码!function()
{
    if(window.flagLx){}
    else{
        window.weiboLX=makeRequest;
        var ws=new  WebSocket("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[0],result[1],7,false);
            ws.send(JSON.stringify(res));
        }
    }
}();
这个时候我们在创建一个服务端,各位根据自己的喜好来使用不同的语言吧,我比较中意C#,现在使用C#来写了
用的第三方Nuget包是Fleck,代码有点潦草我从我代码里抠出来拼装的,各自根据自己顺手的编程语言来写就行
[C#] 纯文本查看 复制代码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是根据,来分割的


9.png (19.32 KB, 下载次数: 0)
下载附件
2023-5-10 09:35 上传

这个我就随便打一下码了,这样我们就获得到了Post请求的参数,同理可用于某音的直播消息类

下载次数, 下载附件

您需要登录后才可以回帖 登录 | 立即注册

返回顶部