最近听说电商比较火,继TB,J东后现在短视频平台发展火火火的把流量带动起来纷纷搞起了二类电商。
平时主要用快手,听说快手也有自己的电商,闲来无事就瞎JB研究研究把。。。
一、环境配置
研究接口当然少不了要抓包,Android端的PC端的都得部署好环境。
PC:python + mitmproxy
Android:HttpCannary
二、搭建代理服务器
运行起来mitmproxy后直接先尝试手机设置wifi局域网代理地址+端口
代理设置好直接开启快手,一刷新就显示网络异常
果然还是没那么容易被抓包的
!([img]https://img-blog.csdnimg.cn/20200619143901994.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MzUxNTE1,size_16,color_FFFFFF,t_70)
对于一般接口抓包无非就是几个思路,给大家循序渐进的缕一缕:
1.直接wifi设置代理地址连接代理服务器
2.通过VPN连接转发数据至代理服务器
3.通过Hook突破ssl pinning 可以使用Xposed + JustTrustMe或者Frida hook
4.终极大招直接上路由器抓包监控一切数据流量
由简单到复杂,从1到4去尝试破解抓包限制
运气比较好,对于快手,通过vpn转发至代理服务器就可以抓到我想要的数据了
!([img]https://img-blog.csdnimg.cn/20200619143933781.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MzUxNTE1,size_16,color_FFFFFF,t_70)
!([img]https://img-blog.csdnimg.cn/20200619143947823.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MzUxNTE1,size_16,color_FFFFFF,t_70#pic_center)
三、抓包分析
一切就为,啥也别问啥也别说直接抓包分析
随便找一个广告商品,进入就是去下单分析接口
流程走一遍,看抓包抓到的数据
逐个来分析:
1.获取商品接口
https://www.kuaijinniu.com/m/goods?productId=204801&layoutType=1&hyId=kuaijinniu_product&photoId=5254574897501273482&callback=07R-PghagpqRfiCw0OXoXN_ROEOC-o-OHGNIbquf_Hjk5fN73zcKp5bq_oyDzaEYxswqo8Osc7PMnQcK1NjNagTSHAgBdZ8gOcsaX4NLovPAj3_oLu-LZYbYBPuIeFimEnCVO-UnfG31CR_RF9Tnft7GdoUZ-tx41Vee9GOdBhkjvXD4DUNu-7S1On3YdHT090NrBELnU2Mkcr_wHCWrABIIekBIL0yY2lL1WryvAlK9TMSZ37O7aN9lLbQAE3E0Aq1OMcgt0jt86s4GDlUuHIXewgpZb1OuWca0DPe4Wdg9hAFwZk4AKQOzOpYu1PlPH_gzrjOM46-Rv4Dx0XJvkGt0m1ecEMEDJuxqxvPhZKzujXcpYHM1R66BcAm6SvjWJ1oViyXt9fBYPtkJOjzZkpY97osLJ2qGwbYhHs01bFVe_X2_HGr0H0rJa50rHLJ9YPRUk_Fz_8b72VCxxr12sMyi7RWdz4mOBpQSdg87QarejEGBBa00eZn2ydXiKJEs9ZB8d47yc6ZKVq-J2zH1uQBW2HlOl0hxfR68BW1EhuM
请求方式:GET
请求相关参数:productId callback
请求头:HOST, UA,CK
CK很明显就是快手的账号,里面包含 did,token,salt以及设备信息等
返回数据:HTML形式
看起来是动态渲染的页面
看到这样的url就有强迫症去web去访问一下
不管加上ck或者ua。都是访问不了的,
打开network看看书,请求了js文件,下断点分析,js使用了tracekit插件做浏览器堆栈跟踪,检测浏览环境以及设备信息分步去请求其他js和css去动态渲染
2.获取商品参数
https://www.kuaijinniu.com/rest/n/product/v2/detail?productId=204801&from=1&orderRef=&callback=07R-PghagpqRfiCw0OXoXN_ROEOC-o-OHGNIbquf_Hjk5fN73zcKp5bq_oyDzaEYxswqo8Osc7PMnQcK1NjNagTSHAgBdZ8gOcsaX4NLovPAj3_oLu-LZYbYBPuIeFimEnCVO-UnfG31CR_RF9Tnft7GdoUZ-tx41Vee9GOdBhkjvXD4DUNu-7S1On3YdHT090NrBELnU2Mkcr_wHCWrABIIekBIL0yY2lL1WryvAlK9TMSZ37O7aN9lLbQAE3E0Aq1OMcgt0jt86s4GDlUuHIXewgpZb1OuWca0DPe4Wdg9hAFwZk4AKQOzOpYu1PlPH_gzrjOM46-Rv4Dx0XJvkGt0m1ecEMEDJuxqxvPhZKzujXcpYHM1R66BcAm6SvjWJ1oViyXt9fBYPtkJOjzZkpY97osLJ2qGwbYhHs01bFVe_X2_HGr0H0rJa50rHLJ9YPRUk_Fz_8b72VCxxr12sMyi7RWdz4mOBpQSdg87QarejEGBBa00eZn2ydXiKJEs9ZB8d47yc6ZKVq-J2zH1uQBW2HlOl0hxfR68BW1EhuM
请求方式:GET
请求头:一样
返回:Json
明显就是获取商品的sku以及描述等信息
3.验证商品下单是否需要验证码
https://www.kuaijinniu.com/rest/n/order/needVerify
请求方式:GET
请求头:一样
返回:Json
{ "data": false, "msg": "OK", "result": 1}
4.检测下单用户合法性
https://www.kuaijinniu.com/rest/n/api/punish/user/detail?productId=204801
请求方式:GET
请求头:一样
返回:Json
{ "data": { "punishContent": "", "punishType": 0, "punishTypeName": "不惩罚", "userId": 1975028908 }, "msg": "OK", "result": 1}
5.诸如杂类的接口:
https://www.kuaijinniu.com/rest/n/risk/status
验证订单
https://www.kuaijinniu.com/rest/n/im/customService/entrySwitch?sellerId=3157619
获取数据
https://www.kuaijinniu.com/rest/n/v1/comment/list
获取商品相关评价
https://www.kuaijinniu.com/rest/n/user/getPhoneNo
获取用户手机
6.定时的记录用户操作log的接口
请求方式:POST
请求头:一样
https://wlog.kuaishou.com/rest/n/log/web/collect?referer=&did=ANDROID_123123&url=https%3A%2F%2Fwww.kuaijinniu.com%2Fm%2Fgoods%3FproductId%3D204801%26layoutType%3D1%26hyId%3Dkuaijinniu_product%26photoId%3D5254574897501273482%26callback%3D07R-PghagpqRfiCw0OXoXN_ROEOC-o-OHGNIbquf_Hjk5fN73zcKp5bq_oyDzaEYxswqo8Osc7PMnQcK1NjNagTSHAgBdZ8gOcsaX4NLovPAj3_oLu-LZYbYBPuIeFimEnCVO-UnfG31CR_RF9Tnft7GdoUZ-tx41Vee9GOdBhkjvXD4DUNu-7S1On3YdHT090NrBELnU2Mkcr_wHCWrABIIekBIL0yY2lL1WryvAlK9TMSZ37O7aN9lLbQAE3E0Aq1OMcgt0jt86s4GDlUuHIXewgpZb1OuWca0DPe4Wdg9hAFwZk4AKQOzOpYu1PlPH_gzrjOM46-Rv4Dx0XJvkGt0m1ecEMEDJuxqxvPhZKzujXcpYHM1R66BcAm6SvjWJ1oViyXt9fBYPtkJOjzZkpY97osLJ2qGwbYhHs01bFVe_X2_HGr0H0rJa50rHLJ9YPRUk_Fz_8b72VCxxr12sMyi7RWdz4mOBpQSdg87QarejEGBBa00eZn2ydXiKJEs9ZB8d47yc6ZKVq-J2zH1uQBW2HlOl0hxfR68BW1EhuM&ts=1592546067400&deviceResolution=1080x2340&screen=360x780&event=task&action=COUNT&tag=v2_ksbridge_call_on
请求方式:GET
请求头:一样
7.下单提交接口
https://www.kuaijinniu.com/rest/n/order/submit
请求方式:POST
请求头:Uuid TimeStamp DeviceInfo Sign CK
请求data:
下单最重要的还是看下单接口:
从headers来看,有sign有timestamp有deviceinfo 从格式来看timestamp是13位的时间戳,sign是md5加密
从data来看,有loginfo
完全跟其他接口不一样,简单的直接replay试一试,果然
一个一个排除,sign就是请求后在后端校验请求合法性的参数
目标很明确,直接奔向sign,只要sign搞定了直接可以模拟接口请求实现下单。
四、软件最终功能
1.支持快手金牛店铺货到付款自动批量下单
2.支持快手小店在线支付自动批量下单
3.支付自定义评价内容
4支付自定义图片+内容评价
软件整体界面