2025年3月26日 星期三 甲辰(龙)年 月廿五 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 逆向分析

影视站禁止非微信端打开的研究

时间:08-10来源:作者:点击数:28

最近遇到了一个影视站,发现只能在手机微信里打开,无法使用chrome打开并抓取链接

链接:https://mr.baidu.com/148******(PS:这种用百度作为短链跳转是怎么实现的)

打开百度短链会302到https://m.baidu.com/******/tc?bdver=2_1&bdenc=1&wd=&nsrc=******

这个网页中会使用js跳转到另一个网页,再由新网页实现第二次重定向,新网页只有一个域名,没有任何参数,所以推测使用了Referer传递了重定向的网址

以下是python模拟实现

  • baidu_short_url = 'https://mr.baidu.com/148******'
  • headers = {
  • 'Referer': requests.get(baidu_short_url).url
  • }
  • real_short_url = requests.get('http://www.****.cn/', headers=headers).url

这里称第二次重定向后的网页叫跳转页2吧,跳转页2引入了一个js文件

  • <script src="https://qimao.****.cn/bxx3?uc=e5nz****==">

每次打开跳转页2,都会得到不同的uc参数,一旦访问了js文件,js链接就会失效,需要重新打开网页获取新js链接

打开js文件,我不太会js,问了chatGpt说是用于表单提交数据

  • document.title = "...";
  • var pPdx = document.createElement("form");
  • document.body.appendChild(pPdx);
  • pPdx.method = 'get';
  • pPdx.action = '\x68\x74******';
  • var newElement = document.createElement("input");
  • newElement.setAttribute("name","url");
  • newElement.setAttribute("type","hidden");
  • newElement.setAttribute("value",'\x36\x38******');
  • pPdx.appendChild(newElement);pPdx.submit();

将16进制字符串转换后,得到的是一个网址和一个参数,进行拼接,得到一个完整的网址https://***.aliyun***.com/?url=****

完整网址的源码如下

  • <script> var asdasdcx = 1;
  • var sdgsdsd = 0;
  • var sffss = 0;
  • var agent = navigator.platform.toLowerCase();
  • if (agent.indexOf("win32") >= 0 || agent.indexOf("wow32") >= 0) {
  • var sffss = 1;
  • }
  • if (agent.indexOf("win64") >= 0 || agent.indexOf("wow64") >= 0) {
  • var sffss = 1;
  • }
  • var WinOri = window.orientation;
  • if (typeof WinOri == 'undefined' || sffss == 1) {
  • asdasdcx = 3; document.write("内容不存在,已删除");
  • }
  • </script>
  • <!DOCTYPE html>
  • <html>
  • <head>
  • <meta charset="UTF-8">
  • <title>...</title> </head>
  • <body>
  • <script type="text/javascript">
  • if (asdasdcx !== 3) {
  • window['\x6c\x6f\x63\x61\x74\x69\x6f\x6e']['******'+'xl=******';
  • }
  • </script>
  • </body>
  • </html>

可以看到,这个网页除了检查UA还会检查navigator.platform,UA不是微信的话服务器会直接返回444、navigator.platform为电脑端的话会显示内容不存在,已删除。遂使用油猴脚本修改了navigator.platform的返回值(PS:就算加了// @run-at document-start,还是得限制网速,不然网页打开太快了,脚本来不及注入)

  • Object.defineProperty(navigator,'platform',{get:function(){return 'Android';}});

现在回到js逻辑,如果校验通过,window的location属性会被设置为一个网址,进行第3次跳转,跳转到真正的播放页

后面获取m3u8链接接口就不赘述了,没有任何加密,明文JS

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门