页面重新加载JS方法 重新加载js文件( 二 )


5.发送验证码发送验证码是一个 POST 请求 , 其参数也比较简单 , Query String Parameters 里的 token 是第3步获取的 token , Form Data 里的 encrypt_mobile 是第4步获取的加密后的账号 , 返回的数据是验证码发送的状态 , 例如:{‘retcode’: 20000000, ‘msg’: ‘succ’, ‘data’: []} 。
6.校验验证码校验验证码是一个 POST 请求 , 其参数也非常简单 , Query String Parameters 里的 token 是第3步获取的 token , Form Data 里的 encrypt_mobile 是第4步获取的加密后的账号 , code 是第5步收到的验证码 , 返回数据是一个 JSON , retcode 和 msg 代表校验的状态 , redirect url 是校验步骤完成后接着要访问的页面 , 在下一步中要用到 , 返回的数据示例:
{"retcode": 20000000,"msg": "succ","data": {"redirect_url": "https://login.xxxx.com.cn/sso/login.php?entry=xxxxx&returntype=META&crossdomain=1&cdult=3&alt=ALT-NTcxNjMyMTA2OA==-1630292617-yf-78B1DDE6833847576B0DC4B77A6C77C4-1&savestate=30&url=https://xxxxx.com"}}7.访问 redirect url这一步的请求接口其实就是第6步返回的 redirect url , GET 请求 , 类似于:
https://login.xxxx.com.cn/sso/login.php?entry=xxxxx&returntype=META……
返回的数据是 HTML 源码 , 我们要从中提取 crossdomain2 的 URL , 提取的结果类似于:
https://login.xxxx.com.cn/crossdomain2.php?action=login&entry=xxxxx…… , 同样的 , 这个 URL 也是接下来需要访问的页面 。
8.访问 crossdomain2 url这一步的请求接口就是第7步提取的 crossdomain2 url , GET 请求 , 类似于:
https://login.xxxx.com.cn/crossdomain2.php?action=login&entry=xxxxx……
返回的数据同样是 HTML 源码 , 我们要从中提取真正的登录的 URL , 提取的结果类似于:
https://passport.xxxxx.com/wbsso/login?ssosavestate=1661828618&url=https…… , 最后一步只需要访问这个真正的登录 URL 就能实现登录操作了 。
9.通过 passport url 登录这是最后一步 , 也是真正的登录操作 , GET 请求 , 请求接口就是第8步提取的 passport url , 类似于:
https://passport.xxxxx.com/wbsso/login?ssosavestate=1661828618&url=https……
返回的数据包含了登录结果、用户 ID 和用户名 , 类似于:
({"result":true,"userinfo":{"uniqueid":"5712321368","displayname":"tomb"}});自此 , WB的完整登录流程已完成 , 可以直接拿登录成功后的 cookies 进行其他操作了 。
加密密码逆向在登录流程中 , 第2步是获取加密后的密码 , 在登录的第3步获取 token 里 , 请求的 Query String Parameters 包含了一个加密参数 sp , 这个就是加密后的密码 , 接下来我们对密码的加密进行逆向分析 。
直接全局搜索 sp 关键字 , 发现有很多值 , 这里我们又用到了前面讲过的技巧 , 尝试搜索 sp=、sp: 或者 var sp 等来缩小范围 , 在本案例中 , 我们尝试搜索 sp= , 可以看到在 index.js 里面只有一个值 , 埋下断点进行调试 , 可以看到 sp 其实就是 b 的值:
PS:搜索时要注意 , 不能在登录成功后的页面进行搜索 , 此时资源已刷新 , 重新加载了 , 加密的 JS 文件已经没有了 , 需要在登录界面输入错误的账号密码来抓包、搜索、断点 。
继续往上追踪这个 b 的值 , 关键代码有个 if-else 语句 , 分别埋下断点 , 经过调试可以看到 b 的值在 if 下面生成:


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: