工具Fiddler/python3

打开Fiddler,清空一下Fidder里面的请求记录

打开app,进行登录,注意Fiddler里的请求变化

在弹出app登录的时候Fiddler里已经有了四个请求,如下:

注意看一下第一个请求的URL中的信息   "login.do?",那需要分析的就是这个请求了

右键这个请求,copy->Headers only,然后把所有请求信息全部拿出来,请求信息如下,在请求的时候已经有了cookie信息,不知道cookie是从哪里生成的 #之后对比的时候发现这个cookie是上一次请求时的cookie(参考上一篇文章 http://www.cnblogs.com/Jacck/p/7704832.html),也就是说有个地方记录的最后的请求cookie信息然后下一次登录还带着这个cookie去请求登录

GET http://xxx.com/account/login.do?userId=xxx&token=xxx HTTP/1.1
Host: xxx.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 Safari/537.36
Accept-Encoding: gzip,deflate
Accept-Language: en-us,en
Cookie: xxx HTTP/1.1 200 OK
Server: nginx/1.2.2
Date: Sat, 21 Oct 2017 07:24:13 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: private
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
Set-Cookie: xxx; path=/; HttpOnly
X-Powered-By: ASP.NET
Content-Encoding: gzip

把请求的url单独拿出来放到浏览器中直接访问,显示信息如下,分析一下浏览器请求详细信息

Fiddler中刚才浏览器的请求在这

右键,Copy->Herders only,把请求信息拿到,如下

GET http://xxx.com/account/login.do?userId=xxx&token=xxx HTTP/1.1
Host: xxx.com
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: qgqp_b_id=xxx; st_pvi=xxx; _qddaz=QD.emt8s7.goudx0.j8ubqjuz; pgv_pvi=xxx HTTP/1.1 200 OK
Server: nginx/1.2.2
Date: Sat, 21 Oct 2017 07:44:15 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: private
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Content-Encoding: gzip

对比一下app登录时候的请求信息,还是有些地方不一样,但是除了cookie的请求头都可以直接创建,试着把除cookie信息之外的请求头信息头都设置成一样再次发送请求

python 请求代码如下

import requests

url = 'http://xxx.com/account/login.do?userId=xxx&token=xxx'
headers={
"Host":"xxx.com",
"Connection": "keep-alive",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 Safari/537.36",
"Accept-Encoding": "gzip,deflate",
"Accept-Language": "en-us,en" }
r = requests.get(url,headers=headers)
print (r.text)

请求结果如下

模拟登录信息失败,所以cookie信息一定要有,而这个cookie去哪里拿呢

试着把Fiddler里面登录成功的那个cookie拿出来带着那个cookie再请求一次#第一次用app登录 Fidder分析的第一个请求,在request headers里面加一个Cookie值,代码就不贴出来了

运行结果如下:

这是怎么回事呢? 带了Cookie也请求不到

去app中点击某个查询去看看他现在的Cookie是什么

app内显示网络不正常刷新了一下,然后去看看Fiddler里发生了什么

请求中又有了一个登陆请求,查看他的cookie是什么

对比了一下 Cookie中多了一个参数名字“ct” #应该是current time的意思吧


返回的时候

Set-Cookie又把一个参数修改掉了“cm”参数

python配合Fiddler获取windows app登录时生成cookie实例的更多相关文章

  1. 安卓,支付宝app登录时,提示 服务器安全证书已过期或不可信任,请问怎么解决

    安卓,支付宝app登录时,提示 服务器安全证书已过期或不可信任,请问怎么解决 请把手机时间调成当前时间.

  2. APP登录时Token认证过程

    1.App登录Token登录机制: 一般第一次安装App后,会让你进行注册后登录,而只要登录成功后,以后的每次启动App都是登录状态, 不需要每次启动时再登录.但有些App你若长期没有启动,它会提示你 ...

  3. Python使用wmi获取Windows相关信息

    在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获取, 什么是wmi? WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问.配置.管理和监 ...

  4. python wmi模块 获取windows内部信息

    WMI (Windows Management Instrumentation) 模块可用于获取 Windows 内部信息,在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获 ...

  5. 用PYTHON + PYWIN32 + WMI获取WINDOWS系统基本信息

    网上原码,去了DECODE编码的问题. PyScripter这个PYTHON的IDE工具在WIN下表现不错哟. 感觉比SPYDER,ERIC,SUBLEME TEXT3之类的好用呀.. #!/usr/ ...

  6. 利用python 与 wmi 获取WINDOWS基本信息

    #!/usr/bin/env python3.5 # -*- coding:utf8 -*- import platform import subprocess import wmi def serv ...

  7. 使用Fiddler获取手机app数据

    参考资料:https://www.jianshu.com/p/9e05a2522758 Fiddler下载地址   https://www.telerik.com/download/fiddler

  8. php注册登录时生成的验证码

    http://blog.sina.com.cn/s/blog_8173443e01012l82.html 记得我学php时第一件事就是研究登陆注册.当然,登陆少不了验证码.两年过去了,昨天突然想用个验 ...

  9. 有关WINDOWS XP登录密码的几种方法

    网上关于破解WINDOWS XP登录密码的几种方法很多,但许多根本不行.我现在总结自己试过几种,这几种方法其实均比较菜的,但可行的.WINDOWS XP登录是由SAM 文件管理的,总体来说“山姆大叔” ...

随机推荐

  1. 【转】将Centos的yum源更换为国内的阿里云源

    摘要: 阿里云是最近新出的一个镜像源.得益于阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源. 阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ CentOS ...

  2. Vue2.0原理-模板解析

    下面这段代码,vue内部做了什么操作?我去源码里面找找看 new Vue({ el: '#app' }) 入口 vue 的入口文件在 src/core/instance/index.js, 里面一进来 ...

  3. MySQL日志系统:redo log与binlog

    日志系统主要有redo log(重做日志)和binlog(归档日志).redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志 ...

  4. hover时显示可跟随鼠标移动的浮动框,运用函数节流与去抖进行优化

    在很多笔试面试题中总能看到js函数去抖和函数节流,看过很多关于这两者的讨论,最近终于在一个需求中使用了函数去抖(debounce)和函数节流(throttle). 需要完成的效果是,鼠标在表格的单元格 ...

  5. Selenium笔记:PO模型

    所有用到的页面都定义成一个类,继承自基础的Page类 把页面中用到的元素定义成方法 把页面上一些操作定义成方法

  6. Netty源码分析第1章(Netty启动流程)---->第3节: 服务端channel初始化

    Netty源码分析第一章:Netty启动流程   第三节:服务端channel初始化 回顾上一小节的initAndRegister()方法: final ChannelFuture initAndRe ...

  7. Netty源码分析第3章(客户端接入流程)---->第5节: 监听读事件

    Netty源码分析第三章: 客户端接入流程 第五节: 监听读事件 我们回到AbstractUnsafe的register0()方法: private void register0(ChannelPro ...

  8. docker 安装vim

    执行以下命令 apt-get update apt-get install vim

  9. linux一切皆文件之文件描述符(一)

    一.知识准备 1.在linux中,一切皆为文件,所有不同种类的类型都被抽象成文件.如:普通文件.目录.字符设备.块设备.套接字等 2.当一个文件被进程打开,就会创建一个文件描述符.这时候,文件的路径就 ...

  10. kali linux执行apt-get update失败(数字签名过期)

    想要安装某个软件,执行apt-get update 失败,出现下面的错误: 自己查看了更新源是没有问题的,根据提示的错误google了一下,发现是数字签名过期了. 执行下面命令: apt-key ad ...