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

FastMoss 国际电商Tiktok数据分析 JS 逆向 | MD5加密

1.目标

目标网址:https://www.fastmoss.com/zh/e-commerce/saleslist

在这里插入图片描述
在这里插入图片描述
切换周榜出现目标请求
在这里插入图片描述
只有请求头fm-sign签名加密

2.逆向分析

直接搜fm-sign
在这里插入图片描述

在这里插入图片描述
可以看到 i["fm-sign"] = A
在这里插入图片描述
进入encryptParams方法
在这里插入图片描述
里面有个S()方法加密,是MD5加密

3.代码示例

js代码示例

const crypto = require('crypto')function MD5Encrypt(e) {return crypto.createHash("md5").update(e.toString()).digest("hex")
}function encryptParams(e) {this.salt = "LAA6edGHBkcc3eTiOIRfg89bu9ODA6PB"let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", o = Object.keys(e).sort(), n = "";o.forEach(t => {n += t + e[t] + this.salt});let r = MD5Encrypt(n + t), a = "", i = 0, s = r.length - 1;for (; i < r.length && !(i >= s); i++,s--)a += (parseInt(r[i], 16) ^ parseInt(r[s], 16)).toString(16);return a + r.substring(i)
}let S =   {_time: Math.floor(Date.now() / 1e3),cnonce: Math.floor(1e7 + 9e7 * Math.random())
}, r = {"time": 1748321467,"system": "windows","platform": 1,"id": 206,"type": 1,"ext": {"uri": "https://www.fastmoss.com/zh/e-commerce/newProducts","_src": null}
} ,d = JSON.stringify(r),A = encryptParams({...S}, d);
console.log(A)

python代码示例

import hashlib
import json
import random
import time# MD5 加密
def md5_encrypt(data):return hashlib.md5(str(data).encode('utf-8')).hexdigest()# 加密函数 encryptParams
def encrypt_params(e, t=""):salt = "LAA6edGHBkcc3eTiOIRfg89bu9ODA6PB"# 排序后的 key 列表keys = sorted(e.keys())n = ""for key in keys:n += f"{key}{e[key]}{salt}"r = md5_encrypt(n + t)a = ""i = 0s = len(r) - 1while i < len(r) and i < s:# 将十六进制字符转为整数,异或后再转回十六进制char_i = r[i]char_s = r[s]xor_result = int(char_i, 16) ^ int(char_s, 16)a += format(xor_result, 'x')  # 转为十六进制字符i += 1s -= 1a += r[i:]return aS = {'_time': int(time.time()),'cnonce': random.randint(1e7, 1e8)
}r = {"time": 1748321467,"system": "windows","platform": 1,"id": 206,"type": 1,"ext": {"uri": "https://www.fastmoss.com/zh/e-commerce/newProducts","_src": None}
}d = json.dumps(r, separators=(',', ':'))A = encrypt_params(S, d)
print(A)

请求不要sign也是可以的

相关文章:

  • Pytorch
  • [25-cv-05718]BSF律所代理潮流品牌KAWS公仔(商标+版权)
  • Springboot引入Spring Cloud for AWS的配置中心(Parameter Store和Secrets)
  • 使用redis代替session的登录校验
  • 语音合成之十七 语音合成(TTS)中文自然度:问题、成因、解决方案
  • 关于 Web 安全:6. 常见 CMS 开源系统风险点
  • 2.3 TypeScript 非空断言操作符(后缀 !)详解
  • WIN10 安装dify ollama搭建工作流agent
  • 更新时间相差8个小时
  • 如何创建一个流程图/思维导图
  • 安全监测预警系统的核心价值
  • 深入解析Spring Boot与Redis的集成实践
  • 图论学习笔记 4 - 仙人掌图
  • 使用mermaid快速绘制流程图
  • 新消息!阿里云ACP大模型认证有变化!
  • 阿里云配置安全组策略开放端口
  • Windows安装Docker部署dify,接入阿里云api-key进行rag测试
  • 阿里云CDN和腾讯云CDN综合对比
  • 相交链表(力扣160 easy)
  • 分布式常见概念
  • 西安模板网站建设/石家庄seo优化公司
  • 要建一个网站该怎么做/网站注册
  • 做网站的工具/专业恶意点击软件
  • 高档网站制作/知名品牌营销策略
  • 网站初期建设的成本来源/百度竞价点击软件
  • 线上推广工作是做什么的/搜索引擎优化自然排名