访问我的博客

前言

通过上一篇文章,想必你已经掌握了如何正确安装抓包神器 Charles,如果还是抓不了包,可以再看看。

今天要做是抓包实战,因为我在做网络文学的公司就职,所以就拿网络文学的 APP 掌阅开刀好了,以下进入抓包实战,体会 Charles 的强大之处!。

掌握了下面的抓包技巧,对于某些校验并不是十分严格的 APP 来说,破解他们的接口实在是轻而易举。比如修改个 isVip 参数为 true,就变身超级 VIP等;之前用这套抓包技巧,找了一个网校随便修改,发现要价上千至上万的课程竟然可以跳过校验直接被我播放下载,也是醉了。

希望大家掌握了抓包不要干违法的事情,本文目的在于让技术人员了解漏洞,加固校验,不被他人有机可乘,以免造成公司损失。

测试环境

环境:

  • Windows
  • Charles
  • iphone 7
  • 掌阅 APP 7.4.2

前提:手机已经连接 Charles 代理,并可以抓取 HTTPS 数据包。

一、Charles 的断点功能 Breakpoints 实战

首先登录掌阅 APP ,清空Charles 的抓包列表,以防止干扰实验,然后进入 APP 的个人中心,可以看到图中圈出的数值,这里我们对其数值进行修改。

此时看到 Charles 的请求列表中出现了 APP 的请求。

通过简单分析,可以知道个人中心的那些数据是从这个请求中获取到的,那么我们便修改这个请求,右键这个请求,选择 Breakpoints,这样就给这个请求加上了断点。此时切换 App 到 书架再切换回个人中心,会再次发送该请求,Charles 会弹出请求的断点,因为这里不需要修改请求参数,直接放行即可,选择 Execute;放行后,会再次弹出断点,此时就是响应返回的断点了,选择 Edit Response, 底部选择 JSON text 可以修改返回值,

我这里把 2 修改成了 2222,修改完之后,点击Execute,回到 App 发现已经更改了。

测试中发现,掌阅 App 的请求时间如果过长,修改之后也会不生效。
这就需要使用 Charles 的下一个牛 X 的功能了,Map 映射,让 Charles 自动返回我们想要的返回值。

二、Charles 的映射功能 Map 实战

上一个实验进行的时候,如果请求的响应时间过长,掌阅的 App 就会抛弃本次请求的结果,不对数据进行修改,因此我们需要更快的去修改返回值。

以前用 Fiddler 对于这种响应时间有要求的 App,反正我是束手无策的,APP 总是提示网络异常,响应超时等。如果是更改一两个返回值还可以,如果是多个,是真没辙了,所以 Charles 的 Map 功能是很强大的。

重复上一步,抓到个人中心的数据包,就是这个请求。

右键选择 Save Response 到一个文件当中去。

再次右键,选择该请求,为了不干扰实验,取消勾选上一步中的Breakpoints,然后再右键该请求,选择最下方 Map Local,选择刚才保存的文件。

注意这里的 Query,因为掌阅 APP 在请求时,附带了签名时间戳等参数,这里设置为 * 之后,就会忽略这些参数。
设置完成后,修改刚才保存的文件,使用 NotePad++ 等编辑器打卡,修改里面的 JSON 内容。
我改了部分数据,重新进入个人中心,查看 Charles 的请求内容,发现已经修改了

同时看 App 的个人中心也已经修改了,可以改很大的值,然后向不懂的人炫耀炫耀了哈哈哈~

三、Charles 的 Rewrite 实战

Rewrite 是对于 map 功能的一个补充,可以设置较为复杂的规则,下面演示替换 Body 内的用户名称

选择菜单栏 Tools -> Rewrite,选择开启 Rewrite, 并添加一条规则。替换 Body 体内的 We Jan 为 CCTV

APP再次发起请求,响应如下

参考

其实日常中,我们需要用到的地方基本以上三个都可以包含到了,其他深入学习的,可以参考下面的链接。

Charles抓包实战详解的更多相关文章

  1. 抓包工具:tcpdump抓包命令详解

    抓包工具:tcpdump抓包命令详解 简介: tcpdump全称:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以 ...

  2. fillder 抓包工具详解

    一.安装详解 直接点击.exe可执行文件,一直下一步直到安装完成即可.打开主要为5个部分: 二.安装jmeter插件详解 三.工具详解 3.1:工具条:,可以给指定的请求添加备注信息,在导出后可以查看 ...

  3. 三种经典iPhone上网络抓包方法详解

    此文章来自:听云博客 很多时候需要网络抓包分析,在iPhone上抓包稍有不同,下面介绍三种常用的方式.分析工具以wireshark为例. 一.最简单的方式:用PC作为热点,在PC上抓包 优点:简单 缺 ...

  4. TCPdump抓包命令详解--摘

    http://blog.csdn.net/s_k_yliu/article/details/6665673/ http://starsliao.blog.163.com/blog/static/890 ...

  5. Linux系统诊断必备技能之二:tcpdump抓包工具详解

    一.简述 TcpDump可以将网络中传送的数据包完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. Linux作为网络服 ...

  6. [转]Linux操作系统tcpdump抓包分析详解

    PS:tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具. t ...

  7. TCPdump抓包命令详解

    http://starsliao.blog.163.com/blog/static/89048201062333032563/ TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组 ...

  8. Fiddler 抓包工具详解

    Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能 ...

  9. fiddler抓包工具详解

    转自:http://www.cnblogs.com/yyhh/p/5140852.html Fiddler 抓包工具总结   阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Sta ...

随机推荐

  1. Alpha阶段敏捷冲刺(二)

    1.提供当天站立式会议照片一张. 2.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 祁泽文:上网了解了艾宾浩斯遗忘曲线算法. 徐璐琳:找交互模块的源 ...

  2. 最大流最小割学习 基本知识 | 证明 | FF算法

    可行流 : 能流过去就行,不一定是最大流. 最大流:能流到的最大流量.(可能不只一个) 解决最大流: Ford-Fulkerson方法 最小割:从图中去除一些边,使得源点S到汇点T不连通,去除的这些边 ...

  3. codeblock快捷键使用

    •在编辑区按住右键可拖动代码,省去拉滚动条之麻烦:相关设置:Mouse Drag Scrolling. •Ctrl+D可复制当前行或选中块. •可拖动选中块使其移动到新位置,按住Ctrl则为复制到新位 ...

  4. 使用UTL_HTTP时遭遇ORA-29273

    http://blog.itpub.net/8520577/viewspace-1295182/ 项目中需要使用utl_http访问webserivce.使用utl_http时报错ORA-29273. ...

  5. ReportMachine常见问题

    ReportMachine常见问题 2012-06-22 12:26:50|  分类: Delphi|举报|字号 订阅     下载LOFTER我的照片书  |     1.不打印特定的MemoVie ...

  6. Android-AndroidStudio-AVD启动不了-emulator: Process finished with exit code 1

    注意:解决此错误目前只针对Windows系统的电脑: 1.AndroidStudio-->AVDManager(Create Virtual Device): 2.提示AVD启动不了,同时Eve ...

  7. C#为什么不能像C/C++一样的支持函数只读传参

    C#为什么不能像C/C++一样的支持函数只读传参? 这个问题其实问的人挺多的,我自己也经常想实现这个功能,但是发现总是那么的不尽人意. 有些人倒是给出了一下答案,但是都不能很好的解决像C/C++一样的 ...

  8. dev gridview自动列宽和单元、行、checkbox选中和多选

    #region 自动列宽 for (int I = 0; I < gridView1.Columns.Count; I++) { this.gridView1.BestFitColumns(); ...

  9. Asp.Net Mvc异步上传文件的方式

    今天试了下mvc自带的ajax,发现上传文件时后端action接收不到文件, Request.Files和HttpPostedFileBase都接收不到.....后来搜索了下才知道mvc自带的Ajax ...

  10. 在Asp.Net MVC中利用快递100接口实现订阅物流轨迹功能

    前言 分享一篇关于在电商系统中同步物流轨迹到本地服务器的文章,当前方案使用了快递100做为数据来源接口,这个接口是收费的,不过提供的功能还是非常强大的,有专门的售后维护团队.也有免费的方案,类似于快递 ...