测试需求:有一个功能,允许用钻石兑换金币,假设1钻石=1金币,前端控制一次至少兑换10个,最多100个,后台不做验证。
测试方案:输入10,也就是告诉前端我要兑换10个金币,等前端验证通过之后,截取要发送给后台的http请求,修改成100个,而后台没有做任何校验,会直接返回给客户端100个金币,也就是我用10个钻石兑换了100个金币。相当于前端做的校验是没有用的了,这是绝对不允许出现的一个bug。
—————————————————————————————————————————————————————————————————————————
那么今天的主题就出来了,怎样截取并修改http请求呢?使用Fiddler设置断点的功能可以做到这一点。
Fiddler中设置断点修改Request
Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法:
第一种:打开Fiddler 点击Rules-> Automatic Breakpoints ->Before Requests(这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoints ->Disabled
第二种: 在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpu
看个实例,模拟博客园的登录, 在IE中打开博客园的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录:
1. 用IE 打开博客园的登录界面 https://passport.cnblogs.com/user/signin
2. 打开Fiddler, 在命令行中输入bpu https://passport.cnblogs.com/user/signin
3. 输入错误的用户名和密码,点击登录
4. Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如下图所示。
5. 结果是正确地登录了博客园
Fiddler中设置断点修改Response
当然Fiddler中也能修改Response:
第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->After Response (这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled
第二种: 在命令行中输入命令: bpuafter www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpuafter