Python 爬虫进阶必备 | 某体育网站登录令牌加密分析

举报
xianyuplus 发表于 2021/06/21 15:07:41 2021/06/21
【摘要】 某体育网站登录令牌加密分析aHR0cHMlM0EvL3d3dy55YWJvMjU5LmNvbS9sb2dpbg==这个网站需要分析的是登录时候的 sign令牌抓包与加密定位老规矩先用开发者工具抓包这里一般定位就是搜参数和xhr断点会比较方便,但是使用这两种都有他不方便的地方搜参数这个方法直接搜加密的参数名会出现很多的结果,需要一个一个去分析,同样也有局限性,比如参数是混淆的就搜不到了。xhr...

某体育网站登录令牌加密分析

aHR0cHMlM0EvL3d3dy55YWJvMjU5LmNvbS9sb2dpbg==

这个网站需要分析的是登录时候的 sign 令牌

抓包与加密定位

老规矩先用开发者工具抓包

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

这里一般定位就是 搜参数  xhr断点 会比较方便,但是使用这两种都有他不方便的地方

搜参数 这个方法直接搜加密的参数名会出现很多的结果,需要一个一个去分析,同样也有局限性,比如参数是混淆的就搜不到了。

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

xhr断点 这个方法需要这个请求是 xhr 请求才行,而且断上之后还需要一步步调试堆栈才能找到加密的位置,如果不小心漏了需要耐心重新分析。

这里重提下在前面的文章,我提过一个思路,就是不要直接搜索加密的参数,可以搜索同一个请求提交的其他参数,一般参数提交的地方都是在一块的

这里实操一下,搜索 nonce_str 就只有一个结果,直接跟进即可

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

在定位出来的文件位置中再次检索,直接就定位到加密的位置了

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

接下来打上断点验证看我们的分析是否准确

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

成功断上,说明确实定位到了

分析加密

可以看到这里的 sign 是由 d 赋值的,而 d = o.a.hmac(t,u)

这里需要知道的参数就是 o  t  u 这三个

我们继续分析这三个参数是怎么出现的

s 的值是一串字符串

appKey=c97823e281c071c39e&domain=www.yabo259.com&name=xianyuplus&nonce_str=eovdlwvy4z&password=11111111111&timestamp=1596710251&uuid=web-Windows-45671c25c33d9e3ad2217c645cb1a48f&appSecurit=d77f7fcff637bc61bfb82fcbcd767bfa

这里的参数都是请求提交上来的,之后做了一个 base64 的编码

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

后面的 t 也是传入的 d77f7fcff637bc61bfb82fcbcd767bfa

这里就只剩一个 o 跟进去看就很明显是一个 hmacsha256

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

为了沿着我们可以网上找一个加密站测试下。

这是测试网站的加密结果

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

这是加密网站的加密结果

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

完全一样,说明我们分析是没有错的,接下来直接使用 Python 复写出来即可。

新知达人, Python 爬虫进阶必备 | 某体育网站登录令牌加密分析(再送两本!!)

加密代码:

import hmac
import hashlib

API_SECRET = 'd77f7fcff637bc61bfb82fcbcd767bfa'
message = 'YXBwS2V5PWM5NzgyM2UyODFjMDcxYzM5ZSZkb21haW49d3d3LnlhYm8yNTkuY29tJm5hbWU9eGlhbnl1cGx1cyZub25jZV9zdHI9aWpveHk0bjZ3OWMmcGFzc3dvcmQ9MTExMTExMTExMTEmdGltZXN0YW1wPTE1OTY3MTA5ODAmdXVpZD13ZWItV2luZG93cy00NTY3MWMyNWMzM2Q5ZTNhZDIyMTdjNjQ1Y2IxYTQ4ZiZhcHBTZWN1cml0PWQ3N2Y3ZmNmZjYzN2JjNjFiZmI4MmZjYmNkNzY3YmZh'

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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