chatgpt 服务器请求失败 windows下安装中间人mitmproxy,亲测总结

默认分类2年前 (2023)发布 admin
5,032 0
ChatGPT国内版

是什么?

就是用于 MITM 的 proxy,MITM 即中间人攻击(Man-in-the- )。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次,会适时的查、记录其截获的数据,或篡改数据,引发服务端或客户端特定的行为。

不同于 或 等抓包工具, 不仅可以截获请求帮助开发者查看、分析,更可以通过自定义脚本进行二次开发。举例来说,利用 可以过滤出浏览器对某个特定 url 的请求,并查看、分析其数据,但实现不了高度定制化的需求,类似于:“截获对浏览器对该 url 的请求,将返回内容置空,并将真实的返回内容存到某个数据库,出现异常时发出邮件通知”。而对于 ,这样的需求可以通过载入自定义 脚本轻松实现。

但 并不会真的对无辜的人发起中间人攻击,由于 工作在 HTTP 层,而当前 HTTPS 的普及让客户端拥有了检测并规避中间人攻击的能力,所以要让 能够正常工作,必须要让客户端(APP 或浏览器)主动信任 的 SSL 证书,或忽略证书异常,这也就意味着 APP 或浏览器是属于开发者本人的——显而易见,这不是在做黑产,而是在做开发或测试。

那这样的工具有什么实际意义呢?据我所知目前比较广泛的应用是做仿真爬虫,即利用手机模拟器、无头浏览器来爬取 APP 或网站的数据, 作为代理可以拦截、存储爬虫获取到的数据,或修改数据调整爬虫的行为。

事实上,以上说的仅是 以正向代理模式工作的情况,通过调整配置, 还可以作为透明代理、反向代理、上游代理、SOCKS 代理等,但这些工作模式针对 来说似乎不大常用,故本文仅讨论正向代理模式。

第一步安装

地址:

下载后双击安装即可。

chatgpt 服务器请求失败 windows下安装中间人mitmproxy,亲测总结

安装后在网页上显示

同时电脑上会有个ui界面:

第二步:设置手机代理部分:下载安装证书:

手机连接电脑同一wifi,进入手机WiFi设置里,设置手动代理,输入本机IP和端口号8080。

打开手机浏览器:输入

根据图表点击自己手机对应的证书,进行安装。

我是ios,安装完后会自动弹出安装的弹窗,根据弹窗安装,并且选择信任即可。

安装好后,手机随意打开一个app,就可以在网页:8081 上看到对应的请求信息。

注意,在上不支持的控制台接口,但是可以使用和。

chatgpt 服务器请求失败 windows下安装中间人mitmproxy,亲测总结

开启

以后开启,在上,只要在cmd中运行,同时在另一个cmd中运行,就可以在网页上看到请求详情。

####

使用的一个重要目的是修改网页请求和响应,通过重写方法处理请求数据包,通过重写方法处理响应数据包(获取数据保存,就是爬虫啦)。

可以把重写的代码放到py文件中,然后用运行,比如我们在爬取淘宝的时候可以这样写Proxy.py:

TARGET_URL = 'https://g.alicdn.com/secdev/sufei_data/3.6.11/index.js' #这个是淘宝的index.js文件的
INJECT_TEXT = 'Object.defineProperties(navigator,{webdriver:{get:() => false}});' #js执行文件
def response(flow):
        if flow.request.url.startswith(TARGET_URL):
            flow.response.text = INJECT_TEXT + flow.response.text
            print('注入成功')
        if 'um.js' in flow.request.url or '115.js' in flow.request.url:
            # 屏蔽selenium检测
            flow.response.text = flow.response.text + INJECT_TEXT

之后运行Proxy.py 如下:

mitmdump -s Proxy.py -p 9000 #执行Proxy文件,-p开启9000代理端口,在selenium中设置 127.0.0.1:9000代理即可。

而在我们爬取的脚本中,可以这样设置:

option = webdriver.ChromeOptions()
option.add_argument('--proxy-server=127.0.0.1:9000')
browser = webdriver.Chrome(options=option)

更多关于的实际使用过程,可以参考:

© 版权声明
广告也精彩

相关文章

暂无评论

暂无评论...