爬虫 京东登录协议分析
最近在研究京东登录的协议,这里简单记录下分析过程
京东登录的流程可分解如下:
- 请求登录界面(url是京东-欢迎登录 (jd.com))
- 输入用户名密码
- 点击登录
- 滑块验证码验证
- 登录成功
协议报文分析用Fiddler抓包,这里直接从最后一步登录作为切入点
登录请求
从抓包中可以明显发现登录的请求url是:https://passport.jd.com/uc/loginService
请求的报文如下
一个个字段来看看:
uuid:可以在登录页面请求中得到
r:是一个时间戳,写死也可以
version:版本号,可以写死
eid:每次请求都一样,通过调试,发现是JS生成的,大概是根据环境生成的,这里可写死
fp:每次请求都一样,通过调试,发现也是JS生成的,可写死
_t:每次请求都一样,可写死
loginType:每次请求都一样,可写死
loginname:登录的用户名
nloginpwd:这个肯定是密码了,加密算法需要再分析
authcode:查询报文,是url:https://iv.jd.com/slide/g.html中返回的,猜测是滑块验证码
pubKey:可以在登录页面请求中得到
sa_token:可以在登录页面请求中得到
seqSid:查找抓包文件,可以在https://seq.jd.com/jseqf.html?bizId=passport_jd_com_login_pc&platform=js&version=1请求中得到
useSlideAuthCode:每次请求都一样,可写死
综上所诉,需要继续分析的字段是滑块验证码authcode和密码nloginpwd
滑块验证码
请求url:https://iv.jd.com/slide/g.html
请求的报文如下:
一个个字段来看看:
callback:回调函数,可写死
lang:每次请求都一样,可写死
o:登录的用户名
s:与登录请求中的seqSid一致
e:与登录请求中的eid一致
product:每次请求都一样,可写死
scence:每次请求都一样,可写死
appId:可以在登录页面请求中得到
w:每次请求都一样,可写死
最后就是最难的两个字段d和c了
d:这个字段通过查找js,有如下代码
通过设置断点可以看到具体值:
通过多次断点,可以发现以下规律
- 数组的长度和滑块缺口距离成正比
- 数组的第0组不变
- 数组第一列最后一个值减去第一个值,恰好是滑块缺口的位移,可以确定是横向的轨迹
- 数组第二列变化不大,可以确定是纵向的轨迹
- 数组第三列是时间戳
可以确定这里就是滑块轨迹的代码,其中c参数就是滑块的轨迹,d就是轨迹通过gc函数运算得出的
c:查找报文,是https://iv.jd.com/slide/g.html?appId=1604ebb2287请求获取的,报文如下:
appid:可以在登录页面请求中得到
scene:每次请求都一样,可写死
product:每次请求都一样,可写死
e:与登录请求中的eid一样
lang:每次请求都一样,可写死
callback:回调函数,可写死
可以看到请求返回的challenge就是我们要的值,同时返回的还有bg和patch,应该就是滑块验证码的图片和滑块了,可以利用该图片计算出缺口的位置,作为生成滑块轨迹的参数
密码加密
通过查找js文件,发现是如下代码生成的:
因此只需要知道pubkey就可以计算出密码的值,这个pubkey可以在登录界面得到
至此,所有登录过程的协议都已经破解,相信能看到这里的朋友,也能写出对应的代码了,只是轨迹的部分,由于京东的人工智能校验,不容易通过,需要不停的维护更新才可以。欢迎有兴趣的朋友来技术交流。
原创不易,转载请注明出处,谢谢!
爬虫 京东登录协议分析相关推荐
- webqq登录协议分析
webqq登录协议分析 通过webqq接口,可以实现发送.接收qq消息. 1.首先调用:http://ptlogin2.qq.com/check?appid=1002101&uin=qq号码& ...
- 某游戏盒登录协议分析
前言 距离上次写博客已经过去了一个月,博主本人在这期间也分析了不少案列,这次分享一个比较综合的案例,难易程度偏简单,适合协议分析练手,下面直接进入正题. 准备工作 首先我们得安装抓包软件,我这里是用F ...
- 小米登录协议分析_小米回应小米11充电头兼容问题
小米11从上市销售至今已经几天时间,相信第一批入手的消费者也都收到了这款骁龙888旗舰.从网友们的使用反馈来看,小米11(点此查看评测)在充电方面出现了一些问题,并且该问题现在得到了官方的回应.元旦期 ...
- 小米登录协议分析_小米温湿度传感器协议分析
博主喜欢玩智能家居的东西,智能家居确实能给家里带了不少的方便. 天气热了,博主想做一个:当屋子有人,并温度高于33度时,开空调.博主已有了一套自家的智能家居系统,有网关.人体红外传感器.红外转发器,就 ...
- 小米登录协议分析_性能测试篇之Loadrunner与ida工具结合完成java vuser协议的脚本...
你这么优秀,一定只想把"柠檬班"置顶 ▲ → 性能3期优秀作业 利用lr的java vuser协议完成 (登录,md5加密完成重置支付密码,获取订单列表)请求,并加if判断完善脚本 ...
- python爬虫-京东登录
在写爬虫的时候,解决登陆问题往往是比较麻烦的事情.这里介绍一下京东网站的登陆方法. 登陆到京东的首页,我们看到最上方有一个登陆链接,点进去之后是这样: https://passport.jd.com/ ...
- 小米登录协议分析_小米智能家居设备流量分析及脚本控制
原标题:小米智能家居设备流量分析及脚本控制 *本文作者:scu-igroup,本文属 FreeBuf 原创奖励计划,未经许可禁止转载. 前言 万物互联的时代即将来临,而现阶段,我们能感触到的,当属智能 ...
- “陌x”登录协议分析
1.抓包 抓两次 2.对比 3.我们来方法刨析一下 登录 他一定有一个点击事件 我们搜onclick 方法刨析了一下 发现没找到有效的信息 4.我们来直接使用jadx-gui来搜索抓取到的字段 居然只 ...
- 小米登录协议分析_联想前副总裁常程跳槽小米数月后,波澜再起
► 文 观察者网 吕栋今年初,联想集团前副总裁常程离职2天即加盟小米,这一举动是否违反竞业协议,双方当时曾各执一词.最近,由于联想方面在北京提起劳动仲裁,此事也再度引发舆论关注.9月21日,针对&q ...
- 小米登录协议分析_520小米抢购HTTP协议分析
首现是这次抢到的结果(看来我不适合做黄牛) 下面是整个过程的HTTP通信协议分析: 每个手机都有一个编号比如:. note联通 2141800009 note 移动增强 214180000 ...
最新文章
- 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [6] 朴素贝叶斯实践
- 无插件web直播解决方案,ffmpeg+nginx-http-flv-module+flv.js
- 在WEB自定义控件中实现自动回传功能
- Tencent Blade team荣获小米安全年度最佳守护者
- linux文件系统概念目录结构
- extern “C“解决链接问题
- var _ biz.GreeterRepo = (*greeterRepo)(nil)的总结
- 阿里云印尼大区开服,助力“一带一路”发展数字经济
- java把字体做成滚动的_Scroll text - JS实现文字自动循环滚动效果
- linux 串口 dma,STM32 USART串口DMA 接收和发送流程详解
- 论坛源码推荐(12月24日):OS X原生开源游戏模拟器OpenEmu iOS 7条形码扫描器
- 60秒学脑科学常识:《科学美国人》专栏文集
- 狗年出生的宝宝取名都有哪些注意事项呢?起名真不是简单事
- 轻松绘制图像图形!且看Aspose新产品GDI +图形处理API-Aspose.Drawing如何操作!
- 如何使用免费软件实现iPad当Windows电脑副屏的效果
- 巅峰战舰正在连接服务器,人气冲天《巅峰战舰》火爆连续加开服务器
- 如何用turtle画椭圆?
- .net后台实现ping网关地址操作
- 轻院2218: 小明的数字游戏( 给你n个数字,把这n个数字拼接起来,最大能拼出的数字是多少?)
- DNN中的BP和RNN中的BPTT推导