首页
社区
课程
招聘
[原创][原创]拼夕夕小程序rfp算法分析
发表于: 2024-7-13 15:08 3612

[原创][原创]拼夕夕小程序rfp算法分析

2024-7-13 15:08
3612

对某夕夕微信小程序抓包发现head头总会带上一个rfp参数,猜测应该属于指纹信息加密后的签名,用于甄别小程序环境,对行为做出风控。研究发现rfp参数由服务器返回。
POST 276K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6^5k6#2)9J5k6i4m8A6L8X3c8#2L8$3c8#2L8#2)9J5k6h3y4G2L8g2)9J5c8Y4S2Y4i4K6u0r3M7r3k6T1i4K6u0r3N6%4S2S2M7s2l9`. HTTP/1.1
Host: xg.pinduoduo.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b13)XWEB/11065
Content-Type: application/json
Referer: bccK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6i4u0$3K9h3y4W2N6$3g2U0K9r3q4@1i4K6u0W2j5$3!0E0i4K6u0r3N6%4R3K6x3U0f1@1x3r3u0V1z5o6j5K6j5U0t1%4y4e0M7H3i4K6u0r3x3e0j5#2x3W2)9J5c8Y4m8S2k6$3g2Q4x3X3c8X3M7X3q4E0k6g2)9J5k6h3S2@1L8h3H3`.

{"data":"0aeJy9Vdtu20YQRarCNYAI3SVPox1EUX9vzf5P1NxvvFqk","timestamp":"1720704568787","appKey":"fe","sign":"1f3be6a75638c91cd2602a3df79d39438ad552d0"}
其中参数sign提交到服务器验证的签名,算法为sha1加盐加密算法,加密算法为:salt+timestamp+data,其中盐salt为字符串:fe
DSL。提交到服务器通过验证会返回rfp值,返回内容中的参数a就是rfp。
其中参数"data":"0aeJy9Vdtu20YQRarCNY****AI3SVPox1EUX9vzf5P1NxvvFqk"由小程序源码中的lightMiniApp.js生成,定位data参数怎么生成的搜索关键词"0a",这个是固定值,搜索很容易就定位到生成data的算法关键位置:
"0a" + i.default.base64(r.default.deflate(ft)
深入研究发现里面是由各种小程序相关环境参数加密生成,如果这些参数缺少,即使生成了data也不会通过服务器验证,无法获取到rfp。如何获取这些相关参数?那就要将小程序反编译出来,用微信官方微信开发者工具进行本地调试,在关键位置下断,将这些参数打印出来,赋值到加密函数里面。微信小程序本地调试和浏览器调试js代码有些区别,小程序调试是在想下断的位置插入代码:debugger;
下面是我自己调试获取到的部分参数,避免侵权只展示部分参数:

只要补好相关参数,生成的参数提交到服务器就能成功获取到rfp


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 0
活跃值: (600)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以给个联系方式吗?
2024-7-28 16:06
0
游客
登录 | 注册 方可回帖
返回