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

用网站模板建网站免费入驻的电商平台

用网站模板建网站,免费入驻的电商平台,wordpress文章页实现图片幻灯展现,个人网页设计作品模板简单Scrape | Moviehttps://spa6.scrape.center/ 请求影片列表api时,不仅有分页参数,还多了一个token,通过重发请求发现token有时间限制,所以得逆向token的生成代码。 通过xhr断点定位到接口请求位置 刷新页面或者点翻页按钮&#x…

Scrape | Moviehttps://spa6.scrape.center/

请求影片列表api时,不仅有分页参数,还多了一个token,通过重发请求发现token有时间限制,所以得逆向token的生成代码。 

通过xhr断点定位到接口请求位置

刷新页面或者点翻页按钮,触发断点

在调用堆栈中往下找到token出现的地方

在onFetchData找到了请求构造的地方

在这里添加断点,希望找到token生成的算法

切页面发现这里确实传递了token

查看'token': _0x263439是在哪里生成的

可以看到

_0x263439 = Object(_0x2fa7bd['a'])(this['$store']['state']['url']['index'])

接下来看看他们具体内容:

this['$store']['state']['url']['index']其实就是一个固定值"/api/movie",即请求接口的地址

Object(_0x2fa7bd['a'])是一个方法

点击进入方法声明的地方

 跳转到function _0x456254(),这里就是token生成的逻辑

接下来就慢慢的扣代码了。

本地新建一个js文件用于还原token生成逻辑

由前面可知,token生成就是对api的url进行加密

_0x263439 = Object(_0x2fa7bd['a'])(this['$store']['state']['url']['index'])

其中Object(_0x2fa7bd['a'])对应函数_0x456254,this['$store']['state']['url']['index']为固定值"/api/movie"

翻译过来就是

console.log(_0x456254('/api/movie'))

然后补_0x456254的代码,直接复制过来,然后缺啥补啥

 

执行一下,查看报错

提示说缺_0x189cbb 

由于代码是Webpack打包的,继续往下扣感觉是无底洞。我们换个思路,重新审视function _0x456254()

可以推测出应该是加密编码相关的工具,直接把他们补充完整就行,这步直接交给ai完成

你是一名JS逆向专家,请给下面的代码补充完整环境(_0x189cbb以及_0x34777a),使用常用的加密库
var _0x189cbb = _0x34777a('3452'), _0x358b1f = _0x34777a('27ae')['Base64'];function _0x456254() {for (var _0x5da681 = Math['round'](new Date()['getTime']() / 0x3e8)['toString'](), _0x2a83dd = arguments['length'], _0x31a891 = new Array(_0x2a83dd), _0x596a02 = 0x0; _0x596a02 < _0x2a83dd; _0x596a02++)_0x31a891[_0x596a02] = arguments[_0x596a02];_0x31a891['push'](_0x5da681);var _0xf7c3c7 = _0x189cbb['SHA1'](_0x31a891['join'](','))['toString'](_0x189cbb['enc']['Hex']), _0x3c8435 = [_0xf7c3c7, _0x5da681]['join'](','), _0x104b5b = _0x358b1f['encode'](_0x3c8435);return _0x104b5b;
}console.log(_0x456254('/api/movie'))

 ai给出的结果

// 环境补全(模拟原代码的_0x34777a函数)
function _0x34777a(id) {const CryptoJS = require('crypto-js');  // 引入加密库// 根据不同的id返回不同的加密模块const cryptoModules = {'3452': {  // SHA1相关功能SHA1: CryptoJS.SHA1,enc: {Hex: CryptoJS.enc.Hex}},'27ae': {  // Base64编码功能Base64: {encode: function(str) {// 模拟原代码的Base64编码逻辑return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str));}}}};return cryptoModules[id] || {};
}// 初始化加密对象(完全还原原代码的变量名)
var _0x189cbb = _0x34777a('3452');  // 获取SHA1功能模块
var _0x358b1f = _0x34777a('27ae')['Base64'];  // 获取Base64编码模块// 原函数保持不变
function _0x456254() {for (var _0x5da681 = Math['round'](new Date()['getTime']() / 0x3e8)['toString'](), _0x2a83dd = arguments['length'], _0x31a891 = new Array(_0x2a83dd), _0x596a02 = 0x0; _0x596a02 < _0x2a83dd; _0x596a02++)_0x31a891[_0x596a02] = arguments[_0x596a02];_0x31a891['push'](_0x5da681);var _0xf7c3c7 = _0x189cbb['SHA1'](_0x31a891['join'](','))['toString'](_0x189cbb['enc']['Hex']), _0x3c8435 = [_0xf7c3c7, _0x5da681]['join'](','), _0x104b5b = _0x358b1f['encode'](_0x3c8435);return _0x104b5b;
}// 测试输出
console.log(_0x456254('/api/movie'));

直接运行,有输出

尝试发起请求,验证token正确

 所以没必要继续深挖代码寻找_0x189cbb、_0x358b1f到底在哪实现,直接手动补环境就行了。

下面看看token的具体内容到底是什么:

总结就是:

  1. 获取当前时间戳(秒级)并转为字符串
  2. 计算url的sha1
  3. 将sha1用逗号时间戳
  4. 对结果进行编码(Base64)后返回
http://www.dtcms.com/wzjs/586078.html

相关文章:

  • 网站建设与应用岗位网站备案是先做网站还是做完了备案
  • 有关网站建设的外文文献苏州网络seo
  • 广告关键词排名西安网站seo工作室
  • 湖南省金力电力建设有限公司 网站网站设计字体
  • 新野微网站开发网站app软件
  • 重庆cms建站系统百度地图怎么看沿途服务区
  • 如何在万网建设网站太原富库网站建设
  • 嘉兴手机网站制作fotor懒设计 app
  • 网站后台管理无法编辑游戏开发需要多少钱
  • 移动网站建设方案网络营销策划方案范本
  • 硅塑胶 东莞网站建设广东建设网站首页
  • quiz在哪个网站做网站 建立目录出错
  • wordpress可以建哪些网站网站建设需要个体营业执照吗
  • 免费发帖网站大全长春建设工程信息网站
  • 买房网站排名天津站建站时间
  • 盐城公司做网站招远做网站公司
  • wap手机网站 作用做网站营销公司
  • 吉林市网站建设公司哪家好池州网站建设公司
  • 阿里巴巴的网站怎么做的不用买服务器可以做网站
  • 佛山制作网站设计报价怎么制作游戏脚本
  • 网上商城建站工作室怎样用linux做网站
  • 百度怎样做网站并宣传网站软文营销什么意思
  • 如何制作自己的作品集网站北京 网站 公司
  • 哪些网站可以做招生信息icp备案查询站长之家
  • html5网站源代码下载宁波网站建设的价格表
  • 郑州哪个网站建设最好东莞建设网站培训
  • stanley工具网站开发中国十大建筑设计院排名
  • 怎么进入网站管理页面app应用下载网站源码
  • 成都市建设领域信用系统网站撰写超越时空网上书城网站策划书
  • 个人怎么建立网站wordpress 升级 权限