BurpSuite连接浏览器代理无法打开部分网页问题

news/发布时间2024/5/20 12:11:43

本人写这篇记录时,尚未熟悉bp基本操作,仅记录该次探索bp功能解决问题的心路历程。

发现并解决问题

最近两天为能打开尘封已久的bp,抓包做题,卸载了jdk20,下了jdk1.8(高版本jdk破解用的java命令完全不能执行,挣扎了一天尝试找功能相同的jdk20代码,以失败告终),一顿操作后发现居然有的页面还是无法打开(不使用代理可以正常打开),尤其是靶机页面,首先报错显示连接重置connection reset,等我根据网上找的资料把bp设置的时间限制判断全部删光之后,又报错连接超时移除服务Timeout in communication with remote server
打不开的网页有:有道翻译(fanyi.youdao.com)、至少两个CTF练习网站的靶机网页等。

下图为连接重置报错

下图为删除了时间限制判断

下图为连接超时移除服务报错

不理解为什么有的页面能访问,有的就不行,而且这些不能访问的页面也没有什么共同特点,于是我决定抓包再分析一下。

下图为历史抓包结果

发现请求包中有一行connection: close,连接关闭看上去不是个好词,我把它删除然后发出了请求包,结果发现页面正常显示了,而且反应很快。

删除connection: close后接收到的数据包如下图

接收到的数据包connection的设置是keep-alive。

既然很有可能是connection: close的问题,我又测试了某CTF题目练习网站的其他web靶机页面,只要删除请求包中的这一行,网页就能正常访问了。但是问题又来了,我总不能请求一次页面手动改一次请求包吧。

为了搞清原理,彻底解决问题,我在网上查找请求包中connection设置为close的相关资料,发现报错的问题可能是bp的设置导致的,bp的设置可以对请求包进行修改(截至2024.4.30还没有彻底搞清楚原理,不知道到底是原本请求包中就有connection: close还是bp加上去的)

涉及到的选项设置如下

只要取消勾选红框内的选项,就相当于将connection设置为keep-alive,原本报错超时的网页就可以正常打开了。
在此之后又有一个发现,connection设置为keep-alive后原本能打开的网站(connection: close能打开的网站)访问需要的时间显著变长,超级慢,但是仍然可以打开。


解决方法总结

在使用bp代理的时候,如果遇到只有部分网页报错显示连接重置(connection reset)或者连接超时移除服务(Timeout in communication with remote server),可以尝试在bp代理模块(Proxy)的选项设置(Options)中,取消勾选“将连接关闭设置为接收请求”(Set response header "Connection: close")。
如果有页面加载时间过长,可以尝试勾选“将连接关闭设置为接收请求”(Set response header "Connection: close")。


关于Connection的两种选项对HTTP请求的影响

HTTP 协议中的 Connection 头字段用于决定客户端和服务器之间的连接是否应该保持打开状态。在发送 HTTP 请求时,Connection 头字段可以设置为 close 或 keep-alive,这两个选项决定了连接在请求处理后的行为。

  1. Connection: close

    • 当请求头中包含 Connection: close 时,它告诉服务器在完成响应后应该立即关闭这个连接。这意味着每次请求都会建立一个新的连接,并在收到响应后立即断开这个连接。

    • 使用 close 可以确保每个请求都拥有自己独立的连接,收到相应后立即断开的特点在某些特定场景下有好处,比如希望服务器或客户端能确切知道连接何时结束。

    • 适用于只需要单次请求或不需要长时间保持连接的场景。

  2. Connection: keep-alive

    • 当请求头中包含 Connection: keep-alive 时,它告诉服务器在响应后不要关闭连接,以便后续可以在同一个连接上发送更多的请求。这样可以避免频繁地建立和关闭连接,从而提高性能。

    • 使用 keep-alive 机制,多个请求可以复用一个 TCP 连接,无需为每个请求都新建一个连接。这减少了延迟,更有效地利用了网络资源。
      它们的作用和原理:

    • 适用于需要频繁与服务器交互或希望减少连接建立和关闭开销的场景。

HTTP/1.1 默认使用 keep-alive,如果请求头中没有明确指定 Connection 字段,那么默认就会保持连接开放。但是并非所有服务器和客户端都支持持久连接,在这种情况下,即使指定了 keep-alive,连接也可能在一次请求后被关闭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/17281120.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

分享一份物联网SAAS平台架构设计

一、架构图 ****二、Nginx**** 用于做服务的反向代理。 三、网关 **** PaaS 平台所有服务统一入口,包含 token 鉴权功能。 四、开放平台 **** 对第三方平台开放的服务入口。 五、MQTT**** MQTT 用于设备消息通信、内部服务消息通信。 六、Netty**** Socket 通信设备连接服务。…

Unity性能分析(三)内存分析

Unity中有两种分析内存的方法:Memory Profiler :内置的分析器,提供内存使用的基本信息。 Memory Profiler package:将package添加到项目中,更详细地分析内存使用情况。可以存储和比较快照查找内存泄漏,查看内存布局以查找内存碎片问题。确定物理RAM限制 每个目标平台都有…

minio 修改默认密码

运行后data目录会生成一个隐层文件夹【.minio.sys】 打开.minio.sys/config/config.jsonaccess_key,secret_key即为账号密码(默认账号密码均为minioadmin) 默认密码修改以后可以在系统内部添加其他账号对外使用留待后查,同时方便他人 联系我:renhanlinbsl@163.com

在鼠标右键菜单中新增新建Markdown文件选项(VSCode)

引言 正常情况下,我们新建md文件有两种方式:一是通过Markdown编辑器新建,二是新建txt文件再修改后缀。 但是在Windows系统中,我们可以通过修改注册表来新增右键菜单选项。这里我们可以通过修改注册表来新增新建Markdown文件选项,这样可以减少新建文件的繁琐操作。 下面就来…

搭建https的es+kibana(7.9.1)

背景:elasticsearch7需要开启https才可以创建报警,因此就需要搭建https的elasticsearch 参考官方网站:https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-elasticsearch.html第一步,创建crdkubectl create -f https://download.elastic.co/downloads/eck/2…

MATLAB中simulink中scope同时显示两个输入信号

在使用scope时,需要两个输入信号的设置方法 1.点开scope图标2 点击设置按钮, 然后弹出configuration properties:scope配置图,在Main选项下,在Number of input ports:1这里面更改数字,需要几个输入信号就更改几,此时这里更改为23 设置layout 选择自己喜欢的窗口显示排列…