当前位置:首页 > 资讯 > 正文

HTTP请求及Burp Suite的使用(更新中)

HTTP请求及Burp Suite的使用(更新中)

HTTP请求是客户端(通常是用户的网页浏览器)与服务器之间进行通信的一种方式。它遵循超文本传输协议(HTTP, Hypertext Transfer Protocol)的标准,用于在Web上传输数据。
以下是HTTP请求的基本组成部分和过程:

1. HTTP请求的组成部分

一个HTTP请求通常包含以下几个部分:

  • 请求行:包括请求方法、URL和HTTP版本。
  • 请求头(Headers):包含关于客户端环境和请求本身的信息,例如用户代理、内容类型、接受类型等。
  • 空行:请求头和请求体之间必须有一个空行。
  • 请求体(Body):包含要发送给服务器的数据,不是所有请求都有请求体。

2. HTTP请求方法

以下是一些常见的HTTP请求方法:

  • GET:请求指定的资源。
  • POST:向服务器提交数据,通常用于提交表单或上传文件。
  • PUT:更新服务器上的资源。
  • DELETE:删除服务器上的资源。
  • HEAD:类似于GET请求,但服务器不会返回请求体,只返回响应头。
  • OPTIONS:用于描述目标资源的通信选项。
  • PATCH:用于对资源进行部分更新。

3. 例子

以下是一个简单的HTTP GET请求的例子:

 

在这个例子中:

  • 是请求方法。
  • 是请求的资源。
  • 是使用的HTTP版本。
  • 是请求的服务器地址。
  • 其他行都是请求头,提供了关于客户端环境和请求的附加信息。

4. 发起HTTP请求

可以通过多种方式发起HTTP请求:

  • 浏览器:用户在浏览器地址栏输入URL或点击链接时,浏览器会发起HTTP请求。
  • cURL:命令行工具,常用于服务器端脚本或在命令行中发起HTTP请求。
  • 编程语言:大多数编程语言都提供了HTTP请求的库或模块,例如Python的库、JavaScript的 API等。

5. 响应

服务器在接收到HTTP请求后,会处理请求并返回一个HTTP响应,响应包含状态码(如200表示成功)、响应头和响应体。
HTTP请求和响应是Web工作的基础,对于Web开发人员来说,理解HTTP请求的细节对于调试和优化Web应用至关重要。

Burp Suite中的Proxy模块是其中一个最常用和最强大的模块之一,它允许用户拦截、查看和修改Web应用程序的HTTP和HTTPS流量,使用户能够识别和利用各种不同类型的漏洞。Proxy模块又分为四部分,分别是Intercept(拦截),HTTP history,WebSockets history,Option(选项)。

功能:

  1. 攻击类型:
    • Sniper:使用相同的载荷集合,一次更改一个目标位置。
    • Battering ram:使用相同的载荷集合,同时更改所有目标位置。
    • Pitchfork:为每个目标位置使用不同的载荷集合,组合不同的载荷。
    • Cluster bomb:为每个目标位置使用不同的载荷集合,尝试所有可能的载荷组合。
  2. 目标:
    • 用户可以指定HTTP请求中的哪些部分(如参数、头、cookie等)作为攻击的目标位置。
  3. 载荷:
    • Intruder允许用户从文件、自定义列表或内置的 payloads 列表中选择载荷。
    • 支持使用变量和宏来生成复杂的载荷。
  4. 攻击配置:
    • 用户可以配置攻击的详细信息,如并发线程数、请求延迟、重试策略等。
  5. 结果分析:
    • Intruder捕获每个请求的响应,并允许用户根据响应长度、状态码、响应时间或其他自定义参数来筛选和排序结果。
    • 支持使用正则表达式来识别感兴趣的响应模式。

使用步骤:

  1. 发送请求:
    • 在浏览器或其他Burp工具(如Proxy或Repeater)中捕获一个HTTP请求。
    • 将该请求发送到Intruder模块。
  2. 配置攻击:
    • 选择攻击类型。
    • 标记目标位置。
    • 选择或创建载荷。
  3. 启动攻击:
    • 配置攻击选项并启动攻击。
    • Intruder开始发送请求并捕获响应。
  4. 分析结果:
    • 查看结果表格,分析异常或有趣的响应。
    • 使用结果过滤器来识别潜在的漏洞。

应用场景:

  • 密码破解:通过自动化尝试密码组合来破解登录表单。
  • 参数篡改:测试应用程序对异常输入的响应。
  • 目录/文件枚举:发现Web服务器上的隐藏目录或文件。
  • SQL注入:检测和利用SQL注入漏洞。

由四个部分组成:

  1. Target(目标):攻击的目标URL或网站。
  2. Positions(位置):在HTTP请求中插入负载的位置,如GET参数、POST表单字段等。
  3. Payloads(负载):要插入到请求中的数据,可以是文本、二进制文件或其他类型的数据。
  4. Options(选项):附加的设置或配置,例如攻击类型、延迟时间、重复次数等。

Position部分

  • Sniper(Sniper):逐个地对每个目标参数进行测试。这种方式适用于需要具体指定某个参数值进行测试的情况。
  • Battering Ram(破城槌):选择多个不同的参数值集合作为测试数据进行并行测试,以找出所有可能的漏洞点。这种方式适用于需要大量测试数据的情况。
  • Pitchfork(干草叉):同时对多个参数进行测试,将不同的参数组合在一起进行测试。这种方式适用于需要测试多个参数交互情况的情况。
  • Cluster Bomb(集束炸弹):类似于Battering Ram,不同之处在于它将多个参数值集合作为测试数据,但会对每个参数集合都进行逐次的单元素组合测试。这种方式适用于需要详细测试每个参数值的情况。

说人话:

  • Sniper
    就是爆破单个位置,你指定哪就爆破哪
    如下图,就是不同的用户名,密码不变为123456。
 
  • Battering Ram
    指定多个位置 他只需要你一个字典文件,所有位置的参数一样。
 
  • Pitchfork(干草叉)
    一般加入两个变量值进去,比如说dict1: admin,test,root dict2: 123456, admin123,root.
 
  • Cluster Bomb(集束炸弹)
    一般加入两个变量值进去,比如说dict1: admin,test,root dict2: 123456, admin123,root.
 

Payloads部分

在Payload Type选项中共有:,,,,,,,,,,,,,,,,, 这18种类型,接下来我将一一介绍。

  • 功能:Target模块提供了一个结构化的视图,帮助测试人员理解目标应用程序的结构、功能和潜在的安全漏洞。
  • 站点地图:该模块的核心是站点地图,它以可视化的方式展示应用程序的URL结构,包括所有的页面、目录和参数。
  • 应用程序分析
    • Scope:允许测试人员定义测试的范围,包括哪些URL应该包含在测试中,哪些应该排除。
    • Annotations:可以在站点地图上添加注释,记录观察到的信息或未来的测试计划。
    • Issues:Target模块会显示由其他Burp工具(如Scanner、Intruder等)发现的安全问题。
  • 内容发现
    • Spider:Target模块可以启动Spider工具来自动发现应用程序的内容。
    • Scanner:可以启动Scanner工具来自动识别已知的安全漏洞。
  • 手动测试
    • Repeater:Target模块允许将请求发送到Repeater工具进行手动测试和修改。
    • Decoder:可以快速解码或编码URL、HTML实体等。
  • 配置和监控
    • Cookies:可以查看和管理应用程序的cookies。
    • WebSockets:支持监控和分析WebSocket通信。
    • HTTP请求和响应:Target模块可以记录所有的HTTP请求和响应,便于后续分析。
  • 报告
    • Target模块可以生成详细的报告,总结应用程序的安全状况和发现的问题。

总的来说,Target模块是Burp Suite的一个组织中心,它帮助测试人员更好地理解、管理和测试目标应用程序,同时确保测试活动是有序和高效的。

接下来我将开始学习如何使用Target模块。

1.Site map

  • 站点地图: 以树状结构显示应用程序的目录和文件。
  • 访问过的连接:深色URL是真正有发送过的请求,浅色URL是表示在请求的页面中存在,但还没有访问过的。

注意:这个方式显示出来的网站目录并不是整个网站的全部目录,而只是BurpSuite被动扫描网站的一部分目录而已,全部目录还需要通过爬虫获取。

2.Scope

3.Issue definitions


  • 声明:本文借鉴自CSDN平台文章

最新文章