前言

在 Web 渗透测试中,Burp Suite 不仅是一款功能强大的抓包工具,还内置了全面的漏洞扫描模块 —— Burp Scanner。它通过内置的爬虫(Crawler)自动构建网站结构,并结合被动与主动扫描器(Scanner)对目标进行漏洞检测,是执行高效 Web 安全测试的重要利器。


目标范围(Scope)

Burp 的所有扫描操作都基于「范围控制」,即 Target → Scope 设置。只有被包含在范围内的目标,才会被爬虫或扫描器处理。


我们有两种方法将某个地址加入Scope

法一:在HTTP History中选中请求右键点击,选择 Add to scope

法二:所有经过 Burp Proxy 的 HTTP/HTTPS 请求,其对应的目标(域名+路径)都会自动出现在 Target → Site Map 里,这是 Burp 的核心功能之一。我们可以在Target → Site Map选中请求右键,然后选择Add to scope

如果扫描某些项目可能存在危险,或者可能会像注销功能一样结束会话,我们可能还需要将其从范围中排除。要从范围中排除某个项目,我们可以右键单击任何范围内的项目,然后选择Remove from scope

最后,我们可以转到 ( Target>Scope setting) 查看Scope的详细信息。在这里,我们还可以添加/删除其他项目,并使用高级范围控制来指定要包含/排除的正则表达式模式。

爬虫(Crawl)

一旦我们准备好Scope,我们就可以转到Dashboard选项卡并单击New Scan来配置我们的扫描,它将自动填充我们的Scope内的项目:

我们看到 Burp 提供了两个扫描选项:Crawl and AuditCrawl

  • Crawl(网络爬虫)会通过访问网站页面中的任何链接、表单以及检查网站发出的任何请求来导航网站,从而构建网站的综合地图。最终,Burp 扫描器会向我们呈现目标地图,将所有可公开访问的数据集中显示,这将是本节的重点。
  • 如果我们选择Crawl and Audit,Burp 会在爬虫程序运行后运行扫描器,即实现爬虫、被动扫描、主动扫描的全过程,我们后面再介绍。

注意:爬取扫描仅跟踪并映射我们指定的页面及其上找到的任何页面中的链接。它不会像 dirbuster 或 ffuf 那样执行模糊测试扫描来识别从未被引用的页面。您可以使用 Burp Intruder 或 Content Discovery 来完成此操作,然后根据需要将其添加到范围中。


让我们选择Crawl,然后转到Scan configuration选项卡来配置我们的扫描。在这里,我们可以选择单击New“构建自定义配置”,这将允许我们设置诸如抓取速度或限制之类的配置

为了简单起见,我们将单击按钮Select from library,这将为我们提供一些可供选择的预设配置(或我们之前定义的自定义配置):

继续到Application login选项卡。在此选项卡中,我们可以添加一组凭据,供 Burp 尝试在其找到的任何登录表单/字段中进行登录。我们还可以通过在预配置的浏览器中执行手动登录来记录一组步骤,以便 Burp 知道要执行哪些步骤才能获得登录会话。

如果我们使用经过身份验证的用户运行扫描,这一点至关重要,这将使我们能够覆盖 Burp 可能无法访问的 Web 应用程序部分。由于我们没有任何凭据,因此我们将它留空。

这样,我们就可以点击Ok按钮开始抓取扫描了。扫描开始后,我们可以在Dashboard以下选项卡中看到扫描进度Tasks

最后,扫描完成后,我们将在任务信息中看到Crawl Finished,然后返回 ( Target>Site map) 查看更新后的站点地图:

被动扫描器(Passive Scanner)

现在站点地图已完全构建,我们可以选择扫描此目标以查找潜在漏洞。

与主动扫描不同,被动扫描不会发送任何新请求,而是分析目标/范围内已访问页面的来源,然后尝试识别potential漏洞。这对于快速分析特定目标非常有用,例如缺少 HTML 标签或潜在的基于 DOM 的 XSS 漏洞。然而,由于不发送任何请求来测试和验证这些漏洞,被动扫描只能提供潜在漏洞的列表。不过,Burp 被动扫描器会Confidence为每个已识别的漏洞提供相应的级别,这也有助于确定潜在漏洞的优先级。

让我们先尝试仅执行被动扫描。为此,我们可以再次在 Target>Site map 中选择目标,或在 Burp 代理历史记录(HTTP history)中选择请求,然后右键单击它并选择Passively scan this target

被动扫描将开始运行,其任务也可以在选项卡中看到Dashboard。扫描完成后,我们可以点击View Details查看已识别的漏洞。

或者,我们可以在Dashboard选项卡的窗格Issue activity中查看所有已识别的问题。如我们所见,它显示了潜在漏洞的列表、其严重程度及其置信度。通常,我们希望查找具有High严重程度和Certain置信度的漏洞。但是,对于非常敏感的 Web 应用程序,我们应该包含所有级别的严重程度和置信度,并特别关注High严重程度和Confident/Firm置信度。

主动扫描仪(Active Scanner)

主动漏洞扫描器是 Burp Scanner 最强大的部分。主动扫描比被动扫描更全面:

  1. 它首先运行爬网程序和 Web 模糊测试器(如 dirbuster/ffuf)来识别所有可能的页面
  2. 它对所有已识别的页面运行被动扫描
  3. 它检查被动扫描中识别出的每个漏洞,并发送请求来验证它们
  4. 它执行 JavaScript 分析来识别进一步的潜在漏洞
  5. 它模糊各种已识别的插入点和参数,以寻找常见漏洞,如 XSS、命令注入、SQL 注入和其他常见的 Web 漏洞

启动主动扫描器有两种方式

  • 法一:我们可以像启动被动扫描一样,在 Target>Site map 或在 Burp 代理历史记录(HTTP history)中选择请求,然后右键单击它并选择Do active scan
  • 法二:我们可以使用Dashboard选项卡中的New Scan按钮对Scope运行扫描,这将允许我们配置主动扫描。这次,我们将选择Crawl and Audit选项,它将执行上述所有操作以及我们迄今为止讨论的所有内容。

我们还可以设置抓取配置(如前所述)和审计配置。审计配置使我们能够选择要扫描的漏洞类型(默认为全部),扫描器将尝试在其中插入其有效载荷,此外还有许多其他有用的配置。

同样,我们可以使用Select from library按钮选择配置预设。对于我们的测试,由于我们关注的High是可能允许我们控制后端服务器的漏洞,因此我们将选择此Audit checks - critical issues only选项。

最后,我们可以添加登录详细信息,就像我们之前在抓取配置中看到的那样。

扫描完成后,我们可以在选项卡Issue activity中的窗格中查看Dashboard并过滤迄今为止已识别的所有问题。从结果上方的过滤器中,选择HighCertain查看过滤后的结果:

Burp 成功识别出一个 操作系统命令注入(OS Command Injection) 漏洞,并将其标记为 High 级别的严重性与 Firm 的置信度,表明该漏洞极有可能真实存在且具有较大危害。我们可以点击该条目,查看详细的说明,包括 Burp 发送的具体请求、服务器的响应内容,以及该漏洞的利用方式和影响范围。此外,“Path to issue” 功能还展示了从起始页面逐步访问至该漏洞页面的路径,帮助我们理解漏洞的触发流程与上下文位置。

报告导出

最后,所有扫描完成后,我们可以前往 ( Target>Site map),右键单击目标,然后选择 ( Issue>Report issues for this host)。系统将提示我们选择报告的导出类型以及要包含在报告中的信息。导出报告后,我们可以在任何 Web 浏览器中打开它来查看其详细信息。

Burp 的报告按照漏洞的严重性和可信度进行分类,还包含每个漏洞的详细描述、利用方式(PoC)以及修复建议,非常适合作为渗透测试过程中对外输出的参考材料。

参考资料与靶场

Burp Scanner

ZAP Scanner

宇宙安全声明

本博客所提供的内容仅供学习与交流,旨在提高网络安全技术水平,谨遵守国家相关法律法规,请勿用于违法用途,博主不对任何人因使用博客中提到的技术或工具而产生的任何后果负责。如果您对文章内容有疑问,可以留言私信。

Burp Scanner 使用指南:爬虫与漏洞检测全流程解析的更多相关文章

  1. 【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析

    在创建一个job后,就要开始job的运行,运行的全流程如下: 1.在界面上启动job 2.index.jsp 查看上述页面对应的源代码 <a href='"+request.getCo ...

  2. 快速、直接的XSS漏洞检测爬虫 – XSScrapy

    XSScrapy是一个快速.直接的XSS漏洞检测爬虫,你只需要一个URL,它便可以帮助你发现XSS跨站脚本漏洞. XSScrapy的XSS漏洞攻击测试向量将会覆盖 Http头中的Referer字段 U ...

  3. Metasploit是一款开源的安全漏洞检测工具,

    Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,适合于需要核实漏洞的安全专家,同时也适合于强大进攻能力的 ...

  4. Burp Scanner Report

    1.使用application web 漏洞平台,除此之外还有一款类似的工具 叫做mulidata,其实mulidata功能更好一点. 2.配置之前的问题处理 安装之前要确认 自己之前是否安装过 Ap ...

  5. [漏洞检测]Proxpy Web Scan设计与实现(未完待续)

    Proxpy Web Scan设计与实现 1.简介:          Proxpy Web Scan是基于开源的python漏洞扫描框架wapiti改造的web漏洞扫描器,其主要解决以下几个问题而生 ...

  6. Retina CS强大漏洞检测工具

    RetinaCS强大漏洞检测工具 Eeye数字安全公司成立于上世纪九十年代末期,它是世界领先的安全公司,它采用最新研究成果和创新技术来保证您的网络兄系统安全,并向您提供最强大的如下服务:全面的.漏洞评 ...

  7. xxe漏洞检测及代码执行过程

    这两天看了xxe漏洞,写一下自己的理解,xxe漏洞主要针对webservice危险的引用的外部实体并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目録遍历等.首先存在漏洞的web服务一定是存 ...

  8. 基于Python3的漏洞检测工具 ( Python3 插件式框架 )

    目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents Any advice or sugggestions P ...

  9. Jenkins高危代码执行漏洞检测/开源漏洞靶场

    漏洞细节可以参看安全客的文章:https://bbs.ichunqiu.com/thread-22507-1-1.html Jenkins-CLI 反序列化代码执行(CVE-2017-1000353) ...

  10. Cisco IOS和IOS XE 新漏洞检测与修复

    Cisco IOS/IOS XE 新漏洞检测与修复 CVE-2018-0150 Cisco IOS XE 存在默认弱口令 漏洞影响: 默认弱口令可以导致攻击者直远程登录控制Cisco设备.受影响版本, ...

随机推荐

  1. Python+Appium+unittest案例

    代码如下: # coding=utf-8 import time import unittest from appium import webdriver class MyTestCase(unitt ...

  2. jmeter使用json断言校验返回结果

    jmeter断言有好几种方式,本案讲json断言 http请求返回数据的格式有json格式,如下图,比如需要验证"ShipperRealName"参数的值 步骤如下: 第一步,选中 ...

  3. Sentinel源码—5.FlowSlot借鉴Guava的限流算法

    大纲 1.Guava提供的RateLimiter限流使用示例 2.Guava提供的RateLimiter简介与设计 3.继承RateLimiter的SmoothBursty源码 4.继承RateLim ...

  4. devops组件搭配选型

    名称 作用 备注 sentry 异常捕获系统 gitlab 代码仓库 jenkins 持续集成 open-falcon 监控系统 grafana 监控FE prometheus 监控系统 thanos ...

  5. Python3循环结构(一)for循环

    Python3循环结构 在Python中主要有两种类型的循环结构:for循环和while循环.for循环一般用于有明显边界范围的情况,例如,计算1+2+3+4+5+-+100等于几的问题,就可以用fo ...

  6. SpringBoot文件上传--转载

    转载地址:https://www.jianshu.com/p/85017f5ecba1

  7. Web前端入门第 46 问:CSS 中的数学函数不要只会 calc

    数学函数可以用来做什么? 最基础的当然是用来进行四则运算了,再进一步可以用来平方,对数,幂,绝对值,取余等,当然还可以用来计算三角函数. CSS 中的数学函数 灵活运用 CSS 中的数学函数,可以抛弃 ...

  8. 突破Excel百万数据导出瓶颈:全链路优化实战指南

    在日常工作中,Excel数据导出是一个常见的需求. 然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈. 当用户点击"导出"按钮时,后台系统往往会陷入三重困境: ‌内 ...

  9. MyCAT 2实现mysql8主从同步读写分离

    一.MyCAT2介绍 1.1 什么是MyCAT?MyCAT是目前最流行的分布式数据库中间插件,是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器.前端用户可以把它看作一个数据库代理,用M ...

  10. ubuntu 踩过的坑

    ubuntu安装中文输入法成功教程: https://zhuanlan.zhihu.com/p/508797663 博主希望尽量的不去宿主机中操作,达到对原系统的保护的效果,并且能够进行日常的深度学习 ...