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

23-MD5:淘宝

案例网址:淘宝

找接口+加密参数

这次接口不在xhr中了,我们翻页后需要搜索一下找到接口,然后找加密参数:

复制bash转python代码测试看看:

这时候就要找一下cookie是动态生成的还是服务器返回的,需不需要逆向,先清除cookie刷新网页:

搜索cookie值:

两个都是服务器返回的,所以无需逆向

找加密位置+逻辑复现

直接搜索sign:即可:

打上断点后开始分析加密方法和参数:

参数基本都是固定的或者一眼看出时间戳(c.data一会儿会说明),开始复现:

varCryptoJS=require('crypto-js');varappKey="12574478",// 你自己的appKeytoken="xxx"// 自己的token,在cookie中,cookie不变token不变functionsignEnc(page){vardata=`{"appId":"30986","params":"{\\"pageNum\\":${page},\\"pageSize\\":25,\\"_forceRefresh\\":1768786949730,\\"frontAbId\\":\\"427503\\",\\"isFirstPage\\":true,\\"myCna\\":\\"QezYITrchGsCAW8ZBchq4zpB\\"}"}`,// "{"appId":"30986","params":"{\"pageNum\":0,\"pageSize\":25,\"_forceRefresh\":1768786949730,\"frontAbId\":\"427503\",\"isFirstPage\":true,\"myCna\":\"QezYITrchGsCAW8ZBchq4zpB\"}"}"timeStamp=(newDate).getTime(),encData=token+"&"+timeStamp+"&"+appKey+"&"+datavarsign=CryptoJS.MD5(encData).toString();return{sign:sign,timeStamp:timeStamp}}console.log(signEnc(0));

data讲解:

这里data应刷新后取首页的data:

其他页会带很多数字,而且次次不同:

这些数字应该是商品信息啥的

py调用

importrequestsimportexecjsimportosclassJSExecutor:def__init__(self,js_file_path):ifnot os.path.exists(js_file_path):print(f'js代码不存在:{js_file_path}')withopen(js_file_path,'r',encoding='utf-8')asf:self.js_code=f.read()# execjs.compile()将JavaScript 代码编译为一个可执行的对象 self.js_code=execjs.compile(self.js_code)defcall(self,func_name,*args):"""封装python对js代码中函数的调用:param func_name:js代码中的函数名:param args:js代码中函数所需的参数:return:js中函数运行后的结果"""returnself.js_code.call(func_name,*args)defget_data(sign,t,pageNum):cookies={xxx}headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0',}params={'jsv':'2.7.2','appKey':'12574478','t':str(t),'sign':sign,'v':'2.0','timeout':'3000','dataType':'jsonp','valueType':'original','jsonpIncPrefix':'pcrecommend','ttid':'1@tbwang_windows_1.0.0#pc','api':'mtop.relationrecommend.WirelessRecommend.recommend','type':'originaljsonp','callback':'mtopjsonppcrecommend25','data':f'{{"appId":"30986","params":"{{\\"pageNum\\":{pageNum},\\"pageSize\\":25,\\"_forceRefresh\\":1768786949730,\\"frontAbId\\":\\"427503\\",\\"isFirstPage\\":true,\\"myCna\\":\\"QezYITrchGsCAW8ZBchq4zpB\\"}}"}}'}response=requests.get('https://h5api.m.taobao.com/h5/mtop.relationrecommend.wirelessrecommend.recommend/2.0/',params=params,cookies=cookies,headers=headers,)returnresponse.textif__name__=='__main__':js_executor=JSExecutor('23.js')forpageinrange(1,4):js_params=js_executor.call('signEnc',page)print(get_data(js_params['sign'],js_params['timeStamp'],page))

result:

小结

本文也是比较简单,适合练手,就是data那里需要注意,算是个小坑吧,慢慢试试就出来了,如有问题请及时提出,加油加油

http://www.jsqmd.com/news/294840/

相关文章:

  • 面试 Java 基础八股文十问十答第二十一期
  • 2026年GEO优化服务商收费对比:中小企业按月付费vs年费哪个划算?
  • 所爱
  • 从DEM到三维地形:用PLY、OBJ、glTF构建GIS可视化模型
  • 2026年GEO优化服务商工具对比:中小企业自助式vs托管式怎么选?
  • 2026年适合中小企业的GEO优化服务商TOP5:按需求分类推荐
  • 多模态AI服务的“流量容灾”:根据内容类型切换备份节点
  • 46、【Ubuntu】【Gitlab】拉出内网 Web 服务:http.server 分析(三) - 详解
  • 论文写作效率翻倍!9款AI工具免费生成开题报告与论文大纲,写论文不再愁!
  • 2026成都梅毒专业诊疗机构推荐榜
  • 冬季皮肤干燥,洗澡用沐浴油、沐浴露
  • 学霸同款2026 9款一键生成论文工具测评:专科生毕业论文必备指南
  • LLM智能体如何重构法律实践:从独立模型到法律AI的全景解析
  • 大模型在生态环境领域的最优策略,非常详细收藏我这一篇就够了
  • AI产品经理必备:从零开始掌握大模型技术,附全套学习资料【建议收藏】_如何成为一名优秀的AI产品经理?
  • 大模型知识增强指南:RAG与微调的优劣势对比与场景选择
  • 大模型核心技术:从基础训练到多模态适配的完整指南
  • 完整教程:【自然语言处理】处理 GBK 编码汉字的算法设计
  • 2026年西南性病诊疗优质机构推荐指南:梅毒打一针多少钱、梅毒治疗、梅毒症状、梅毒能好吗、治疗hpv大概需要多少钱、治疗梅毒的医院、高危型hpv阳性选择指南
  • 1..24假期记录
  • A2A 协议的工作流程是怎样的?
  • 什么自查询?为什么在 RAG 中需要自查询?
  • 什么是物理像素和逻辑像素?设备像素比(DPR)是什么?
  • 大模型训练三阶段完全指南:从预训练到对齐,一文掌握GPT/LLaMA等模型训练流程(建议收藏)
  • 智谱ZRead MCP vs DeepWiki MCP:大模型开发者必备的MCP工具全解析
  • 主持专业创业踩坑记?我的经验分享,靠自我提升从亏损到盈利
  • 什么是 RAG?RAG 的主要流程是什么?
  • 什么是 Google ADK?
  • 2026诚信电源线及电缆生产厂家推荐榜
  • day.1