专栏首页Python编程与实战JS逆向 | 防脱发的秘诀

JS逆向 | 防脱发的秘诀

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

进入正题拉,这个是我们今天要破解的网站:https://m.beibei.com/login/login.html

分析

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

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

请求

响应

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

破解

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

下断点

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

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

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

重发请求:

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

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

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

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

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

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

再去浏览器输出查看结果

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

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

代码结构很类似!

a.HMAC = r.extend()

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

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

下面是用 Python 实现的:

import hamc

def c(g, key):
    return hmac.new(key.encode("utf-8"), msg=g.encode("utf-8"), digestmod=hashlib.sha1).hexdigest()

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

总结

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

本文分享自微信公众号 - Python编程与实战(pthon1024)

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用Python在工作中“偷懒”

    这类工作大部分是重复性工作,但占据了你比较多的时间,有时候用蛮力做的事情,可以有更省时省力的办法。

    数据森麟
  • 【Pytorch】谈谈我在PyTorch踩过的12坑

    1. nn.Module.cuda() 和 Tensor.cuda() 的作用效果差异

    zenRRan
  • 如何使用简单的Python为数据科学家编写Web应用程序?

    可以转到本地URL:localhost:8501在浏览器中,查看Streamlit应用程序的运行情况。开发人员提供了一些不错的演示,请花点时间并感觉一下工具的功...

    代码医生工作室
  • 实战:基于技术分析的Python算法交易

    本文是用 Python 做交易策略回测系列文章的第四篇。上个部分介绍了以下几个方面内容:

    AI科技大本营
  • Python做量化|使用AlgoPlus接收期货实时行情

    金融领域也是 Python 的重要方向之一,我知道有一些读者就是冲着做量化交易才接触 Python 的。今天给大家分享一个使用 Python 的期货交易API。

    Crossin先生
  • PyTorch踩过的12坑 | CSDN博文精选

    1. nn.Module.cuda() 和 Tensor.cuda() 的作用效果差异

    AI科技大本营
  • 不到70行Python代码,轻松玩转RFM用户分析模型(附案例数据和代码)

    本文从RFM模型概念入手,结合实际案例,详解Python实现模型的每一步操作,并提供案例同款源数据,以供同学们知行合一。

    CDA数据分析师
  • MYSQL 主从不一致怎么办?

    MYSQL 中主从不一致是很可能发生的,而怎么能发现不一致则并不是一个很简单的问题。尤其对数据量较大的情况下。废话说多无益,看下面的例子:

    AustinDatabases
  • 用 Python 监控知乎和微博的热门话题

    本文来自编程教室的一名学员 TED 同学,这是他目前正在参与的项目开发小组中的一部分工作,涉及到一些常用的爬虫方法。今天拿出来跟大家分享一下。

    Crossin先生
  • 使用python来实现报表自动化

    安装xlwt :在终端中输入pip install xlwt或者easy_install xlwt

    数据森麟

扫码关注云+社区

领取腾讯云代金券