前三篇文章中介绍了Fiddler的抓包捕获,请求篡改等部分功能,本文将通过一个例子具体介绍Fiddler的在某些特定应用场景下的使用。
本文最终目的:通过极验离线版滑块验证
目标网站 :小微企业名录
一.分析过程
抓包调试,找到geetest_validate值计算入口,离线版很好找,肉眼就能找到,在offline.6.0.0.js处
2.png
其中c.o方法用于产生滑块缺口位置,c.ajax方法并没有真的发出请求,而是生成了一个包含所需参数的对象,这里我们可以看到validate参数的生成规则。而滑块成功的条件就是c值和f值之间的误差小于3,通过多次对比发现f值就是滑块缺口位置,c值为用户拖动滑块的距离
那么解决思路就很简单,保证c值和f值之间的误差小于3即可。
二.使用Fiddler进行验证测试
1.将offline.6.0.0.js下载到本地,并修改代码
3..png将c值保持在f±3范围即可
2.启动Fiddler,并将浏览器的代理指向Fiddler监听的地址
4.png3.配置Fiddler的AutoResponder规则替换目标网站js
5.png将目标js的位置替换为上面修改的本地js
6.png
启用规则
4.检查是否成功替换
打开目标页面,进入浏览器调试,查看对应的js文件
7.png如图所示即为成功替换,如果没有成功,请检查代理是否正确指向fiddler监听地址,并禁用缓存再刷新试试,禁用缓存如下图。
8.png
5.滑动测试
滑动到任意位置松开都可通过验证
9.gif
三.FiddlerCore代码实现
FiddlerApplication.BeforeResponse += (oS) =>
{
if(oS.fullUrl.Contains("static.geetest.com/static/js/offline.6.0.0.js"))
{
var responsetext = oS.GetResponseBodyAsString();
/*
*
此处添加修改响应内容代码 具体功能就是将目标返回替换为本地js文件
*
*/
}
};
网友评论