【月更25】爬虫逆向之Mytoken,技巧+经验快速解决JS机密算法

举报
梦想橡皮擦 发表于 2022/03/29 09:43:49 2022/03/29
【摘要】 📆 最近更新:2022年3月28日,橡皮擦的第 601 篇原创博客@[toc]《Python爬虫120》专栏目前进展到70+文章,接下来的一段过程我们将重点关注JS加密,APP逆向相关内容📢📢📢这个阶段会反复的涉及部分版权问题,所以我们会隐藏部分数据,目标关键词采用 Urlencode,例如:✋小红书 = %E5%B0%8F%E7%BA%A2%E4%B9%A6✋目标网址 统一采用 中...

📆 最近更新:2022年3月28日,橡皮擦的第 601 篇原创博客
@[toc]

《Python爬虫120》专栏目前进展到70+文章,接下来的一段过程我们将重点关注JS加密,APP逆向相关内容

📢📢📢
这个阶段会反复的涉及部分版权问题,所以我们会隐藏部分数据,目标关键词采用 Urlencode,例如:
小红书 = %E5%B0%8F%E7%BA%A2%E4%B9%A6

✋目标网址 统一采用 中文转 Unicode,例如本节课的案例 https://www.mytokencap.com/ = \u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0077\u0077\u0077\u002e\u006d\u0079\u0074\u006f\u006b\u0065\u006e\u0063\u0061\u0070\u002e\u0063\u006f\u006d\u002f

如果大家觉得好麻烦,请直接查看置顶评论,里面会直接展示相关数据。

📢📢📢

⛳️ 实战场景

在今天的目标站点(请自行转码: \u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0077\u0077\u0077\u002e\u006d\u0079\u0074\u006f\u006b\u0065\u006e\u0063\u0061\u0070\u002e\u0063\u006f\u006d\u002f )的请求参数中,出现了如下参数:

code: 347881f07057eb2eb6949d6a4e6efac4

首先看一下该加密内容的长度,如果未32,那大概率就是 md5 加密形式。

my_str = "347881f07057eb2eb6949d6a4e6efac4"

print(len(my_str))

当你随着Python爬虫程序越写越多,你将能一眼识别出 md5 加密,毕竟这种格式太常见了。

⛳️ 加密参数解析流程

当你通过参数值推断出大概的加密方式之后,顺着这个思路就可以去求解加密算法了。

首先使用开发者工具检索参数名 code ,如果可以直接定位到参数生成地址,本案例的JS加密,直接解决。

唤醒开发者工具之后,发现无法直接定位,code 参数还是太常见了。

如果工期不是很紧张,你可以一个个的点击进行检索,总有发现的时候。

直接第二种思路,关键请求打断点

随意找到一个带 code 参数的请求,然后提取其请求地址中的关键值,例如下图所示内容。

上图展示的关键参数是 tucker/currencylist ,其中域名相关信息因版权问题已经隐藏。

切换到开发者工具的 Sources 选项卡,同时在右侧的 XHR/fetch Breakpoints 中添加一个 URL contains 断点。

实现效果如下所示:

接下来回到网页,刷新一下,一般我喜欢强制刷新,防止读取缓存。

进入网页断点
当出现如下所示界面时,表示JS已经进度断点模式,剩下的就是一步步跟进调试。

格式化下代码,点击上图蓝色按钮。

鼠标移动到关键参数,发现已经存在值,此时证明在之前的代码中有赋值操作,继续翻阅代码。

此时还需要注意一下右侧 Call Stack 相关内容。

Call Stack 执行顺序是从下至上,所以在查找代码的时候,依次点击向下查询即可。

在点击代码的时候,要随时注意区域的上下文,例如当翻找到 e.$get 的时候,发现下述代码出现了 t.data.code=o 的代码块,此时如果

既然发现了,立马把断点打在这里的前后文,还有一个知识点需要注意,一般 JS 的加密会写在 app.js 中,顺着找基本都能找到。

取消请求断点,再次刷新页面,等待进入到参数加密代码块。

o=r() 就是我们解题的关键点了

剩下的在JS逆向中叫扣JS源码,这部分自己来干吧~

📣📣📣📣📣📣
🌻本文如果发现错误,欢迎在评论区中指正哦💗

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。