网站服务商查询,成都设计公司排行建筑设计公司,网站的详情页面设计,怎么去推广自己的店铺文章目录 前言一、BurpSuite1.BurpSuite简介2.BurpSuite安装教程(1)BurpSuite安装与激活(2)安装 https 证书 3.BurpSuite使用4.BurpSuite资料 二、图解HTTP1.HTTP基础知识2.HTTP客户端请求消息3.HTTP服务端响应消息4.HTTP部分请求方法理解5.HTTPS与HTTP 总结 前言
在网络安全和… 文章目录 前言一、BurpSuite1.BurpSuite简介2.BurpSuite安装教程(1)BurpSuite安装与激活(2)安装 https 证书 3.BurpSuite使用4.BurpSuite资料 二、图解HTTP1.HTTP基础知识2.HTTP客户端请求消息3.HTTP服务端响应消息4.HTTP部分请求方法理解5.HTTPS与HTTP 总结 前言
在网络安全和渗透测试领域BurpSuite 是一个不可或缺的工具。它凭借强大的功能集和灵活的模块化设计成为安全研究人员、开发者以及测试人员分析 Web 应用漏洞的“瑞士军刀”。然而对于初学者来说BurpSuite 的配置和使用可能略显复杂尤其是代理设置、证书安装以及 HTTP/HTTPS 流量分析等环节。 与此同时理解 HTTP 协议的基础知识是掌握 BurpSuite 的核心前提。HTTP 作为 Web 通信的基石其请求与响应的结构、状态码的含义、以及 HTTPS 加密机制的原理都是渗透测试中需要深入剖析的关键点。 本篇博客将从 BurpSuite 的安装与破解入手逐步演示如何配置代理、安装证书、抓取流量并结合 HTTP 协议的核心概念如 URL/URI 结构、请求头与响应头、状态码分类、HTTPS 加密原理等帮助读者构建完整的 Web 安全分析知识体系。无论你是刚入门的安全爱好者还是希望巩固基础的开发者都希望能通过本文的实践与理论结合快速上手 BurpSuite 并更深入理解 HTTP 的底层逻辑。 一、BurpSuite
1.BurpSuite简介
BurpSuite 是一个集成化的渗透测试工具它集合了多种渗透测试组件使我们自动化地或手工地能 更好的完成对Web应用的渗透测试和攻击。
BurpSuite 是由 Java 语言编写而成而依托 Java 自身的跨平台性使得软件在不同系统平台使用 更加方便。
2.BurpSuite安装教程
(1)BurpSuite安装与激活
BurpSuite Professional 破解版压缩包 https://easylink.cc/9licrh点击即下载 双击keygen.bat启动BurpSuite破解程序 双击 keygan.bat 后会自动启动cmd和激活页面点击Run后就会启动BurpSuite 界面功能解释 功能解释Auto Run勾选会自动执行 Loader CommandIgnore Update勾选忽略更新不勾选可以点击上方蓝字下载 BurpSuite 最新稳定版Early Adopter勾选可以点击上方蓝字下载 BurpSuite 前期测试版Loader Command加载器启动 BurpSuite 命令点击 Run 可执行License TextLicense 文本可自己修改比如 licensed to mingxyzLicense生成的 LicenseActivation Request激活请求Activation Response激活响应 勾选“Help improve Burp by submitting feedback about its performance” 点击 “I Accept” 同意协议 按下图示操作后点击Next 注意点击Manual activation 按下图示操作后在“Activation Response”框中会自动生成字符串 将“Activation Response”中生成的字符串按下图示复制到相应位置后点击Next Finish之后会自动打开BurpSuite Next Start Burp 关闭BurpSuite后可在压缩包解压后的解压文件中再次打开BurpSuite可自行设置快捷方式于桌面 BurpSuite.vbs为英文版 BurpSuite-cn.vbs为中文版 根据个人需要自行选择建议初学者使用英文版进行学习
(2)安装 https 证书 BurpSutie默认只能抓取http请求由于HTTPS流量是加密的为了能够查看和修改这些流量需要在BurpSuite中安装CA证书并在浏览器中信任这个证书。这样BurpSuite可以作为中间人MITM来解密和重新加密流量。 打开BurpSuite后依次点击Proxy Proxy setting Tools下的Proxy 点击Import/export CA certificate 勾选 Certificate in DER format 后点击Next 文件名的后缀一定要是.der文件前缀随意(建议整个文件名为“bp.der”) 文件类型所有文件 Next 双击 安装证书.der 点击安装证书 本地计算机 勾选 将所有的证书都放入下列存储 受信任的根证书颁发机构 注意 1.操作完成上面的破解步骤后证书已经成功写入系统后续不必再重复破解 2.如果更新了 BurpSuite 版本可能需要重新破解激活才可正常使用 想要清除系统 BurpSuite 激活信息双击执行 reset_license.bat 脚本 更新 1.打开 keygen.bat 点击蓝色小字下载最新版本或者自己去官网下载 BurpSuite Pro : https://portswigger.net/burp/releases 2.下载后复制到 BurpSuite 目录下并重命名为 burpsuite_pro.jar 然后按照上面的步骤依次破解、启动即可 注意安装完证书后一定记得重启浏览器之后才会生效 3.BurpSuite使用
●代理监听 依次点击Proxy Proxy settings Tools Proxy在 Proxy listeners 里可以看到有个127.0.0.18080 启动 BurpSuite 会默认监听这个地址所有经过该地址的请求都会被记录下来。 ●浏览器插件下载 为了使用 BurpSuite 捕获浏览器所有的 HTTP 及 HTTPS 请求我们需要通过设置浏览器的代理指 向 BurpSuite 的代理服务监听地址127.0.0.1:8080。 SwitchyOmega 是一个浏览器代理插件它允许用户在浏览器中快速设置和切换代理。它允许用户自 定义代理设置以控制浏览器的网络流量。 ㅇEdge浏览器代理插件ProxySwitchyOmega3(ZeroOmega)-Microsoft EdgeAddons ㅇChrome浏览器代理插件需要科学上网ZeroOmega
ZeroOmega设置 1.以Edge浏览器为例首先按照如下让其显示
点击“选项“” 点击新建情景模式输入情景模式名称 情景模式名称可为burp 选择代理服务器 并选择情景模式的类型为代理服务器点击创建 配置代理服务器 代理协议HTTP 代理服务器127.0.0.1 代理端口8080 清空不可代理地址列表并添加如下内容后点击“应用选项”
-loopbackproxy模块使用 ●1.拦截选项卡显示拦截的请求包 ●2.HTTP historyHTTP历史记录所有经过 127.0.0.1:8080 这个代理服务器的请求都会在这里显示 ●3.WebSockets historyWebsockets历史记录 ●4.Match and replace替换规则 ●5.Proxy settings:代理设置 ●6.lntercept off/on拦截开关off为关on为开为on时浏览器发出的请求会被拦截下来off则相 反 ●7.Forward转发请求把拦截到的数据包转发到服务器或客户端 ●8.Drop丢弃请求会把拦截到数据包丢弃丢弃后数据包不会到达服务器或客户端 ●9.Open browser打开bp自带的浏览器该浏览器无需安装证书代理插件在此浏览器中的http或 https请求都会被bp抓取
4.BurpSuite资料
● Burp Suite文档: https://portswigger.net/burp/documentation/desktop ● 拦截HTTP流量https://portswigger.net/burp/documentation/desktop/getting-started/intercepting-http-traffic
二、图解HTTP
1.HTTP基础知识
HTTP 是超文本传输协议也就是Hyper Text Transfer Protocol。
是一种用于分布式、协作式和超媒体信息系统的应用层协议。是一个基于请求与响应无状态的应用 层的协议常基于 TCP/IP 协议传输数据互联网上应用最为广泛的一种网络协议所有的互联网文 件都必须遵守这个标准。
HTTP的名字「超文本协议传输」它可以拆成三个部分 ● 超文本 ● 传输 ● 协议 协议
HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范两个以上的参与者以及相关的各种控制和错误处理方式行为约定和规范。 传输
就是把一堆东西从A点搬到B点或者从B点搬到A点。
HTTP协议是一个双向协议。
HTTP是一个在计算机世界里专门用来在两点之间传输数据的约定和规范。
我们在上网冲浪时浏览器是请求方A百度网站就是应答方B。双方约定用HTTP协议来通信于 是浏览器把请求数据发送给网站网站再把一些数据返回给浏览器最后由浏览器渲染在屏幕就可以 看到图片、视频了。 3. 超文本
HTTP 传输的内容是「超文本」。
「文本」在互联网早期的时候只是简单的字符文字但现在「文本」的涵义已经可以扩展为图片、视频、压缩包等在 HTTP 眼里这些都算做「文本」。
「超文本」它就是超越了普通文本的文本它是文字、图片、视频等的混合体最关键有超链接能从一个超文本跳转到另外一个超文本。
HTML 就是最常见的超文本了它本身只是纯文字文件但内部用很多标签定义了图片、视频等的链接在经过浏览器的解释呈现给我们的就是一个文字、有画面的网页了。
总结 HTTP是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据 的「约定和规范」。
统一资源定位符(URL) URL统一资源定位符我们常说的网址包含了用于查找资源的足够的信息而一个完整的URL包 含下面几部分 URL 遵守一种标准的语法它由协议、主机名、域名、端口、路径、以及文件名这六个部分构成其 中端口可以省略。
具体语法规则如下
protocol://[[user[:password]]host[:port]][/path][?query][#fragment][协议名]//[用户名][密码][主机名][端口]/[路径][查询参数]#[片段ID] protocol指定使用的传输协议最常用的是通过 HTTP/HTTPS 协议来定位网络资源。mailto: 用户打开邮箱的客户端ftp: 用来做文件的转换file: 用来获取文件
user:password 需要认证后才能访问时的账号密码。
host表示合法的因特网主机域名或者IP地址。
port用于表示在传输层上交换信息的进程端口号标明了获取服务器资源的入口,http协议默认端口号为80不同的协议默认端口号不同。
path指定请求服务器上资源的路径。
?query可选用于给动态网页传递参数可以有多个参数用符号隔开每个参数的键值之间用隔开。
#fragment信息片断字符串用于指定网络资源中的片断。例如一个网页中有多个名词解释可使用fragment直接定位到某一名词解释。例如
https://en.wikipedia.org:443/wiki/Hypertext_Transfer_Protocol?id123#HTTP/1.1_response_messages统一资源标志符(URI) URlUniversal Resource Identifier 统一资源标志符用来标识抽象或物理资源的一个紧凑字符 串。 HTTP是基于客户端/服务端C/S的架构模型通过一个可靠的链接来交换信息是一个无状态的请 求/响应协议。 HTTP使用统一资源标识符URI来传输数据和建立连接。 URI和URL的区别URL是URI的一个子集 URNUniversal Resource Name 统一资源名称通过特定命名空间中的唯一名称或ID来标识资 源。 URI可被视为定位符URL名称URN或两者兼备。统一资源名URN如同一个人的名称而 统一资源定位符URL代表一个人的住址。换言之URN定义某事物的身份而URL提供查找该事物 的方法。
2.HTTP客户端请求消息
HTTP请求报文Web客户端向服务器发送的请求
HTTP请求由四个部分组成 ●请求行 ●请求头部字段 ●空行 ●请求正文 请求行
Method Request-URI HTTP-Version CRLFMethod表示请求方法;
Request-URI是一个统一资源标识符;
HTTP-Version表示请求的HTTP协议版本;
CRLF表示回车和换行除了作为结尾的CRLF外不允许出现单独的CR或LF字符
●请求方法
请求方法描述GET请求获取Request-URI所标识的资源POST在Request-URI所标识的资源后附加新的数据HEAD请求获取由Request-URI所标识的资源的响应消息报头PUT请求服务器存储一个资源并用Request-URI作为其标识DELETE请求服务器删除Request-URI所标识的资源TRACE请求服务器回送收到的请求信息主要用于测试或诊断OPTIONS请求查询服务器的性能或者查询与资源相关的选项和需求CONNECT保留将来使用HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器PATCH用于将局部修改应用到资源。
●HTTP1.0定义了三种请求方法GET、POST、HEAD方法。 ●HTTP1.1新增了六种请求方法OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT方法。
请求头部字段 http_header:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers content_type:http://tools.jb51.net/table/http_content_type
请求头部字段Request Header Fields)
HeaderHeader_Value CRLF允许客户端传递关于自身的信息和希望的响应形式。 在HTTP/1.1协议中所有的请求头除Host外都是可选的。
Header头部解释Host指定请求的服务器的域名和端口号Content-Length请求的内容长度Accept指定客户端能够接收的内容类型X-Requested-WithAjax异步请求User-Agent包含发出请求的用户信息Content-Type请求的与实体对应的MIME信息Origin指明当前请求来自于哪个站点Referer先前网页的地址当前请求网页紧随其后Accept-Encoding指定浏览器可支持的web服务器返回内容压缩编码类型。Accept-Language浏览器可接受的语言CookieHTTP请求发送时会把保存在该请求域下的所有cookie值一起发送给web服务器。Connection表示是否需要持久连接 ●Host 客户端发送请求时用来指定服务器的域名。
Host: www.A.com有了Host字段就可以将请求发往「同一台」服务器上的不同网站。 ●Content-Length Content-Length字段指明发送给接收方的消息主体的大小。
Content-Length:nbsp;1000如上面则是告诉接收方不管是客户端还是服务端本次发送的数据长度是1000个字节。 ●Content-Type Content-Type字段用于指定资源的媒体类型也称为MIME类型。这个字段告诉接收方–无论是 浏览器、服务器还是任何处理HTTP请求和响应的中间件一-正在传输的数据的类型。
Content-Type:nbsp;text/html;nbsp;charsetutf-8●User-Agent User-Agent用于在HTTP请求中向服务器提供发起请求的客户端通常是浏览器的信息。这个字段 可以让服务器知道请求是由哪种类型的浏览器、浏览器版本、操作系统以及其版本等信息发起的。 User-Agent字段的内容通常由客户端的浏览器自动生成但也可以被开发者或用户自定义修改。
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0●Cookie 它包含了客户端存储的Cookie值这些值会在客户端向服务器发起请求时自动附加到请求中。这个 字段使得服务器能够识别不同的用户会话和存储的用户偏好。
Cookie: Useradmin●Referer Referer字段用于指示一个请求是从哪个页面发起的。这个字段通常由浏览器设置当用户点击链接 或提交表单时浏览器会将当前页面的URL作为Referer字段的值发送给目标服务器。
Referer: https://www.baidu.com/●空行 表示请求头结束请求正文请求体开始 ●请求正文 GET方法提交数据时数据参数会作为URL的一部分放在文件路径后面发送给服务器被称为查询 字符串
http://www.hetianlab.com?username12345%40qq.compassword2f7402f......a592bvalidateCodertnJsontruePOST方法发送的数据在请求体中
username12345%40qq.compassword2f7402f......a592bvalidateCodertnJsontrue3.HTTP服务端响应消息
HTTP响应报文在接收和解释请求消息后服务器返回一个HTTP响应消息。
HTTP响应也由四个部分组成分别是 ●状态行 ●响应头部字段 ●空行 ●响应正文 状态行
HTTP-Version Status-Code Reason-Phrase CRLFHTTP-Version表示服务器HTTP协议的版本
Status-Code表示服务器发回的响应状态代码
Reason-Phrase表示状态代码的文本描述。五大类HTTP状态码 ●1xx 1xx 类状态码属于提示信息是协议处理中的一种中间状态实际用到的比较少。
●2xx 2xx 类状态码表示服务器成功处理了客户端的请求也是我们最愿意看到的状态。
「200 OK」 是最常见的成功状态码表示一切正常。如果是非 HEAD 请求服务器返回的响应头都会有 body 数据。 「204 No Content」 也是常见的成功状态码与 200 OK 基本相同但响应头没有 body 数据。 「206 Partial Content」 是应用于 HTTP 分块下载或断电续传表示响应返回的 body 数据并不是资源的全部而是其中的一部分也是服务器处理成功的状态。
●3xx 3xx 类状态码表示客户端请求的资源发送了变动需要客户端用新的 URL 重新发送请求获取资源也就是重定向。
「301 Moved Permanently」 表示永久重定向说明请求的资源已经不存在了需改用新的 URL 再次访问。 「302 Moved Permanently」 表示临时重定向说明请求的资源还在但暂时需要用另一个 URL 来访问。 301 和 302 都会在响应头里使用字段 Location指明后续要跳转的 URL浏览器会自动重定向新的 URL。 「304 Not Modified」 不具有跳转的含义表示资源未修改重定向已存在的缓冲文件也称缓存重定向用于缓存控制。
●4xx 4xx 类状态码表示客户端发送的报文有误服务器无法处理也就是错误码的含义。
「400 Bad Request」 表示客户端请求的报文有错误但只是个笼统的错误。 「403 Forbidden」 表示服务器禁止访问资源并不是客户端的请求出错。 「404 Not Found」 表示请求的资源在服务器上不存在或未找到所以无法提供给客户端。
●5xx 5xx 类状态码表示客户端请求报文正确但是服务器处理时内部发生了错误属于服务器端的错误码。
「500 Internal Server Error」 与 400 类型是个笼统通用的错误码服务器发生了什么错误我们并不知道。 「501 Not Implemented」 表示客户端请求的功能还不支持类似“即将开业敬请期待”的意思。 「502 Bad Gateway」 通常是服务器作为网关或代理时返回的错误码表示服务器自身工作正常访问后端服务器发生了错误。 「503 Service Unavailable」 表示服务器当前很忙暂时无法响应服务器类似“网络服务正忙请稍后重试”的意思。 响应头部字段 响应头部字段Response Header Fields 响应报头允许服务器传递不能放在状态行中的附加响应信息以及关于服务器的信息和对Request- URI所标识的资源进行下一步访问的信息。
Header头部解释Serverweb服务器软件名称Data原始服务器消息发出的时间Content-Type返回内容的MIME类型Set-Cookie设置Http CookieContent-Length响应体的长度ETag请求变量的实体标签的当前值refresh应用于重定向或一个新的资源被创造WWW-Authenticate表明客户端请求实体应该使用的授权方案Allow对某网络资源的有效的请求行为不允许则返回405Content-Type返回内容的MIME类型Location用来重定向接收方到非请求URL的位置来完成请求或标识新的资源
空行 表示响应头结束响应正文响应体开始
响应正文 服务器返回的资源内容
{result:success,message:null}4.HTTP部分请求方法理解 Get Get 方法的含义是请求从服务器获取资源这个资源可以是静态的文本、页面、图片视频等。 POST POST向Request-URI所标识的资源提交数据数据就放在请求正文中用于向指定资源发送数据指定的资源会对数据进行处理然后将处理结果返回给客户端一般用于表 单提交、文件上传
5.HTTPS与HTTP
HTTP 与 HTTPS 的区别
1.HTTP 是超文本传输协议信息是明文传输存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议使得报文能够加密传输。 2.HTTP 连接建立相对简单 TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后还需进行 SSL/TLS 的握手过程才可进入加密报文传输。 3.HTTP 的端口号是 80HTTPS 的端口号是 443。 4.HTTPS 协议需要向 CA证书权威机构申请数字证书来保证服务器的身份是可信的。
HTTPS 解决的问题
HTTP 由于是明文传输所以安全上存在以下三个风险
●窃听风险比如通信链路上可以获取通信内容用户号容易没。 ●篡改风险比如强制入垃圾广告视觉污染用户眼容易瞎。 ●冒充风险比如冒充淘宝网站用户钱容易没。 HTTPS在HTTP与TCP层之间加入了SSL/TLS协议。 可以很好的解决了上述的风险 ●信息加密交互信息无法被窃取但你的号会因为「自身忘记」账号而没。 ●校验机制无法篡改通信内容篡改了就不能正常显示但百度「竞价排名」依然可以搜索垃圾广告。 ●身份证书证明淘宝是真的淘宝网但你的钱还是会因为「剁手」而没。 总结
通过本文的探索我们完成了两个核心目标
BurpSuite 的实战部署从破解安装、证书配置到代理监听一步步搭建了渗透测试的基础环境。借助 BurpSuite 的拦截功能读者可以直观地观察 HTTP/HTTPS 流量分析请求与响应的细节甚至修改数据包以模拟攻击场景。
HTTP 协议的深度解析从 URL/URI 的语法规则到请求方法GET/POST、头部字段如 Cookie、User-Agent的作用再到状态码的分类逻辑如 404 与 500 的区别我们系统性地梳理了 HTTP 的核心机制。而 HTTPS 的加密原理与 HTTP 的明文传输风险对比则进一步揭示了安全通信的重要性。 如果你觉得这篇文章对你有帮助欢迎点赞你的支持是我分享更多免费优质内容的动力