文档章节

利用Fiddler拦截接口请求并篡改数据

o
 osc_msepeizi
发布于 2019/04/10 10:10
字数 920
阅读 88
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

近期在测试一个下单的项目,出于安全角度考虑,测试了一个场景,那就是利用工具对接口进行拦截并篡改数据。将接口一拦截并篡改数据后,发现收货满满。开发默默接受了我的建议,并对代码进行了修改。

对于fiddler的操作,网上帖子很多,该方法一查就很多,我还将此写出来,是记录下自己的实践时刻。

拦截HTTP请求

使用Fiddler进行HTTP断点调试是fiddler一强大和实用的工具之一。通过设置断点,Fiddler可以做到:
①修改HTTP请求头信息。例如修改请求头的UA,Cookie,Referer信息,通过“伪造”相应信息达到相应的目的(调试,模拟用户真实请求等)。
②构造请求数据,突破表单的限制,随意提交数据。避免页面js和表单限制影响相关调试。
③拦截响应数据,修改响应实体。
 
设置断点共有两种方式:
①fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。有两个断点位置:
1)before request。也就是发送请求之前,Fiddler代理中转之前,这时可以修改请求的数据。
2)after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。
3)如何消除命令呢?点击Rules->Automatic Breakpoint->Disabled
如下图所示:

 

②命令行设置断点
1)bpu在请求开始时中断
2)bpafter在响应到达时中断
3)bps中断HTTP响应状态为指定字符的全部session响应
4)bpv/bpm中断指定请求方式的全部session响应
 
示例一:
命令行输入:bpm www.baidu.cm(拦截www.baidu.com请求)
解除拦截:输入命令:bpu
示意图如下所示:
 
示例二:
命令行输入:bpuafter www.baidu.cm(拦截www.baidu.cm返回值)
解除拦截:输入命令:bpuafter
示意图如下所示:

 

结合实际操作,打开fiddler,去拦截提交订单的那个接口,设置成:rules->automatic Breakpoints->before response,在页面上提交订单,拦截效果如下所示,页面中一直在加载
 

修改数据

拦截HTTP请求后修改方式有两种,一种是临时修改,即结果只对当次请求有效,另一种是永久修改,可以通过urlreplace命令实现。
①临时修改请求
即在fiddler中执行Inspectors->WebForms,修改请求变量参数后执行Run to Completion,服务器返回新的请求结果
②永久性修改请求
1)命令行设置修改规则,修改请求:urlreplace 旧请求值 新请求值
fiddler命令行输入:urlreplace uuid=103 uuid=105
其中uuid是请求参数,输入命令后回车即可,新的请求设置成功,除非释放请求,否则请求值不变,释放请求命令urlreplace
2)脚本中修改规则,打开脚本方式:fiddler执行Rules->Customize Rules

在fiddler中修改订单数据后,点击Run to Completion按钮,实现数据篡改,页面中的数据修改成功,这里就不上图了,嘿嘿

 

通过fiddler实现拦截,篡改数据就是这么简单,在实际测试工作中,很实用的工具,具体的fiddler基本使用,可参见我另一篇博客,Fiddler抓包工具使用详解,希望对大家有帮助,仅以此记录下自己篡改数据成功的时刻。

原文出处:https://www.cnblogs.com/hong-fithing/p/10727178.html

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.3K
6
用vertx实现高吞吐量的站点计数器

工具:vertx,redis,mongodb,log4j 源代码地址:https://github.com/jianglibo/visitrank 先看架构图: 如果你不熟悉vertx,请先google一下。我这里将vertx当作一个容器,上面所有的圆圈要...

jianglibo
2014/04/03
3.9K
3
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
21
代码生成器--Codgen

Codgen是一个基于数据库元数据模型,使用freemarker模板引擎来构建输出的代码生成器。freemarker的数据模型结构通常来说都是一个Map树状结构模型,codgen也不例外,它的数据模型这棵树的根节...

黄天政
2013/01/29
1.4W
2

没有更多内容

加载失败,请刷新页面

加载更多

在新标签页(而不是新窗口)中打开URL - Open a URL in a new tab (and not a new window)

问题: I'm trying to open a URL in a new tab, as opposed to a popup window. 我正在尝试在新选项卡(而不是弹出窗口)中打开URL 。 I've seen related questions where the responses wo......

富含淀粉
今天
17
0
HTML中id属性的有效值是什么? - What are valid values for the id attribute in HTML?

问题: 为HTML元素创建id属性时,该值有哪些规则? 解决方案: 参考一: https://stackoom.com/question/IMN/HTML中id属性的有效值是什么 参考二: https://oldbug.net/q/IMN/What-are-vali...

法国红酒甜
今天
25
0
mysql innodb 可重复 幻读问题

1 mvcc 解决快照读幻读 2 GAP 锁解决 当前读幻读 (insert时 插入意向锁会等待GAP锁)

yzzzzzzzz
今天
25
0
画风清奇,用开源机器人项目实现“云毕业典礼”

本文作者:o****0 前几天,南京邮电大学的一场毕业典礼引起了吃瓜群众的热议,先来看看这个画风: 由于疫情原因,很多高校的学生只能在家里通过线上视频的方式完成毕业论文答辩。答辩通过后,...

百度开发者中心
07/31
16
0
2020年TOP7的编程语言和框架,它们至少还能风靡全球5年以上

在本文中,我们将看一看由我推荐的编程语言和框架列表,我相信在接下来的5年至10年中,对于开发者来说,这份列表中的语言和框架仍然会有用。同时考虑到我不希望该列表仅是另一个备受好评的编...

京东智联云开发者
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部