Python 爬虫进阶必备 | 关于某虚拟币网站加密签名的分析(难度0.1)
今日目标
aHR0cHMlM0EvL3d3dy5teXRva2VuY2FwLmNvbS8=
这个网站来自咸鱼交流 3 群,一个新手朋友的困惑
在群里我是这么回复的
结果和我想象的一样,没有很复杂,只是在定位上难住了新手。
抓包与定位
在参数上,加密的参数是 code 这个参数,所以我们先试试能不能通过搜索大法定位参数加密的位置。
通过全局检索可以看到是很难一下分析出 code 这个加密的位置是在哪里的。
结果真的太多了,还有朋友想试试 code 这个参数用 xhr 断点这个方法来定位。
那我们再来试试。
可以看到堆栈还是比较多的,自己动手测试了下,因为涉及到好多的异步请求,所以跟着跟着就丢掉了。
这样是不是就没办法了呢?
其实对于这种加密最简单的办法就是跑油猴脚本(前提是没有更改关键的方法名),不过我同样也测试了下,这里只定位到了 websocket 的位置,并没有 code 的加密。
其实这里还有一个简单的思路,工具多了容易被我们忽略掉。
还是回归最初的检索,这里其实只要检索这个请求的其他参数就可以了,一般来说这些参数都是在同一个位置加在请求上的,你可以检索 code:
或者 platform=
或者timestamp =
这样不就出来了吗,不是太难的网站不要急着上工具。
所以这里我们检索code:
在第一个文件里检索code =
就可以了。
这不就出来了吗
分析
这里还不能确认是不是 md5 但是打上断点之后一切就很清晰了。
e
是当前的时间戳,不知道接下来的o
怎么操作的可以贴到控制台里试试。
这步做了截取,连同前面的操作就完成了拼接
之后就将这个结果以参数的形式传入了方法r()
中。
这里r
完成了什么操作很关键。
所以我们单步看看,一直到这一步
前面将传入的字符串转变为字符,之后就进行了哈希,如果你看不懂怎么办?
没关系,记住上面传入r
的参数字符串,然后网上找加密器逐一开始试就完事了,像这种 32 位的加密结果大概率就是 md5 ,当然你之后看到长度为 16 或者 32 位的密文都可以这么测试一下。
还有一些朋友不管三七二十一,直接一把梭直接缺什么补什么也是可以的。
就像下面这位老哥一样动手就完事了。
以上就是这次文章的全部内容了,感谢您的关注,下次再会~
Love & Share
- WordPress集成底部滚动推荐条,让好文章不再被埋没
- go语言base64加密解密的方法
- WordPress酷炫CSS3读者墙,排名按年度、本月、本周划分的小方法
- WordPress给文章添加百度是否已收录查询和显示功能(自定义栏目优化版)
- PHP制作百度站内搜索绿色通道的网页列表数据文件
- 分享几个可用的二维码API,以及给博客添加文章二维码图片的方法
- AI即开即用,这是悄然推出的“腾讯最新AI技术”小程序
- Android Linker 与 SO 加壳技术
- Go语言操作mysql数据库简单例子
- go语言的sql包原理与用法分析
- WordPress免插件生成完整站点地图(sitemap.xml)的php代码
- Go语言常用字符串处理方法实例汇总
- 硬盘故障时如何强制关机:Input/output error
- 举例讲解Go语言中函数的闭包使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- mybatis-generator在命令行及IEAD中的使用
- mybatis-generator在命令行及IDEA中的使用
- 70-STM32+ESP8266+AIR202基本控制篇-移植使用-移植单片机MQTT底层包到自己的工程项目
- springboot研究:springboot自带监控actuator
- springboot研究:springboot使用swagger自动构建api
- numpy/pandas瞎搞系列(一):OLS,WLS的numpy实现
- redis实战第三篇 redis sentinel安装和部署
- 后浪,谈谈你对jvm性能调优的理解
- Homer预测共表达基因的motif
- redis实战第一篇 安装和使用
- lombok在java项目中的使用
- MySQL 的全文索引.
- Swift Reusable开源库使用
- 面试官:聊聊你读过的开源代码中用到的设计模式
- Swift Moya的简单使用