美文网首页
Python爬虫进阶JS逆向贝贝网登录

Python爬虫进阶JS逆向贝贝网登录

作者: GoPython | 来源:发表于2019-08-07 09:00 被阅读0次

    hello,大jia好,又到了练手时间了,这是我给大伙分享的第…篇逆向文章。前面的几篇猛戳下面:

    Python爬虫之JS逆向入门篇
    JS逆向之新榜登录
    JS逆向之国航登录

    据说点好看的人最后变得更好看了!
    好了,进入正题拉,这个是我们今天要破解的网站:https://m.beibei.com/login/login.html

    分析

    Chrome 开发者工具我觉得还是有必要学一下的,毕竟工欲善其事,必先利其器。做好爬虫,做好 JS 逆向,工具是第一位。
    先看抓包情况:

    image

    这个是最终登录的请求,what? 密码居然是明文,checkcode 是图片验证码,那么就只有一个加密参数 beibeitoekn。
    先别急着一把梭,一看到加密参数就去搜索。首先把整个过程的请求数据都点开看看,因为有时候加密参数是前面的请求响应中返回的,比如这种有时效性 token 一般是服务器用来做校验,先发给客户端,客户端再 POST 给服务器,在服务器端再进行校验

    image image

    so~,最终我们的方向就是破解第一个请求,眨眼一看 Form Data 里面也没有加密参数呀。
    注意看上面 Params 里面有个 abr 加密参数,关键点就是破解它了

    破解

    这是 XHR 请求,好办!直接下 XHR 断点:

    image

    <figcaption style="margin: 10px 0px 0px; padding: 0px; line-height: inherit; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">下断点</figcaption>

    再点登录之后,你就会看下请求被断下来了。

    image

    再往下点几下,你就能发下关键点

    image

    最终结果是由函数 m 生成的,点进去,下断点

    image

    重发请求:

    image

    前面几个加密函数都不用管,只是一个简单的转换,重点在 l["default"],找到函数位置,点击进去

    image

    接下来就正式进入扣代码环节,

    image

    继续往下走,注意发现关键的地方

    image

    很明显的标识了,还扣什么代码呀!是不是嫌弃头发太多???直接先来个验证吧!这个是我们传过去的参数,将它记录下来

    image

    然后我们用 Python 代码来实现一下

    1>>>ts = "username=17775731459&scene=h5_login&rams_device_id=2972225991"
    2>>>import hashlib
    3>>>res = hashlib.md5(ts.encode("utf-8")).hexdigest()
    4>>>res
    5'8afdca35566e68fd7821aed42cab7ae0'
    

    再去浏览器输出查看结果

    image

    Bingo! 完全正确。这就完了?? 憋高兴太早,后面还有一步加密

    image

    感觉这个套路也是一样的!难道也是调用的加密模块!结果如何,请继续往下看

    image

    代码结构很类似!

    1a.HMAC = r.extend()
    

    HMAC!也是一种哈希算法,Hmac 和普通 Hash 算法非常类似。Hmac 输出的长度和原始哈希算法的长度一致。Python 自带的 Hmac 模块也实现了标准的 Hmac 算法

    image

    同样的为了头发,我选择放弃扣代码,直接用 Python 来实现
    先找准传入参数 和 salt,其中传入的参数是上一步生成的,salt 调用加密函数的原文中,可以输出看下

    image

    下面是用 Python 实现的:

    1 import hamc
    2
    3 def c(g, key):
    4    return hmac.new(key.encode("utf-8"), msg=g.encode("utf-8"), digestmod=hashlib.sha1).hexdigest()
    

    这一步加密的验证结果,自己动手试试吧。将代码整合到一起,成功获取到了 token

    image

    总结

    对于加密的 JS 代码比较多的, 能用 Python 中的加密算法实现就尽量用。这其实也是一种防脱发秘诀,当然你头发比较多的话,可以忽略,去尝试扣下 JS 代码,也不是不可以!

    相关文章

      网友评论

          本文标题:Python爬虫进阶JS逆向贝贝网登录

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