FiddlerScript 注入cooke实现自动登录,Fiddler实现免登陆,浏览器通代理实现自动登录

一,问题描述

 

最近看到一个用易语言写的软件,点击运行,会自动将电脑的代理修改为:http=127.0.0.1:xxx;https=127.0.0.1:xxx ,使用chrome浏览器或火狐浏览器配置这个代理,访问指定的几个网址,根本不需要登录,返回的页面,已经是登录的情况。然后根据关键字,【FiddlerScript 注入cooke实现自动登录,Fiddler实现免登陆,浏览器通代理实现自动登录】全网搜了一下,根本没有教程。。通过那个软件的错误信息,知道使用的是Fiddler,然后沿着这思路,把这个实现了,历经曲折,过程如下,其实很简单。验证的过程有点费时间。。

 

二、解决方法

 

刚开始使用FiddlerScript没有成功,网站关于这该的教程很少。。然后想到的验证方式就是,直接修改cookie,实现,发现有些网站能登陆,有些登录不了,测试如下,

两个浏览器:360,chrome都装了EditThisCookie,来测试,chrome上通过账号登录,通过EditThisCookie获取登录后的cookie导入到360中,有些网站能登录,有些网站不行
可以登录的网站:www.ngrok.cc
不可以登录的网站:www.tianyancha.com,bbs.125.la

通过易语言的奇易模块可以实现这种效果,代码如下:

.版本 2
.支持库 spec
.支持库 eAPI

.程序集 窗口程序集_启动窗口
.程序集变量 监听服务器, Fiddler

.子程序 _按钮1_被单击
.局部变量 L_Cookie, 文本型

网页_访问_对象 (“https://www.ngrok.cc/login.html”, , , L_Cookie, , , , , , , , , , , , , , , )
网页_访问_对象 (“https://www.ngrok.cc/login.html”, 1, “username=xxx&passwd=xxx”, L_Cookie, , , , , , , , , , , , , 真, , )
调试输出 (L_Cookie)
编辑框1.内容 = L_Cookie
信息框 (“登陆成功”, 0, , )

.子程序 _按钮2_被单击

监听服务器.置SSL抓包 (真)  ' 启动抓取https模式
监听服务器.置自动注册代理 (真)  ' 运行后自动开启IE代理
监听服务器.启动代理 (5858, &回调_数据)
程序_延时 (1000, )
打开指定网址 (“https://www.ngrok.cc/user.html”)

.子程序 回调_数据
.参数 数据地址, 整数型, , 通过该地址来接受网页的数据,不可忽略!
.参数 数据序号, 整数型, , 通过该序号来对网页进行控制,不可忽略!
.局部变量 fd, Fiddler数据结构
.局部变量 a, 文本型
.局部变量 L_正则, 正则表达式类
.局部变量 L_BID, 文本型
.局部变量 L_网页数据, 文本型

fd = 监听服务器.解析数据 (数据地址)
.如果真 (fd.数据类型 = “recv”)  ' recv
    调试输出 (“返回包:” + fd.网页地址)
    .如果真 (寻找文本 (fd.网页地址, “https://www.ngrok.cc/user.html”, , 假) > -1)
        调试输出 (“成功置入Cookie”)
        监听服务器.recv_新增SetCookie (数据序号, 编辑框1.内容 + “; path=/”)
        监听服务器.停止代理 ()
    .如果真结束

.如果真结束
.如果真 (fd.数据类型 = “send”)
    调试输出 (“提交包:” + fd.网页地址)
.如果真结束



.子程序 _按钮3_被单击

监听服务器.停止代理 ()

.子程序 __启动窗口_可否被关闭, 逻辑型

监听服务器.停止代理 ()

测试了各种方法。。最后就几行代码通杀。。测试了4-5个网站基本上都能免登陆。。

在FiddlerScript中的OnBeforeRequest方法最下面加入以下代码就行了

FiddlerScript 注入cooke实现自动登录,Fiddler实现免登陆,浏览器通代理实现自动登录_第1张图片

if (oSession.HostnameIs("www.ngrok.cc")||oSession.uriContains('ngrok.cc')){
	oSession.oRequest["Cookie"] = "__guid=140640820.4178234843920325600.1597912780035.9578; PHPSESSID=xxxx; monitor_count=5";
}

其中的Cookie是通过登录获取到,然后复制下来,填在这里,这样的话,不管哪个浏览器,只要走这个代理,请求中的cookie就会设置成这个cookie,然后响应的就是登录成功之后的数据。

你可能感兴趣的:(WEB开发,Fiddler,免登陆,自动登录,抓包)