尝试利用Fiddler助力抢课

发表于:2023-4-18 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:卑微    来源:知乎

分享:
  一、什么是Fiddler
  Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据。
  其工作原理为:Fiddler是一个抓包工具。当从浏览器上访问服务器时会形成一个请求request,此时Fiddler在中间监视抓取这个request数据包。同样地,当这个request抵达服务器,服务器对这个request作出response返回到个人浏览器时,Fiddler也会抓取到这个response数据包。
  如下图所示:
  二、实操
  1.下载Fiddler
  方式一:直接在腾讯软件中心下载Fiddler4
  方式二:在Fiddler官网上下载
  注意不是Fiddler Everywhere
  安装过程不再赘述。
  2.打开Fiddler4
  在没有网上冲浪下,Fiddler4的页面时空的 如下图:
  如果在其上端跳出黄色字条 及时按其指示点击即可。
  proxy是代理服务器不用理会。
  (这英文看得懂的啊 不点 后面冲浪啥操作都不会有反应)
  3.在网页上打开教务网站
  此时可以看到fiddler4会跳出许多条sessions。(下图左边栏)
  这些就是fiddler抓取到的数据包 原理前文已述。
  每次在浏览器的点击操作fiddler都会抓取 并在边栏的会话列表中展现出来。
  另一边来到选课界面:
  另:此时可能在fiddler4的会话列表里有非常多条的sessions。
  这时可以点击上边的一个×图标 并点击Remove all 让会话列表里干净一些。
  4.找到抢课时从自己客户端发送学校教务服务器的request
  此时点击“提交选课信息”。
  在fiddler中可以看到如下图的session。
  从HOST和URL也可以看出是发送到教务的。
  此时点击这条#1的session 显示如下图:
  ①板块是客户端发出的request
  ②板块是教务服务器的response
  可以明显地看到在response中
  msg=系统不在开放时间内,请稍后再试!
  很熟悉对吧
  那么就可以得知这个session里的request就是在抢课的时候发给教务服务器的。
  这个就是我想要的。
  5.抢课crazily
  右击该session 点击replay中的Reissue Sequentially。
  随便输入数字 点击ok 就可以看到fiddler在重复执行这项session。
  这可以理解为向教务服务器发送100次“我要选这课”的request。
  相当于100位同学同时(严格讲之间还是有毫秒级的时间间隔)点击“提交选课信息”按钮
  其优越性就体现在此:正常在教务抢课发送一个request后,教务服务器需要对其作出反应。在众多crazy同学的请求下,学校的土豆服务器往往不堪重负。此时页面通常会处于一个loading状态,每一个点击都会卡得要命。那么在fiddler上操作不需要等待response的到来,它提供了一个能不断发送request的平台。那么这个抢课成功的可能性就会大大提高(不过网速仍是关键)
  如果选课成功,那么在response的JSON中的msg(如前文截图)就不会再是“系统不在开放时间内”或“人数已满”。而会是“选课成功”或“你已经选过该课程”。
  在实际抢课中,让fiddler重复的命令在能开始选课的前一两秒就可以让fiddler开始执行了。即18:00开始选课,fiddler在17:59:58开始重复操作。那么结果,打个比方,在100条session的response中,前50条可能是“时间不在开放时间内”,第51条为“选课成功”,52-100条是“你已经选过该课程”。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号