网页抓取解密(前后端分离的网站接口被加密了怎么办?)

优采云 发布时间: 2022-04-18 21:01

  网页抓取解密(前后端分离的网站接口被加密了怎么办?)

  一.前言

  最近在调试一个前后端分离的网站时,接口被加密了,原来是未加密的。就是结果json中的消息,一堆乱码。解密js一定是必须的。

  

  二.浏览器打开需要微信授权才能登录的网页

  第一步是卡住。此页面需要在微信中打开。如何在chrome浏览器中打开它。采集了一些信息。贴的时候忘记了信​​息的来源,这里是我自己做的详细步骤,很简单。

  这里测试一个链接,只是百度的:

  /mobile/game/miraclepan/pan.jsp?panId=2881&wuid=243430

  直接用PC浏览器打开会被拦截识别。

  

  第一步打开fiddler拦截所有请求,打开PC版微信。用PC微信打开这个链接

  

  点击同意,然后查看fiddler,如图操作。(貌似可以直接在PC浏览器打开第一个以open.weixin开头的网页。)这种方式可能会导致部分功能不可用或者浏览器控制台报错。

  

  接下来就可以在PC的默认浏览器中看到授权提示了。点击授权后,即可在浏览器中自由调试微信网页。

  

  三.简单的js调试

  首先,我没有看系统教程,只是一些简单的文章之类的。只用一点chrome控制台调试断点,不是很复杂。

  第一张图中的接口是访问页面渲染数据的接口。json数据中消息的key值一定是需要解密的东西,所以我们需要查看js代码将消息移动到哪里。进入目标页面会加载一个单独的js。命名为 126.js

  

  

  下一个。在这个js文件中找到消息移动到哪里,然后看图操作

  

  这时候就设置了断点,浏览器返回进入这个页面,这里js会被打断。鼠标悬停在断点上会有提示。点击提示输入断点调用的相关代码。

  

  这时候点击下图浮动的地方,wybzd这个地方。查看如何调用代码来处理此消息。

  

  

  

  处理消息的js代码差不多就到这里了。使用AES加密和解密,一种对称加密和解密,加密和解密都使用密码。

  t为密码,this.BVDCVojLpQEGLytM为调用该函数时传入的参数。求这个变量的值。它是第一次找到消息的地方,应该只使用第一个密钥。我不知道在哪里使用其他键

  

  关键是:“8NONwyJtHesysWpM”

  接下来,让我们验证密钥是否正确。

  任意百度AES在线加解密网站。填写密钥、密文、解密方法进行计算

  ECB 模式,pkcs7padding 填充,结果字符集 utf-8。最终结果如图,解密完成。本教程到此结束。

  

  四.总结

  微信页面OAuth2.0授权登录可以看到官方文档和阮一峰网络日志。

  /mobile/game/miraclepan/pan.jsp?panId=2881&wuid=243430 访问该网页时,后台有进程会检查请求源是否在微信浏览器中。如果没有,请在微信客户端打开链接。如果在微信客户端的浏览器中显示,则允许用户主动授权。我们使用fiddler跳过直接判断客户端环境是否在微信客户端浏览器中,直接提示用户授权。授权后,后端被我们欺骗。还真以为是在客户端浏览器环境下,然后就可以畅通无阻了,但实际环境不是微信客户端环境,通过jssdk调用的功能可能有限。我还没有测试过。

  这次js混淆加密真的很简单,处理消息的地方只有一处。还加载了一个单独的文件。只有一层调用关系,加密方式也不是很复杂,但这些东西接触时间长了只会有一些敏感的直觉。哈哈,我才刚开始,挺有意思的,总结一下。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线