您的位置:首页 > 编程语言 > Python开发

Python 爬虫进阶必备 | 关于某虚拟币网站加密签名的分析(难度0.1)

2021-04-04 21:38 531 查看

今日目标

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 

[ 完 ]


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: