朴朴超市小程序 sign-v2 分析

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

部分python代码

复制代码
cp = execjs.compile(open('run.js','r',encoding='utf-8').read())
result = cp.call('getSign',unique_id)
print(result)
headers = {
    "accept": "application/json",
    "accept-language": "zh-CN,zh;q=0.9",
    "cache-control": "no-cache",
    "chart_ab": "4",
    "content-type": "application/json",
    "is_show_classification_word": "1",
    "label_assembly_ab": "1",
    "open-id": "",
    "pp-os": "0",
    "pp-placeid": unique_id,
    "pp-suid": unique_id,
    "pp_storeid": unique_id,
    "pragma": "no-cache",
    "priority": "u=1, i",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "cross-site",
    "shopping_car_hint_banner_module": "1",
    "sign-v2": result['sign'],
    "spu_shopping_guide_link_ab": "1",
    "timestamp": str(result["timestamp"]),
}
url = "product/recall"
data = {
    "card_line": 1,
    "page": 1,
    "size": 20,
    "area_list": [],
    "area_second_id": "",
    "is_top": 0
}
data = json.dumps(data, separators=(',', ':'))
response = requests.post(url, headers=headers, data=data)

print(response.text)
print(response)
复制代码
cp = execjs.compile(open('run.js','r',encoding='utf-8').read())
result = cp.call('getSign',unique_id)
print(result)
headers = {
    "accept": "application/json",
    "accept-language": "zh-CN,zh;q=0.9",
    "cache-control": "no-cache",
    "chart_ab": "4",
    "content-type": "application/json",
    "is_show_classification_word": "1",
    "label_assembly_ab": "1",
    "open-id": "",
    "pp-os": "0",
    "pp-placeid": unique_id,
    "pp-suid": unique_id,
    "pp_storeid": unique_id,
    "pragma": "no-cache",
    "priority": "u=1, i",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "cross-site",
    "shopping_car_hint_banner_module": "1",
    "sign-v2": result['sign'],
    "spu_shopping_guide_link_ab": "1",
    "timestamp": str(result["timestamp"]),
}
url = "product/recall"
data = {
    "card_line": 1,
    "page": 1,
    "size": 20,
    "area_list": [],
    "area_second_id": "",
    "is_top": 0
}
data = json.dumps(data, separators=(',', ':'))
response = requests.post(url, headers=headers, data=data)

print(response.text)
print(response)

结果

总结

1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

相关推荐
我真的是大笨蛋3 小时前
K8S-Pod(下)
java·笔记·云原生·容器·kubernetes
碳水加碳水3 小时前
Java代码审计实战:XML外部实体注入(XXE)深度解析
java·安全·web安全·代码审计
努力也学不会java4 小时前
【设计模式】 原型模式
java·设计模式·原型模式
一个天蝎座 白勺 程序猿5 小时前
Python爬虫(47)Python异步爬虫与K8S弹性伸缩:构建百万级并发数据采集引擎
爬虫·python·kubernetes
方渐鸿5 小时前
【2024】k8s集群 图文详细 部署安装使用(两万字)
java·运维·容器·kubernetes·k8s·运维开发·持续部署
学亮编程手记5 小时前
K8S v1.33 版本主要新特性介绍
java·容器·kubernetes
XiaoMu_0016 小时前
基于Django+Vue3+YOLO的智能气象检测系统
python·yolo·django
Haven-6 小时前
Java-面试八股文-JVM篇
java·jvm·面试
我真的是大笨蛋6 小时前
JVM调优总结
java·jvm·数据库·redis·缓存·性能优化·系统架构
wjs0406 小时前
Git常用的命令
java·git·gitlab