JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程

接上节课内容

JS逆向 -- 分析某站buvid3和_uuid的加密过程

JS逆向 -- 分析某站b_lsid值加密过程

一、清除cookie信息,刷新网页,ctrl+f搜索sid,这样找到的数据是在url里或者响应信息里面,全局搜索找到的一般都是在js里面的数据,找到一个v2的数据包,里面有setcookie

二、该数据包是get请求,分析里面的请求数据

https://api.bilibili.com/x/player/wbi/v2?aid=400789390&cid=1119048652&w_rid=b18731f67c5be2da813395f8a884ccdd&wts=1683797034

1、aid和cid

刷新视频页面,ctrl+f搜索aid,发现aid和cid,还有视频阅读量,就在网页源码中,所以可以直接python代码实现

代码实现

import requests
import re
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'
}
url = 'https://www.bilibili.com/video/BV1TW4y1x73q/?spm_id_from=333.788.recommend_more_video.11'
响应数据 = requests.get(url, headers=headers).text
正则结果 = re.search('"stat":\{"aid":(?P<aid>\d+),"view":(?P<view>\d+),"danmaku', 响应数据)
aid=正则结果.group("aid")
视频播放量=正则结果.group("view")
cid=re.search('"cid":(.*?),"dimension"', 响应数据)
print(aid,cid.group(1),视频播放量)

2、w_rid

w_rid出现了三次,都不一样,我们要的是最下面的值v2里面的w_rid

在关键代码处全部下断

第一次断下

第二次断下

重新ctrl+f重新搜索w_rid,V2数据包中w_rid是第二次断下来的值

重新刷新页面,第二次断下,然后追数据,最后加密值来自于h

h = o()(p + i),p的值是:"aid=945189005&cid=892094702&wts=1684220967"

i第值是固定值:caa9ea6e1ec3e32c3efa79550f4b416a

最后的结果是32位数值,我们猜测是md5加密,经过测试,也确实是md5加密

三、重新构造数据包,实现V2的发送

import requests
import re
import execjs
import time
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'
}
url = 'https://www.bilibili.com/video/BV1TW4y1x73q/?spm_id_from=333.788.recommend_more_video.11'
响应数据 = requests.get(url, headers=headers).text
正则结果 = re.search('"stat":\{"aid":(?P<aid>\d+),"view":(?P<view>\d+),"danmaku', 响应数据)
aid=正则结果.group("aid")
视频播放量=正则结果.group("view")
cid=re.search('"cid":(.*?),"dimension"', 响应数据)
print(aid,cid.group(1),视频播放量)
def getwrid(aid,cid,r):
    node = execjs.get()
    fp = open('jiami.js', 'r', encoding='utf8')
    ctx = node.compile(fp.read())
    a="aid="+aid+"&cid="+cid+"wts="+str(r)+"caa9ea6e1ec3e32c3efa79550f4b416a"
    res='MD5_Encrypt("%s")'%(a)
    print(res)
    return res
url='https://api.bilibili.com/x/player/wbi/v2'
r = int(time.time() * 1000)
print(r)
w_rid=getwrid(aid,cid.group(1),r)
print(w_rid)
参数={
    'cid':cid.group(1),
    'aid':aid,
    'w_rid':w_rid,
    'wts':r
}
res=requests.get(url,params=参数,headers=headers)
sid = res.cookies.get_dict()['sid']
print(sid)
目录
相关文章
|
2月前
|
Web App开发 监控 JavaScript
监控和分析 JavaScript 内存使用情况
【10月更文挑战第30天】通过使用上述的浏览器开发者工具、性能分析工具和内存泄漏检测工具,可以有效地监控和分析JavaScript内存使用情况,及时发现和解决内存泄漏、过度内存消耗等问题,从而提高JavaScript应用程序的性能和稳定性。在实际开发中,可以根据具体的需求和场景选择合适的工具和方法来进行内存监控和分析。
|
2月前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
52 3
|
2月前
|
JavaScript 前端开发 安全
JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择
本文深入探讨了JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择。JavaScript以其灵活性和广泛的生态支持著称,而TypeScript通过引入静态类型系统,提高了代码的可靠性和可维护性,特别适合大型项目。文章还讨论了结合使用两种语言的优势,以及如何根据项目需求和技术背景做出最佳选择。
66 4
|
2月前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
|
2月前
|
JavaScript 前端开发 API
Vue.js与Angular的优劣分析
Vue.js和Angular都是非常流行的JavaScript框架,它们在构建现代Web应用程序方面各有优劣
|
2月前
|
资源调度 前端开发 JavaScript
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第10天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤,包括安装依赖、创建混淆脚本、修改 `package.json` 脚本命令、构建项目并执行混淆,以及在 HTML 文件中引用混淆后的文件。通过这些步骤,可以有效提高代码的安全性。
125 2
|
2月前
|
运维 监控 JavaScript
鸿蒙next版开发:分析JS Crash(进程崩溃)
在HarmonyOS 5.0中,JS Crash指未处理的JavaScript异常导致应用意外退出。本文详细介绍如何分析JS Crash,包括异常捕获、日志分析和典型案例,帮助开发者定位问题、修复错误,提升应用稳定性。通过DevEco Studio收集日志,结合HiChecker工具,有效解决JS Crash问题。
65 4
|
4月前
|
前端开发 数据安全/隐私保护
JS-RSA超长加密
JS-RSA超长加密
140 62
|
2月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
361 9
|
2月前
|
JavaScript 前端开发 开发者
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第27天】在前端开发领域,Vue.js和Angular是两个备受瞩目的框架。本文对比了两者的优劣,Vue.js以轻量级和易上手著称,适合快速开发小型到中型项目;Angular则由Google支持,功能全面,适合大型企业级应用。选择时需考虑项目需求、团队熟悉度和长期维护等因素。
64 1