抓包(Charles工具入门)

一、charles工具简单使用

1、录制操作

录制请求、清空录制请求:

  

 

两种展示请求的视图方式:

   

 

2、录制请求的简单分析

(1)请求的总览页面Overview:可查看请求路径、请求方式、请求时间等有关该请求的内容

  

(2)request:由本机发送出去的请求

request的请求数据:

  

request-cookies:

  

(3)response:由服务器返回的数据

  

三、filter:过滤

在sequence视图下,过滤请求数据。

  

 

二、抓包

1、抓包的简单介绍

  抓包:(1)浏览器发出的所有请求,都可以用抓包工具抓到;也可以查看服务端返回的信息;

     (2)如果开发不写接口文档,可以通过charles抓包,获取接口数据:请求参数等内容;

     (3)charles可以模拟弱网测试(测试app时需要模拟2G网络、3G网络);

     (4)https的请求:是花钱的,是加密传输的,没有公司的证书是抓不到的。

              一般的https是抓不到的,可以在charles中导入证书去进行抓包。

              (现在IOS必须要求是https的请求。)

2、抓包的作用  

(1)定位问题(可以定位是服务端还是客户端的问题)

    例如:发现一个bug,不能确定是后端的问题,还是前端的问题,则可以通过抓包工具抓包,

        查看response服务器返回的信息是否正确,若服务器返回的信息正确,则证明是前端的问题,

        反之则是后端的问题。

(2)篡改请求(篡改请求能用于测试系统的其他的异常情况)

     例如:a.可以测试后端传回一个特别长的字段(超出字段的限制),查看前端是否能正常显示,

        前端是否有限制,客户端是否校验好;(比如测试查询余额的时候,传回一个超长数字)。

       b.或测试前端向后台传一个超长的数据,后台是否有做限制。

      

三、篡改数据练习 

a.篡改请求

第一步:在所需要拦截的请求处,点击右键,勾选断点(Breakpoints)。

    

第二步:清空所有抓取到的请求

第三步:重新访问请求,会自动跳出charles的编辑请求的界面

    

第四步:查看浏览器接收到的返回信息

    

b.篡改返回:

第一步:与篡改请求操作一致,在所需要拦截的请求处,勾选断点;

第二步:清空抓取的请求;

第三步:重新在浏览器访问页面,会首先弹出篡改请求的页面,此处不篡改,直接继续执行;

    

第四步:弹出篡改返回的页面,修改返回内容;

    

第五步:查看浏览器接收到的页面显示。

    

四、手机抓包

1、打开charles,必须保证手机和电脑是在一个局域网里面
2、手机设置代理
      服务器写自己电脑的ip
      端口号呢,默认是8888,可自行修改

a.查看charles设置的端口号:Proxy->Proxy Settings

    

 b.手机设置

  

 3、手机设置弱网(Proxy->Throttle Settings)

(1)Proxy->Throttle Settings

  

 (2)Throttle preset:设置网络,比如3G、4G、8M/s、16M/s等;

Bandwidth(kbps):设置上传下载速度

  

 

 

 

附:抓包工具还有fildder等。

附:抓包工具只能修改本机的返回值发送值,若修改其他机器的数据,则涉及到安全测试了,不会安全测试。

另有搜索到的博客地址,可用于学习:

http://www.cnblogs.com/jiayuchn-test/p/8875105.html

https://www.cnblogs.com/mawenqiangios/p/8270238.html

https://blog.csdn.net/dongyuxu342719/article/details/78933618

转载于:https://www.cnblogs.com/Noul/p/9111808.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探秘创造力

为什么80%的码农都做不了架构师?>>> 创造力,在很多行业和领域都被视为神奇的存在,大家都希望自己的创造力能够无限,感觉创造力已经被神话了。其实,一个简单问题可能很少人能够明确:”创造力是天…

2017.10.23解题报告

预计分数:100600160 实际分数:100800180 T1 题目描述 现在有一个字符串,每个字母出现的次数均为偶数。接下来我们把第一次出现的字母a和第二次出现的a连一条线,第三次出现的和四次出现的字母a连一条线,第五次出现的和六…

Chrome Android 60.X+ 不能自动播放audio音频的解决办法

Chrome Android等一些浏览器默认限制了自动播放音频视频等,需要用户有点击的动作后才可以播放。这样的原因在于很多用户流量需要付费,而限制了自动播放可以避免用户在不知情的情况下产生高额的流量费用。 在60.X版本之前,chrome://flags中有一…

(水一下)Linux启动步骤(面试题)

1.加载并初始化Linux内核2.配置硬件设备3.内核创建自发进程4.由用户决定是否进入手工引导模式5.init进程执行系统启动脚本6.进入多用户模式转载于:https://blog.51cto.com/12942223/2408649

【WebGL】《WebGL编程指南》读书笔记——第5章

一、前言 终于到了第五章了,貌似开始越来越复杂了。 二、正文 Example1:使用一个缓冲区去赋值多个顶点数据(包含坐标及点大小) function initVertexBuffers(gl) {var verticesSizes new Float32Array([0.0, 0.5, 10.0, -0.5, …

ngnix反向代理

https://blog.csdn.net/sherry_chan/article/details/79055211转载于:https://www.cnblogs.com/lwj820876312/p/9115308.html

框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明

2019独角兽企业重金招聘Python工程师标准>>> 在发布完:框架设计:实现数据的按需更新与插入的改进 之后: 有网友表示不理解,于是这里给出一篇简单的说明对比,表示下改进后好处。 一:场景一&#…

Java异常详解及如何处理

来源:Java异常详解及如何处理 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户&…

端口以及服务常用cmd

netstat -ano 列出所有端口的情况 netstat -aon|findstr "49157" 查出特定端口的情况 tasklist|findstr "2720" 查看是哪个进程或者程序占用了PID端口的程序 打开任务管理器,切换到进程选项卡&#xff…

python学习笔记(二十八)日志模块

我们在写程序的时候经常会打一些日志来帮助我们查找问题,这次学习一下logging模块,在python里面如何操作日志。介绍一下logging模块,logging模块就是python里面用来操作日志的模块,logging模块中主要有4个类,分别负责不…

TransactionScope 的基本原理简介

C# 的事务编程 1 Db事务 DbConnection 中创建基于当前连接的 DbTransaction 2 使用TransactionScope ,创建环境事务 一旦创建,在这个环境包含的DbConnection 实例 都会根据连接字符串中的 Sqlserver 连接字符串支持,是否自动附加当前环境事务. 连接字符…

Canvas 生成交互动画

2019独角兽企业重金招聘Python工程师标准>>> 今天介绍的是一个HTML5交互动画效果,难以置信。HTML5虽说还有很多东西在改进,但现在所能实现的 效果的程度我想是诸位很难想象得到的,实在是发展得太快了。 查看详情 转载于:https://m…

Spark记录-Scala数据类型

Scala与Java具有相同的数据类型,具有相同的内存占用和精度。以下是提供Scala中可用的所有数据类型的详细信息的表格: 序号数据类型说明1Byte8位有符号值,范围从-128至1272Short16位有符号值,范围从-32768至327673Int32位有符号值&…

二分搜索技术

2019独角兽企业重金招聘Python工程师标准>>> 分治法的基本思想:将一个规模为n的问题,分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归的解这些子问题,然后将各个子问题的解合并得到原问题的解。 经…

数据库连接情况查询

--sp_who 可以指定数据库名,查询指定数据库的连接情况 sp_who go select DB_NAME(database_id) dbname, login_name, t1.session_id, t1.request_id, t2.status, t1.start_time, host_name from sys.dm_exec_requests t1inner join sys.dm_exec_sessions t2 on…

apachacxf项目使用@WebService报错

首先去除已经导入的包那是因为我们要导入javaee的api,首先点击最下面这个选择自己电脑上的路径然后就会自动导入上面的包,同时在jar库上也会出现转载于:https://www.cnblogs.com/fengnan/p/9311949.html

windows下redis 开机自启动

1,在redis的目录下执行(执行后就作为windows服务了)redis-server --service-install redis.windows.conf 2,安装好后需要手动启动redisredis-server --service-start 3,停止服务redis-server --service-stop 4&#xf…

Java中的属性和方法

题目 实体类 测试类 转载于:https://www.cnblogs.com/maoxiuying/p/9130361.html

《JavaScript》高级程序设计---第3章

3.基本概念 松散类型:所谓松散类型就是可以用来保存任何类型的数据。给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误。Object本质上由一组无序的名值对组成。未经初始化的默认值就会取得undefined值。True和False都不是Boolean值,只是标识符。如果…

2019-06-13 Java学习日记之MySql

数据库概述: 1、什么是数据库,数据库有什么作用? 数据库就是存储数据的仓库,气本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及…