某度登录js逆向

作者: Imjustatraveler | 来源:发表于2021-07-04 18:39 被阅读0次

    如有侵权,请联系我删除


    1、引言

            本文章只做分析,不提供源码

    2、分析

            首先看一下登录链接和需要什么参数

    登录链接 参数1 参数2

    好了,看login的参数初步我们需解决(token, password, rsakey, ds, tk, dv, fuid, sig, shaOne, rinfo)

    参数太多了,我们一个一个参数进行分析(注:下面分析的参数返回值不一定和上图的一样,原因是我边调试边写文章)

    2.1 token参数生成

    token

    token的参数需要解决的有(gid, sig, shaOne)

    先看比较简单一点的gid是怎么生成的

    全局搜索发现只有三个js出现gid

    全局搜索gid

    发现gid引用的是下图这个方法

    gid生成

    还是通过全局搜索方法找shaOne参数

    sig和shaOne参数生成

    好了,找到这我们验证下是否是在这个函数生成的,清除缓存强制刷新页面

    和上图加密后的值一样,确定是从这个函数加密出来的

    剩下的就是常规的操作了,一步一步扣代码就好了。

    2.2 password参数生成

              再生成password参数之前先要找到rsakey是哪里生成的

    rsakey rsakey

    可以看出password就是rsa算法加密出来的

    password加密

    2.3  ds和tk参数生成

    login的ds和tk

    他是由viewlog接口返回的,现在我们看下viewlog接口需要什么参数,由下图看起来我们需要解决(as,fs, sb,tk)参数

    可以看到as是由viewlog接口,那上一个viewlog是怎么有as的呢?现在我们清除缓存再刷新页面看看

    as参数接口

    发现只需传ak参数就可以获取as返回值,注:虽然这个接口也返回了ds和tk,但这两个值不是login接口的

    我们先定位到生成viewlog参数的地方,全局搜索viewlog

    然后我们看下sb参数是由o赋值的,json格式化一下

    mv 好像是鼠标移动的像素点,cr好像是一些页面参数

    rzData初始化的地方 sb参数生成的地方

    找到sb参数生成的地方,代码我就不详细说了

    而fs是由aes加密生成出来的,key是as加appspi0,values是sb

    tk参数则是上一个viewlog返回值

    ds和tk总结:

            1. 首先访问viewlog接口。参数ak=31a4dfdeb6509f5257bcac99b7be676a

             2. 再访问viewlog接口, 参数如下:

                    as=上个viewlog接口返回的as

                    fs=通过aes加密,key是as加appspi0,values是sb

                    sb=鼠标移动的像素点,以及一些浏览器参数,详细请看sb参数生成的地方

                    tk=上个viewlog接口返回的tk

    2.4  dv参数生成

            通过全局搜索定位到dv赋值的地方,发现是window.LG_DV_ARG.dvjsInput进行赋值的

        再次通过全局搜索dvjsInput关键字,定位到生成的地方

     通过堆栈,找到e的参数生成

          

     后面就靠自己扣代码了

    2.5  fuid 和rinfo参数生成

        通过fuid = 关键词找到fuid生成的地方

        

    浏览器指纹

        总结,fuid参数:先生成浏览器指纹,通过aes加密,rinfo:将fuid参数传入_0x2ca40c函数进行加密

        如不知浏览器指纹是什么请自行百度

    2.6  sig, shaOne

        请参考2.1   token生成,只是传入的参数不一样而已

    3、Python代码

            

    个别Python代码

    4、测试

        

    5、js转Python代码注意的点

            5.1  &,>>  需要通过ctypes.c_int库执行

             5.2  >>> 需要js2py第三方库进行转换

    相关文章

      网友评论

        本文标题:某度登录js逆向

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