Burp Scanner 使用指南:爬虫与漏洞检测全流程解析
前言
在 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 Audit和Crawl。
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 最强大的部分。主动扫描比被动扫描更全面:
- 它首先运行爬网程序和 Web 模糊测试器(如 dirbuster/ffuf)来识别所有可能的页面
- 它对所有已识别的页面运行被动扫描
- 它检查被动扫描中识别出的每个漏洞,并发送请求来验证它们
- 它执行 JavaScript 分析来识别进一步的潜在漏洞
- 它模糊各种已识别的插入点和参数,以寻找常见漏洞,如 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并过滤迄今为止已识别的所有问题。从结果上方的过滤器中,选择High并Certain查看过滤后的结果:

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

报告导出
最后,所有扫描完成后,我们可以前往 ( Target>Site map),右键单击目标,然后选择 ( Issue>Report issues for this host)。系统将提示我们选择报告的导出类型以及要包含在报告中的信息。导出报告后,我们可以在任何 Web 浏览器中打开它来查看其详细信息。
Burp 的报告按照漏洞的严重性和可信度进行分类,还包含每个漏洞的详细描述、利用方式(PoC)以及修复建议,非常适合作为渗透测试过程中对外输出的参考材料。
参考资料与靶场
宇宙安全声明
本博客所提供的内容仅供学习与交流,旨在提高网络安全技术水平,谨遵守国家相关法律法规,请勿用于违法用途,博主不对任何人因使用博客中提到的技术或工具而产生的任何后果负责。如果您对文章内容有疑问,可以留言私信。
Burp Scanner 使用指南:爬虫与漏洞检测全流程解析的更多相关文章
- 【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析
在创建一个job后,就要开始job的运行,运行的全流程如下: 1.在界面上启动job 2.index.jsp 查看上述页面对应的源代码 <a href='"+request.getCo ...
- 快速、直接的XSS漏洞检测爬虫 – XSScrapy
XSScrapy是一个快速.直接的XSS漏洞检测爬虫,你只需要一个URL,它便可以帮助你发现XSS跨站脚本漏洞. XSScrapy的XSS漏洞攻击测试向量将会覆盖 Http头中的Referer字段 U ...
- Metasploit是一款开源的安全漏洞检测工具,
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,适合于需要核实漏洞的安全专家,同时也适合于强大进攻能力的 ...
- Burp Scanner Report
1.使用application web 漏洞平台,除此之外还有一款类似的工具 叫做mulidata,其实mulidata功能更好一点. 2.配置之前的问题处理 安装之前要确认 自己之前是否安装过 Ap ...
- [漏洞检测]Proxpy Web Scan设计与实现(未完待续)
Proxpy Web Scan设计与实现 1.简介: Proxpy Web Scan是基于开源的python漏洞扫描框架wapiti改造的web漏洞扫描器,其主要解决以下几个问题而生 ...
- Retina CS强大漏洞检测工具
RetinaCS强大漏洞检测工具 Eeye数字安全公司成立于上世纪九十年代末期,它是世界领先的安全公司,它采用最新研究成果和创新技术来保证您的网络兄系统安全,并向您提供最强大的如下服务:全面的.漏洞评 ...
- xxe漏洞检测及代码执行过程
这两天看了xxe漏洞,写一下自己的理解,xxe漏洞主要针对webservice危险的引用的外部实体并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目録遍历等.首先存在漏洞的web服务一定是存 ...
- 基于Python3的漏洞检测工具 ( Python3 插件式框架 )
目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents Any advice or sugggestions P ...
- Jenkins高危代码执行漏洞检测/开源漏洞靶场
漏洞细节可以参看安全客的文章:https://bbs.ichunqiu.com/thread-22507-1-1.html Jenkins-CLI 反序列化代码执行(CVE-2017-1000353) ...
- Cisco IOS和IOS XE 新漏洞检测与修复
Cisco IOS/IOS XE 新漏洞检测与修复 CVE-2018-0150 Cisco IOS XE 存在默认弱口令 漏洞影响: 默认弱口令可以导致攻击者直远程登录控制Cisco设备.受影响版本, ...
随机推荐
- drawcall和batch
drawcall和batch的概念和区别可以结合冯乐乐书的前端章节和以下i链接达到透彻的理解 正如链接中所讲,batch是比drawcall所指范围更广的概念,包含了drawcall https:// ...
- CI/CD 概念简介
〇.前言 CI/CD 是现代软件开发的核心实践,通过自动化和协作,显著提升交付效率和质量. 本文将对 CI 和 CD 这两个概念进行简要介绍,供参考. 一.CI/CD 的核心概念 CI/CD 是 De ...
- 结合laravel深入理解php的服务容器和依赖注入
原文:laravel 学习笔记 -- 神奇的服务容器 容器,字面上理解就是装东西的东西.常见的变量.对象属性等都可以算是容器.一个容器能够装什么,全部取决于你对该容器的定义.当然,有这样一种容器,它存 ...
- SaltStack 远程命令执行中文乱码问题
问题 我在一台服务器上写了一个简单的 Python 脚本 haha.py,内容如下: [root@localhost ~]# cat haha.py print("你好") 当我在 ...
- 工具 | Hashcat
0x00 简介 Hashcat是一款强大的密码破解工具. 下载地址 Hashcat下载: Hashcat下载 0x01 功能说明 直接破解 组合攻击 掩码暴力破解 混合攻击 联合攻击 注:仅供安全研究 ...
- Docker手册
docker手册 安装 # 移除旧版本dockersudo yum remove docker \ docker-client \ ...
- Flex布局-margin 妙用技巧
在 flex 布局 中, 通过对子项设置 margin-auto; 的方式去吃掉剩余空间, 这种小技巧在很多时候能极大简化我们的布局哦. 单元素水平垂直居中 如果父容器是 flex, 要实现元素水平垂 ...
- Java Solon-MCP 实现 MCP 实践全解析:SSE 与 STDIO 通信模式详解
参文参考自:https://blog.csdn.net/lingding_cn/article/details/147355620 一.MCP简介 MCP(Model Context Protocol ...
- 操作系统:苹果的M1芯片因何而快?
本届来看看操作系统下面的硬件层面,重点研究一下 CPU 的原理和它的加速套路. CPU的原理初探 从操作系统的位置来看,它除了能够向上封装,为软件调用提供 API(也就是系统调用),向下又对硬件资源进 ...
- Django批量创建Model实例
1.前言: 将测试数据全部敲入数据库非常繁琐,而且如果与合作伙伴一起开发,部署,那么他们肯定也不想把时间花在一个一个录入数据的繁琐过程中,这时候,创建一个批量录入数据的脚本(population sc ...