当前位置: 首页 > news >正文

专业建站培训不忘初心网站建设

专业建站培训,不忘初心网站建设,遵义市在哪里做网站,企业服务类型有哪些某眼专业版-实时票房接口破解 某眼票房接口:https://piaofang.maoyan.com/dashboard-ajax 前言 当我们想根据某眼的接口获取票房信息的时候,发现它的接口处的参数是加密的,如下图: 红色框框的参数都是动态变化的,且signKey明显是加密的一个参数。对于这种加密的参数,我们需要…

某眼专业版-实时票房接口破解

某眼票房接口:https://piaofang.maoyan.com/dashboard-ajax

前言

当我们想根据某眼的接口获取票房信息的时候,发现它的接口处的参数是加密的,如下图:

在这里插入图片描述

红色框框的参数都是动态变化的,且signKey明显是加密的一个参数。对于这种加密的参数,我们需要从它们的js文件中找到加密方式,因此我们需要找到signKey所在的位置。

解决方案

1.找到veri.js

如图所示:
在这里插入图片描述

首先需要根据这个路径找到veri.js文件,signKey这个参数就出现在这个里面

2.找到signKey所在位置

如图所示,signKey的位置
在这里插入图片描述

3.分析它所处的这个函数的内容

可以找到请求参数里面的几个变量,这说明我们找到的文件没有错。

在这里插入图片描述

index参数的获取

将其中的o(250)输出,如下图,得到floor:

在这里插入图片描述

说明Math[o(250)]其实是一个向下取整的函数,故index的获得方式就是:

Math.floor(1e3 * Math.random() + 1)

将它用Python实现就是:

math.floor(1000 * random.random() + 1)

signKey参数的获取

通过调式(加断点),可以发现signKey的值是由这个语句获得的:
在这里插入图片描述
而这个语句中含有另一个参数d和o(262),对于o(262),可以在控制台得到它的值,如下图所示:
在这里插入图片描述

对于参数d,我们继续寻找,发现d的产生位置:

在这里插入图片描述

然后d是和变量i相关的,i的定义如下:
在这里插入图片描述
然后在调试的时候可以知道d的值其实是一段变量i中的key和value的字符串,如图:
在这里插入图片描述
而i在还有一个变量key我们是不知道的,但是由于key的值是由o(260)产生的,则我们可以将它看出一个常量,控制台输出如下:
在这里插入图片描述

由此跟d相关的变量我们都可以知道了,跟它相关的变量如下:

  • User-Agent:代理
  • timeStamp:时间戳
  • index
  • channelId
  • method
  • sVersion
  • key
    由此可以生成跟d相关的字符串了,d的格式:
method=Get&index=123&...

d产生后,我们再回到生成signKey的位置:

在这里插入图片描述
此时需要注意是先对d进行了一些字符串替换,然后进行到加密函数中去的

继续调式,进入到加密函数当中:
在这里插入图片描述

这是一个md5加密的过程。

我们先对该函数进行验证,看是否会生成所需要的signKey:

在这里插入图片描述

以上图的d作为输入,得到结果如下:
在这里插入图片描述

最后的结果是一致的,说明就是这个函数。

综上所述,获取signKey的步骤为:

  • 将变量i中的参数全部获取
  • 将i中参数的key和value进行拼接,形成字符串d
  • 将d输入到加密函数中进行加密
  • 得到signKey

到此,signKey的获取也就结束了,那么接口破解也就完成了。

运行结果

在这里插入图片描述

关键代码

完整代码请前往:地址

def getIndex(self):return math.floor(1000 * random.random() + 1)def getD(self):# d是各种参数的组合,包括timeStamp,User-Agent,index,channelId,sVersion以及keyself.pay_loads['index'] = self.getIndex()self.pay_loads['timeStamp'] = int(time.time() * 1000)logger.info('timeStamp:' + str(self.pay_loads['timeStamp']))d = 'method=GET&timeStamp=' + str(self.pay_loads['timeStamp']) + '&User-Agent=' + self.pay_loads['User-Agent'] + '&index=' \+ str(self.pay_loads['index']) + '&channelId=' + str(self.pay_loads['channelId']) + '&sVersion=' + str(self.pay_loads['sVersion']) + \'&key=' + self.key# 找出目标字符串中的所有空白字符并用空格代替d = d.replace(r'/\s+/g'," ")return d# 得到signKeydef getSignKey(self):md5 = hashlib.md5()d = self.getD()md5.update(d.encode('utf-8'))signKey = md5.hexdigest()self.pay_loads['signKey'] = signKeylogger.info("signKey:" + signKey)

总结

本部分关键点在于找到请求参数所在文件的位置,然后逐步顺腾摸瓜即可。

http://www.yayakq.cn/news/13684/

相关文章:

  • 园林效果图网站我公司网站开发技术优势
  • 美团网站开发形式定制级高端网站建设
  • 网站建设 免费视频网页代码制作基础教程
  • 代理行业门户网站做网站一般做几个尺寸
  • 北京网站制作人才汽车之家网站系统是什么做的
  • 专业商城网站建设公司阿里云服务器创建网站
  • 怎么用云校建设学校网站wordpress 禁用插件
  • 网站备案 修改wordpress保存的字体
  • 定制网站开发是什么会员管理系统多少钱一套
  • 手机怎么查看网站代码实现的大兴网站制作
  • 利用git做网站备份天眼查在线查询
  • 哈尔滨网站建设有哪些网站制作费计入哪个科目
  • 深圳坂田网站建设wordpress树形结构
  • 企业怎么建设网站十大传媒公司排名
  • 海口网站建设哪家好外贸公司用的采购储运财务软件
  • 北京塞车网站建设软件著作权怎么写
  • 安徽省建设工程信息网官方网站wordpress绑定域名
  • 做直播网站用什么程序高质量外链平台
  • 广州定制型网站建设做网站前台用什么软件
  • 林州网站建设哪家专业江永网站建设
  • 百度网站安全在线检测免费建设视频网站
  • 河南网站备案地址网站优化 书
  • 网站后台数据库下载小程序获取wordpress背景音乐
  • 做关于时尚网站的目的小广告胶用什么可以快速清除
  • 一米八效果图网站一流的苏州网站建设
  • 网站seo博客网址的格式是什么样的
  • 网站文案案例如何推广网址链接
  • 网站排名首页怎么做如何重视企业网站的建设
  • wordpress主题侧边栏网站优化建设上海
  • 网站产品详情页怎么做网站上二维码怎么做的