最近在研究京东登录的协议,这里简单记录下分析过程

京东登录的流程可分解如下:

  1. 请求登录界面(url是京东-欢迎登录 (jd.com))
  2. 输入用户名密码
  3. 点击登录
  4. 滑块验证码验证
  5. 登录成功

协议报文分析用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,有如下代码

通过设置断点可以看到具体值:

通过多次断点,可以发现以下规律

  1. 数组的长度和滑块缺口距离成正比
  2. 数组的第0组不变
  3. 数组第一列最后一个值减去第一个值,恰好是滑块缺口的位移,可以确定是横向的轨迹
  4. 数组第二列变化不大,可以确定是纵向的轨迹
  5. 数组第三列是时间戳

可以确定这里就是滑块轨迹的代码,其中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可以在登录界面得到

至此,所有登录过程的协议都已经破解,相信能看到这里的朋友,也能写出对应的代码了,只是轨迹的部分,由于京东的人工智能校验,不容易通过,需要不停的维护更新才可以。欢迎有兴趣的朋友来技术交流。

原创不易,转载请注明出处,谢谢!

爬虫 京东登录协议分析相关推荐

  1. webqq登录协议分析

    webqq登录协议分析 通过webqq接口,可以实现发送.接收qq消息. 1.首先调用:http://ptlogin2.qq.com/check?appid=1002101&uin=qq号码& ...

  2. 某游戏盒登录协议分析

    前言 距离上次写博客已经过去了一个月,博主本人在这期间也分析了不少案列,这次分享一个比较综合的案例,难易程度偏简单,适合协议分析练手,下面直接进入正题. 准备工作 首先我们得安装抓包软件,我这里是用F ...

  3. 小米登录协议分析_小米回应小米11充电头兼容问题

    小米11从上市销售至今已经几天时间,相信第一批入手的消费者也都收到了这款骁龙888旗舰.从网友们的使用反馈来看,小米11(点此查看评测)在充电方面出现了一些问题,并且该问题现在得到了官方的回应.元旦期 ...

  4. 小米登录协议分析_小米温湿度传感器协议分析

    博主喜欢玩智能家居的东西,智能家居确实能给家里带了不少的方便. 天气热了,博主想做一个:当屋子有人,并温度高于33度时,开空调.博主已有了一套自家的智能家居系统,有网关.人体红外传感器.红外转发器,就 ...

  5. 小米登录协议分析_性能测试篇之Loadrunner与ida工具结合完成java vuser协议的脚本...

    你这么优秀,一定只想把"柠檬班"置顶 ▲ → 性能3期优秀作业 利用lr的java vuser协议完成 (登录,md5加密完成重置支付密码,获取订单列表)请求,并加if判断完善脚本 ...

  6. python爬虫-京东登录

    在写爬虫的时候,解决登陆问题往往是比较麻烦的事情.这里介绍一下京东网站的登陆方法. 登陆到京东的首页,我们看到最上方有一个登陆链接,点进去之后是这样: https://passport.jd.com/ ...

  7. 小米登录协议分析_小米智能家居设备流量分析及脚本控制

    原标题:小米智能家居设备流量分析及脚本控制 *本文作者:scu-igroup,本文属 FreeBuf 原创奖励计划,未经许可禁止转载. 前言 万物互联的时代即将来临,而现阶段,我们能感触到的,当属智能 ...

  8. “陌x”登录协议分析

    1.抓包 抓两次 2.对比 3.我们来方法刨析一下 登录 他一定有一个点击事件 我们搜onclick 方法刨析了一下 发现没找到有效的信息 4.我们来直接使用jadx-gui来搜索抓取到的字段 居然只 ...

  9. 小米登录协议分析_联想前副总裁常程跳槽小米数月后,波澜再起

    ►  文 观察者网 吕栋今年初,联想集团前副总裁常程离职2天即加盟小米,这一举动是否违反竞业协议,双方当时曾各执一词.最近,由于联想方面在北京提起劳动仲裁,此事也再度引发舆论关注.9月21日,针对&q ...

  10. 小米登录协议分析_520小米抢购HTTP协议分析

    首现是这次抢到的结果(看来我不适合做黄牛) 下面是整个过程的HTTP通信协议分析: 每个手机都有一个编号比如:. note联通    2141800009 note 移动增强    214180000 ...

最新文章

  1. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [6] 朴素贝叶斯实践
  2. 无插件web直播解决方案,ffmpeg+nginx-http-flv-module+flv.js
  3. 在WEB自定义控件中实现自动回传功能
  4. Tencent Blade team荣获小米安全年度最佳守护者
  5. linux文件系统概念目录结构
  6. extern “C“解决链接问题
  7. var _ biz.GreeterRepo = (*greeterRepo)(nil)的总结
  8. 阿里云印尼大区开服,助力“一带一路”发展数字经济
  9. java把字体做成滚动的_Scroll text - JS实现文字自动循环滚动效果
  10. linux 串口 dma,STM32 USART串口DMA 接收和发送流程详解
  11. 论坛源码推荐(12月24日):OS X原生开源游戏模拟器OpenEmu iOS 7条形码扫描器
  12. 60秒学脑科学常识:《科学美国人》专栏文集
  13. 狗年出生的宝宝取名都有哪些注意事项呢?起名真不是简单事
  14. 轻松绘制图像图形!且看Aspose新产品GDI +图形处理API-Aspose.Drawing如何操作!
  15. 如何使用免费软件实现iPad当Windows电脑副屏的效果
  16. 巅峰战舰正在连接服务器,人气冲天《巅峰战舰》火爆连续加开服务器
  17. 如何用turtle画椭圆?
  18. .net后台实现ping网关地址操作
  19. 轻院2218: 小明的数字游戏( 给你n个数字,把这n个数字拼接起来,最大能拼出的数字是多少?)
  20. DNN中的BP和RNN中的BPTT推导

热门文章

  1. win环境sftp软件_Windows环境下使用bitvise架构sftp服务器
  2. 微信小程序开发页面跳转教程
  3. 单机:Oracle单机数据库一键安装(11GR2/12C/18C/19C/21C)
  4. 反射机制,类的加载机制,和注解的配置参数的结合使用详解
  5. 工程项目管理系统源码
  6. 计算机操作系统-1-总览
  7. 微信小程序登陆流程详详详解 看这一篇就够了
  8. centos7安装wget
  9. js字符串分割split()
  10. Delphi7--运算符和表达式