专栏首页咸鱼学PythonPython爬虫进阶必备 | 关于某查猫查询参数的加密逻辑分析

Python爬虫进阶必备 | 关于某查猫查询参数的加密逻辑分析

关于某查猫查询参数的加密逻辑分析

先上链接:

aHR0cHM6Ly93d3cucWljaGFtYW8uY29tLw==

抓包分析

找到要分析的参数,通过首页的检索栏,输入企业名称关键字点击查询就可以抓到类似下面的两个包。

上图标记出来的mfccode就是需要分析的加密参数

同样的我留意到在上图选中的上一个请求,看着像加密的请求,接下来通过断点来分析是否为加密位置

加密定位

在这个请求上打上XHR 断点

重新发起请求之后就能看到成功断上

通过分析堆栈找到下图这个位置找到了加密的位置

通过断点可以找到加密生成的地方

或者在堆栈的位置找到下图这个位置也可以快速定位到加密的位置

加密分析

找到加密的位置后接下来就要分析加密的逻辑了,打上断点可以看到这里进入了一个VM

我们复制到美化网站中格式化后分析

在编辑器中可以大致看到这段代码对cookie中的qznewsite.uid字段进行了操作

最后将 dc方法的结果返回给了window.__qzmcf,这个和我在网页上断点的结果相对应

只要能跑通这段 js 就可以完成这段加密了。

经过修改可以正常运行了,主要解决的就是关于 node 中调用 window、document 的问题

但是将结果带入到 Python 代码里并没有如预期一样返回搜索结果,而是返回了登陆的界面,这个结果让我十分费解。

刚刚开始一直以为是我爬虫代码的问题,之后突然想到,这个 js 代码是由对方返回给客户端的,所以这个 js 代码应该动态的。

经过对比,发现mov以及sk的长数组都是动态的,或许还有其他的代码是动态的不过这间接的验证了我的猜测。

所以 js 加密的代码写死调用是没有办法完成破解的,想通这一点,我只要将返回回来的 js 代码动态的调用就可以了。

第一步、将 cookie 传入,替换为第一次访问首页返回的 cookie 即可,不过之后测试这一步貌似没有验证,直接写死也是可以的。

第二步、将服务端返回的动态调用,只要在静态的代码基础上小修一下就行了,例如声明windowdocument这些操作,之前的文章均有提及

第三步、调用window.__qzmcf这个方法,完成加密参数的生成

完成上面的步骤之后重新调用就可以正确拿到网页的结果了。

总结

有两周没有练习 js 逆向了所以分析的逻辑有点乱,不过大致的分析流程都是类似的,这里一定要说的就是学习 js 真的不吃亏,很多地方都有用到。

这个网站就这个加密参数有点意思,改写 js 的思路值得学习。

今天就到这里,下次再会~

本文分享自微信公众号 - 咸鱼学Python(xianyuxuepython),作者:煌金的咸鱼

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

原始发表时间:2020-06-05

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Js 逆向进阶 | 浅谈 Js 代码保护

    原文:https://blog.csdn.net/feibabeibei_beibei/article/details/98232069

    咸鱼学Python
  • JS逆向 | 助力新手 , 两个JS逆向喂饭教程

    这周在读者群顺手搞了个小活动,在群里摸鱼的时候有水友说练手系列能不能来点简单的写详细点。

    咸鱼学Python
  • Python | Python学习之常用项目代码(一)

    本篇是咸鱼日常撸视频的时候记录的一些代码实例,可以直接运用到项目中但是有些代码的可用性没有那么好,旨在分享思路,不喜勿喷~

    咸鱼学Python
  • Web 前端常用专有名词的正确拼写

    本文遵守创作共享CC BY-NC-SA 4.0协议 网络平台如需转载必须与本人联系确认。

    Joel
  • webpack入门——webpack的安装与使用

    一、简介 1、什么是webpack webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/s...

    用户1174387
  • 小游戏内存优化与性能优化

    ? | 导语 听说你的小游戏内存超标?进来了解一下吧。 本文主要跟大家一起来探讨一下Cocos Creator小游戏开发过程中内存优化、性能优化和包体优化。 ...

    腾讯NEXT学位
  • webpack入门

    前言:这两天在网上找了些视频和资料学习webpack,最后发现官网上的教程原来就写得很好,只是都是全英文的一开始不想去看。。。。今天认真看了下官网教程,然后总结...

    Ewall
  • webpack最简单的入门教程里bundle.js之运行单步调试的原理解析

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • Webpack前世今生

    在网页开发的早期,js制作作为一种脚本语言,做一些简单的表单验证或动画实现等,那个时候代码还是很少的。那个时候的代码是怎么写的呢?直接将代码写在<script>...

    说故事的五公子
  • webpack4 入门

    源码地址 https://github.com/lilugirl/learn-webpack4/tree/master/3

    lilugirl

扫码关注云+社区

领取腾讯云代金券