朴朴超市小程序 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.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

相关推荐
小七rrrrr5 分钟前
动态规划法 - 53. 最大子数组和
java·算法·动态规划
自由的疯13 分钟前
在 Java IDEA 中使用 DeepSeek 详解
java·后端·架构
自由的疯19 分钟前
Java 通过接口方式使用 DeepSeek 详解
java·后端·trae
盼小辉丶23 分钟前
PyTorch生成式人工智能——使用MusicGen生成音乐
pytorch·python·深度学习·生成模型
敲代码中27 分钟前
Maven入门到精通
java·maven
拂晓银砾1 小时前
Java数据结构-队列
java·数据结构
重生成为编程大王1 小时前
Java ConcurrentHashMap 深度解析
java·开发语言
阿华的代码王国1 小时前
【Android】适配器与外部事件的交互
android·xml·java·前端·后端·交互
MacroZheng1 小时前
还在用WebSocket实现即时通讯?试试MQTT吧,真香!
java·spring boot·后端