专栏首页咸鱼学PythonJS逆向 | 练手吗?头秃的那种。

JS逆向 | 练手吗?头秃的那种。

咸鱼又来练手了,需求在这:

想想有点激动:

分析请求

用浏览器抓一波登陆包:

可以看到有 _abr_beibeitoken 两个加密参数。

我们再找找发现beibeitoken是上一个请求返回的:

好像难度一下减少了一半。

定位加密位置

还是老套路,搜就完事了:

通过关键字就找到一个相关文件,先进去看看。

先打上断点,重新登录一下,成功进入断点说明位置十有八九是找到了,F11进去看看里面的加密逻辑是什么样的。

看上去逻辑还蛮简单的,就是先这样再那样然后拼接在一起返回回来,完事儿~

分析加密

我们一个个跟进去研究下:

u,d,a,e,s这几个加密都可以通过上图的方法追踪到对应的加密。

这里我们主要研究fm的加密逻辑。

先看看f的加密逻辑:

1var f = d.length ? (0,l["default"])(d.join("&")) : ""

这里跟进去看看l["default"]是什么:

这里的e是初始化加密算法,我们再跟进去看看:

看到这里我已经不怎么想扣代码了,这么多乱七八糟的什么东西,要是真抠出来估计头发要掉一半。

而且这个代码看着也不像自写的算法,估计也是套的通用的那几种算法,所以我开始翻之前扣过的代码,果然让我找到了:

上面的代码是不是长得有点像,为了验证这个想法我把js里关于加密的代码扣下来look look

不得不说好的编辑器可以让你事半功倍,看到图中划线的地方这个参数的加密方法就一目了然了。

我们可以直接把它改成Python实现:

from hashlib import md5
def md5value(s):
    a = md5(s.encode()).hexdigest()
    return a

接下来继续分析m的加密方法:

1m = (0,c["default"])(g, "ytU7vwqIx2UXQNsi");

有了上面的铺垫,我们继续追进去分析一波:

接下里就是编辑器表演的时候了

好了,到这里就破案了,接下来你可以用Python实现也可以直接使用Node的CryptoJS加密实现。

下次练(tou)手(tu)再见~

本文分享自微信公众号 - 咸鱼学Python(xianyuxuepython)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于字符串处理,你真的全掌握了吗?

    字符串处理是 Python 中最基本的操作之一了,但其实有些用法你真的可能没有注意到,这里分享一篇关于 Python 字符串处理的总结文章,希望对大家有帮助。

    崔庆才
  • 用 Python 鉴别色色的图片

    Win10 系统下 Python3,编译器是 Pycharm,需要安装 nonude 这个库。

    一墨编程学习
  • java8 异步api、循环、日期

    转载请注明出处:https://www.cnblogs.com/funnyzpc/p/10801470.html

    上帝
  • python---调包的方式总结

    用户5745385
  • 20行Python代码实现能够机器学习的鸡汤句智能生成器

    但其实上面这些鸡汤句子全都是电脑生成的,而且其生成鸡汤文所用的程序还不到 20 行 Python 代码。

    一墨编程学习
  • python-字符串处理

    我们想把其中的日期改为美国日期格式'mm/dd/yyyy'.比如 2019-06-12 改成 06/12/2019 格式

    阿dai学长
  • Anaconda模块简介

    刚开始学Python的时候,我用的是其自带的idle(安装Python后,在开始菜单里可以找到),后来发现在sublime中设置环境后也可以编辑Pyth...

    用户5745385
  • 用了几年 Python,但你可能连这个都没学透

    在 Python 中用的最多的可能就是 import 了,几乎我们写的每个 Python 脚本都是需要的,但这个 import 其实也有些讲究的,比如用不好很可...

    崔庆才
  • Python奇技淫巧

    本文用作记录,在使用python过程中遇到的一些奇技淫巧,有些代码是本人所写,有些则是python内置函数,有些则取之互联网。在此记录,只为备份以及遗忘时方便查...

    一墨编程学习
  • python 对字典"排序"总结

    对字典进行排序?这其实是一个伪命题,搞清楚python字典的定义---字典本身默认以key的字符顺序输出显示---就像我们用的真实的字典一样,按照abcd字母的...

    用户5745385

扫码关注云+社区

领取腾讯云代金券