220620【JS 逆向百例】中烟新商盟登陆001

查看 153|回复 11
作者:flashspring520   
220620【JS 逆向百例】中烟新商盟登陆001逆向目标
  • 目标:中烟新商盟登陆参数密码的加密解密
  • 链接:https://www.xinshangmeng.com/xsm2/?Version=2022052100
  • 简介:主要对加密的函数的提取,找到加密的地方,分析加密函数,提取重要的js代码进行还原加密算法。



    image-20220620081109723.png (503.22 KB, 下载次数: 0)
    下载附件
    2023-1-10 23:02 上传

    逆向参数
  • 逆向的目标主要是j_mcmm 参数,调用的加密方法仍然是b = F(F(b) + c);,要进到F函数体观察是怎么进行加密的,并提取加密函数体。



    image-20220620081535507.png (188.14 KB, 下载次数: 0)
    下载附件
    2023-1-10 23:03 上传

  • 通过在1126行进行断点,重新发送一次请求,使断点停留在这个函数的地方,第一次停留断点的地方1135,b参数是加密后的,我们要看没有加密前b和c的值,通过在控制台输出b和c:可以看出b是输入的明文密码,c是输入的验证码,从函数字面上理解:先对明文密码b执行F函数,结果再加上验证码c,当做参数,再执行F函数,得到加密后的结果:874096a27eb8571f24936cc9dc30cd1。



    image-20220620082333559.png (210.03 KB, 下载次数: 0)
    下载附件
    2023-1-10 23:03 上传

  • 下面通过点击进入下一个函数调用按钮或F11进入到F函数的函数体中,可以看到F(b)就是对函数d(a)的调用进行的加密,里面return返回的就是第一次对明文b进行加密的结果:



    image-20220620083028453.png (180.79 KB, 下载次数: 0)
    下载附件
    2023-1-10 23:03 上传

  • 拆分这个函数d(a),可以分别执行了以下一些函数:
  • m(a + "{1#2$3%4(5)6@7!poeeww$3%4(5)djjkkldss}")
  • o(m(a + "{1#2$3%4(5)6@7!poeeww$3%4(5)djjkkldss}"))
  • e(o(m(a + "{1#2$3%4(5)6@7!poeeww$3%4(5)djjkkldss}")), 32)
  • n(e(o(m(a + "{1#2$3%4(5)6@7!poeeww$3%4(5)djjkkldss}")), 32))




    image-20220620083635647.png (86.68 KB, 下载次数: 0)
    下载附件
    2023-1-10 23:03 上传

  • 下面就是扣js代码,把用到的相关的函数体全部扣取出来,复制到乐易助手中进行调用测试,通过测试并加入自己写的函数encrypt_pwd(),可以正确的还原出加密的算法逻辑,至此,js代码的分析和扣取结束。



    image-20220620084003766.png (75.61 KB, 下载次数: 0)
    下载附件
    2023-1-10 23:03 上传

    函数, 下载次数

  • rhci   

    阿祖,收手吧,外面全是警察。
    aa361611002   


    52896009 发表于 2023-1-11 07:56
    加密完了入户解密的呢

    这个是验证手段,不需要加密,   网页后台也是通过同样的加密得到结果跟你提交的结果对比,是否一样,来验证你这个包是否可用的.
    tanzhijun8   

    谢谢分享
    52896009   

    加密完了入户解密的呢
    istat   

    谢谢分享。
    guyuelintian   

    谢谢分享
    zhugyun08   

    谢谢分享
    chaojiak47   


    52896009 发表于 2023-1-11 07:56
    加密完了入户解密的呢

    他这个post 登录不需要解密
    zqczqczqc   

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

    返回顶部