美文网首页
知乎登录接口字段解密分析

知乎登录接口字段解密分析

作者: 夏知更 | 来源:发表于2019-10-18 18:02 被阅读0次

前言

现在是2019年10月,正在用python模拟知乎登录

随便在网上一查,模拟知乎登录时的接口都是这样的:

别人分析时的登录接口
心中一喜,看起来好简单,赶快F12打开浏览器查一下:
为防止登录后页面会重新加载,登录接口被冲洗看不见,所以首先需要勾选[Preserve log]:
勾选
先选择手机号登录,查看登录接口:
登录接口
虽然没截完全,但还是看的出来,提交的数据从以前的明文字段变成了一串字符串,应该是按照自己内部的约定逻辑进行了加密,防止信息泄露,拿到加密信息后,再解密一次,以加强信息的安全性

那我们需要分析一下这段加密信息

分析

仔细看一下登录接口:


登录

在登录时访问的完整请求是https://www.zhihu.com/api/v3/oauth/sign_in,在登录提交请求时还通过path访问了其他资源/api/v3/oauth/sign_in
分析完html页面,没有找到有关信息,无奈只能从js下手去看源码:

  • 查找
    Ctrl + Shift + f 全局搜索 v3/oauth/sign_in
    查找结果
  • 分析源码
    1)双击查找结果进入文件,Ctrl + f 局部查找``v3/oauth/sign_in`


    局部查找结果

文件中含有我们要的信息,先点击当前文件左下角{} Pretty Print 格式化代码,方便查看

function p(e) {
        return function(t) {
            return t({
                API: {
                    types: c.LOGIN,
                    endpoint: "v3/oauth/sign_in",
                    method: "POST",
                    fetchOptions: {
                        credentials: "include",
                        zsEncrypt: !0,
                        bodyType: "form",
                        body: Object(r.decamelizeKeys)(e)
                    }
                },
                NOTIFICATION: !1
            }).then(null, function(e) {
                e && e.err ? 120005 === e.err.payload.code && t(Object(i.a)()) : e.payload && 120001 === e.payload.code && t(Object(a.h)("页面已过期,请刷新重试", "red"))
            })
        }
    }

源码长这样,只要知道放在body里的是什么内容基本完成了,看到这基本源码已经没有可以下手的地方了,剩下的就需要debug完成了
2)在线debug,查看加密前信息


debug

看一下具体信息:


具体抓取信息

加密前的字段信息:

captcha: ""
clientId: "c3cef7c66a1843f8b3a9e6a1e3160e20"
grantType: "password"
lang: "en"
password: "******"
refSource: "other_https://www.zhihu.com/signin?next=%2F"
signature: "d1cfffa2bae9bf0f03dcc6fd67da8068c0cfff01"
source: "com.zhihu.web"
timestamp: 1571271780959
username: "+86***********"
utmSource: undefined

账号和密码我打码了,其他都是登录时抓取的字段:

参数 含义 处理
captcha "" 验证码模块 当验证码出现时才有值
clientId c3cef7c66a1843f8b3a9e6a1e3160e20 "" 固定
grantType password 认证类型 固定
lang en 语言 不知道
password ****** 密码 输入
refSource other_https://www.zhihu.com/signin?next=%2F 页面链接 固定
signature d1cfffa2bae9bf0f03dcc6fd67da8068c0cfff01 签名 构造
source com.zhihu.web 来源 固定
timestamp 1571271780959 时间戳 生成
username +86*********** 账号 输入
utmSource undefined

关于这些含义,有一些是可以看出来的,一些不知道含义的查过资料整理出来

相关文章

网友评论

      本文标题:知乎登录接口字段解密分析

      本文链接:https://www.haomeiwen.com/subject/sscemctx.html