声明

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

前言

目标网站: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。

剩下的不用多说,打断点调试。

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' + tmessage = message.encode('utf-8')
sign = hmac.new(key.encode('utf-8'), message, digestmod='md5').hexdigest()
print("sign的值为------>",sign)

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

  1. php获取接口url地址,PHP 获取完整URL地址

    /** * 获取当前完整URL * @return string */ function get_url() { $sys_protocal = isset($_SERVER['SERVER_PORT ...

  2. php 获取内容页图片,织梦DEDECMS内容页获取图片URL地址的方法

    织梦DEDECMS内容页获取图片URL地址的方法 {dede:sql sql="select * from dede_uploads where arcid = ~id~"} [f ...

  3. php获取所有url地址_PHP_php 获取完整url地址,主要是获取到地址栏的一些信 - phpStudy...

    php 获取完整url地址 主要是获取到地址栏的一些信息,域名,端口参数等 复制代码 代码如下: //获取域名或主机地址 echo $_SERVER['HTTP_HOST']." " ...

  4. php获取所有url地址_php 获取完整url地址

    php 获取完整url地址 主要是获取到地址栏的一些信息,域名,端口参数等 复制代码 代码如下: //获取域名或主机地址 echo $_SERVER['HTTP_HOST']." " ...

  5. php获取所有url地址_php 获取完整url地址实例详解

    例1,获取到地址栏的一些信息,域名,端口参数等. 复制代码 代码示例: //获取域名或主机地址 echo $_SERVER['HTTP_HOST']." "; //获取网页地址 e ...

  6. JS逆向解析---某知名小说网站内容加密

    该小说网站的全部内容都是经过一个JS的加密,要想爬取这个网站那么将其内容解析是不可避免的,本文将讲解如何对其进行JS的逆向解析.网站:shuqi 随便点开一本书,打开浏览器自带的抓包工具: 点击第一个 ...

  7. js获取页面URL地址并判断URL是否包含具体值

    本文介绍jquery/js获取当前页面url地址的方法,在jquery与js中获取当前页面url方法是一样的,因为jquery没有自己相关的函数,使用js 的windows方法来获取,相关方法如下: ...

  8. JavaScript 技术篇-使用js代码获取浏览器窗口标题名,js获取页面URL地址

    用 Google 页面来举例子,Google 是它的窗口标题名,https://www.google.com是它的页面 url 地址. document.title 可以用来获取窗口标题名. loca ...

  9. [AS3]flash通过ExternalInterface.call方法来获取当前URL地址

    不用js,只需flash就能搞定了,主要是用了ExternalInterface.call方法,其本质还是通过flash去调用js函数 import flash.external.*; var url ...

最新文章

  1. String 中的秘密
  2. 可视化GDI操作题目
  3. linux下搭建ntp服务,Linux 下快速搭建ntp 时间同步服务器
  4. MySQL常见的主从复制架构_如何搭建经典的MySQL 主从复制架构
  5. gradle 构建应用流程_使用Gradle构建和应用AST转换
  6. php数字从大到小生成,php输入几个数从大到小排序的案例
  7. haproxy对redis进行负载均衡
  8. Keras:Transfer learning
  9. pecl安装扩展(首选)
  10. devops+备份mysql_使用Xtrabackup备份 MySQL 数据库
  11. c++最小的引用()demo
  12. 验证iaas的sql服务器出现error configuring vRealize automation server
  13. 2019 中科院 信工所二室 夏令营 笔试面试经验
  14. java聊天软件_java实现简单聊天软件
  15. 强化学习基础-蒙特卡洛(Monte Carlo)
  16. 笔记本电脑ip服务器未运行怎么办,如何解决控制台打开(Pubwin)提示“服务器未启动或服务器IP地址已更改”的问题...
  17. 【Python】开发笔记
  18. 计算机博士毕业致谢,这篇博士论文《致谢》刷屏,句句扎心……
  19. Linux如何制作efi启动盘,教你制作macOS+Ubuntu+WindowsPE超级启动盘(仅支持UEFI)
  20. 谁你的财神 谁是你的穷神

热门文章

  1. python k-近邻算法 案例实战 预测Pima 印度安人的糖尿病
  2. app timeline server
  3. 【Codeforces 1349A】Orac and LCM
  4. ios pan手势滑动消失动画_iOS左滑手势失效的解决方法
  5. 工作流审批业务代码详解(一)
  6. hotstuff共识算法总结
  7. 203日语计算机考研学校,2019年考研日语大纲公布:203公共日语备考建议
  8. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第三周-7(7月12日)
  9. 九小时九个人九扇门 题解
  10. 为什么需要使用可调DWDM SFP+光模块?