js逆向-某蜓有声小说获取音频url地址

声明

本文仅供参考学习,禁止用于其他用途,违者后果自负!

前言

目标网站:aHR0cHM6Ly93d3cucWluZ3RpbmcuZm0v
小说链接:aHR0cHM6Ly93d3cucWluZ3RpbmcuZm0vY2hhbm5lbHMvNDQwMjkw
接口信息:aHR0cHM6Ly9hdWRpby5xdGZtLmNuL2F1ZGlvc3RyZWFtL3JlZGlyZWN0LzQ0MDI5MC8yMTg4ODQzOD9hY2Nlc3NfdG9rZW49JmRldmljZV9pZD1NT0JJTEVTSVRFJnFpbmd0aW5nX2lkPSZ0PTE2NjE5MzUzODgxODMmc2lnbj0xZDhlYzBiMmI2ZTI4ODE0OWRiNDIyMzFiNzFhZTVhNA==

参数分析

点击某一章节进去,点击播放后会有一个音频信息的接口
在这里插入图片描述

将音频的url复制到浏览器中就可以得到音频文件,通过不断播放不同章节的小说发现该url发现有两处比较可疑,会发现62后面这一串和auth_key后面这一串。

既然比较可以,就复制其中一部分进行搜索。
在这里插入图片描述
其中2到4都是音频的url,只有第一个不是。大概率是在这里了。
在这里插入图片描述
可以看到该节后的一些信息,状态码是一个302跳转到Location中的url中,这个url不就是音频的url吗?这是一个get请求,参数内容中有一个sign值看不懂,应该加密了。
在这里插入图片描述
在这里插入图片描述
32位长度,很多小伙伴看到32位加密就猜是md5加密,只能说有一定的可能性,也可能是摘要算法的一种。

参数内容已经确定了,只有sign加密。

流程分析

直接搜索sign。
在这里插入图片描述
文件有点略多,遇到这种情况可以搜索其他的参数,尤其是更具有辨识性的这样重复会比较少。
在这里插入图片描述
access_token 就只有两个了。分别点进文件看一下,最终发现是在main的文件中。
定位一下位置,发现url也对的上。

在这里插入图片描述
没猜错的话 return后的结果就是sign。别问我是怎么知道的,因为我看到了Hmac和md5。

Alt

剩下的不用多说,打断点调试。
在这里插入图片描述
s是在拼接url,
在这里插入图片描述
t是当前章节有声小说的id,a是一个对象,仔细一看是url中的一部分。t是当前时间戳。

看一下sign
在这里插入图片描述
HmacMD5加密,密钥是fpMn12&38f_2e。实际上Hmac也是一种摘要算法,这种算法和md5相比多了一个密钥所以也更加安全。不懂的小伙伴自行百度一下。

找一个在线的加密网站看一下,加密一下前面的s

链接:在线加密网站
在这里插入图片描述
和上图的结果不能说大差不差,只能说是一模一样。
加密到这里就解决了,因为比较简单。所以没有必要去扣js代码,直接用python调用即可。

import time
import hmac
t = str(int(time.time() * 1000))
key = "fpMn12&38f_2e"
message = "/audiostream/redirect/" + book_id + "/" + chapters_id + "?" + 'access_token=&device_id=MOBILESITE&qingting_id=&t=d' + t
    
message = message.encode('utf-8')
sign = hmac.new(key.encode('utf-8'), message, digestmod='md5').hexdigest()
print("sign的值为------>",sign)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值