TA的每日心情 | 无聊 2024-9-27 10:07 |
---|
签到天数: 62 天 连续签到: 1 天 [LV.6]测试旅长
|
2#
楼主 |
发表于 2024-9-4 11:34:10
|
只看该作者
三、核心功能之扫描
(一)自动检测漏洞
Burp Suite 的 Scanner 模块是一个强大的漏洞检测工具,它可以自动检测 Web 应用程序的安全漏洞。Scanner 模块分为主动扫描和被动扫描两种方式。
1. 主动扫描
主动扫描会向目标 Web 应用程序发送大量带有攻击探测信息的请求,可以获得精准性高且详细的信息。但是会对目标站点造成较大影响,所用时间和资源也较多。适合在网站离线时做测试。
主动扫描的步骤如下:
在需要扫描的网站上右键,点击发送到主动扫描模块。
在 Scan queue 中查看主动扫描的进度。
Issue actively 查看扫描到的漏洞具体信息,可以对内容进行自定义标记,导出报告等。
主动扫描适用于以下类型的漏洞:
客户端的漏洞,如 XSS、HTTP 头注入、操作重定向。
服务端的漏洞,如 SQL 注入、命令行注入、文件遍历。
以 SQL 注入漏洞检测为例,Burp 在检测过程中会采用各种技术验证漏洞是否存在,例如诱导时间延迟、强制修改 Boolean 值、与模糊测试的结果进行比较,以提高漏洞扫描报告的准确性。
2. 被动扫描
被动扫描只会根据爬虫获得的内容上进行分析,不会重新对域名进行请求攻击,可以得到比较具体的信息。当服务器正在运作时,可以使用该方式扫描,不会对网站造成损害。该方式精准度低于主动扫描,但是时间短,消耗资源小,影响小。
被动扫描在你需要扫描的网站上右键,点击发送到被动扫描模块。默认情况下,Burp Suite 运行时,Scanner 会自动进行被动扫描,当在爬取网页时,它会探测出简单少量的信息。
被动扫描容易检测出以下类型的漏洞:
提交的密码为未加密的明文。
不安全的 cookie 的属性,例如缺少 HttpOnly 和安全标志。
cookie 的范围缺失。
跨域脚本包含和站点引用泄露。
表单值自动填充,尤其是密码。
SSL 保护的内容缓存。
目录列表。
提交密码后应答延迟。
session 令牌的不安全传输。
敏感信息泄露,例如内部 IP 地址、电子邮件地址、堆枝跟踪等信息泄露。
不安全的 ViewState 的配置。
错误或不规范的 Content-Type 指令。
(二)扫描配置与结果分析
1. 扫描配置方法
(1)打开扫描启动页面:打开 Dashboard 标签页选择 New scan,新建扫描任务。打开扫描启动对话框后,在 URLs to scan 文本框填写目标网站地址,记得取消之前设置目标范围 target scope 时添加的过滤条件,其他选项保持默认。
(2)配置扫描参数:选择 Scan configuration 对 Burp Scanner 的各方面参数进行微调,以适应不同的测试用例和目标站点。初次学习可尝试 Use a preset scan mode(预设扫描模式),然后单击 Lightweight。轻量级扫描模式旨在尽可能快地对目标进行大致扫描,用时最多运行 15 分钟。
(3)设置扫描选项:在 Options 中可以设置扫描的规则选项、设置攻击插入点,检测敏感字段。设置扫描的引擎,设置主动和被动扫描的选项。具体包括 Attack Insertion Points、Active Scanning Engine、Active Scanning Optimization、Active Scanning Areas、Passive Scanning Areas、Static Code Analysis。
2. 分析扫描结果
(1)查看扫描进度和结果:在 Dashboard 标签页里可以实时查看扫描状态。爬取网站结束后,Burp Scanner 开始审计漏洞。点击左侧任务进度部分,右侧会展开任务相关信息。切换到任务详情的 issues 标签,就能查看扫描出的所有安全事件了。
(2)查看漏洞详情:随机选择一条安全事件记录,下面会出现 Advisory,也就是安全建议选项卡。选项卡内容包含有关事件类型的关键信息,包括安全事件的详细描述和一些补救建议。右侧几个选项卡是 Burp Scanner 发现此次安全事件的记录证据,通常是一个请求和响应。除了请求和响应外,有时也会需要其他选项卡的信息做参考。
(3)生成漏洞扫描报告:打开 Target > Site map 标签页,找到要生成漏洞扫描报告的站点入口,右键选择菜单项 Issues > Report issues。打开扫描报告的导出向导,然后自定义报告的格式和内容。选好扫描报告的保存位置确认即可生成并保存报告。导出扫描报告后可以直接在 Burp 浏览器查看。
四、核心功能之攻击
(一)定制化攻击工具
Burp Suite 的 Intruder 模块是一个强大的定制化攻击工具,用于对 Web 应用程序进行自动化攻击。它可以枚举标识符、收集有用的数据以及使用模糊测试技术探测常规漏洞。
Intruder 模块主要有四个组成部分:Target、Positions、Payloads 和 Options。Target 用于配置目标服务器进行攻击的详细信息,包括目标服务器的 IP 地址、端口号以及是否使用 HTTPS。Positions 设置 Payloads 的插入点以及攻击类型。Payloads 用于配置一个或多个有效载荷的集合,可以定义不同的有效载荷类型和处理规则。Options 包含了 request headers、request engine、attack results、grep match、grep_extrack、grep payloads 和 redirections 等选项,可以在发动攻击之前或攻击时对大部分设置进行修改。
(二)攻击方法与实践
攻击方法
Sniper(狙击手模式):将一组攻击载荷分别在每一个位置上逐个放入单个 payload 测试。例如,字典里有五个 payload,在请求模板上定义了两个 payload 位置,在修改时会把这五个 payload 分别放入第一个位置,再分别放入第二个位置,最后产生十个版本的请求。这种模式主要适用于竞争条件测试、密码和验证码暴力破解、重放攻击等场景。
Battering ram(攻城锤模式):遍历一组有效载荷,在所有定义的位置上放入同一个载荷。同样是五个 payload,两个位置,那一共会有五个版本的修改请求,每个版本的请求的两个位置上是同样的 payload。此模式主要适用于暴力破解,比如在用户名和密码相同的情况下。
Pitchfork(草叉模式):使用多组有效载荷,每个定义的位置使用一组不同的有效载荷。例如,两个位置、两组攻击载荷分别有 5 个 payload,第一次攻击将第一组的第一个 payload 放入与第一组对应的位置,将第二组第一个 payload 放入与第二组对应的位置;第二次攻击将第一组第二个 payload 放入相应位置,将第二组第二个 payload 放入对应位置。一共五个版本,五次攻击。适用于恶意注册等场景。
Cluster bomb(集束炸弹模式):同样使用多组有效载荷,每个定义的位置使用一组不同的有效载荷。与 Pitchfork 不同的是,攻击时,第一个位置放入第一组的第一个 payload 然后在第二个位置遍历第二组中所有的 payload,然后第一个位置再放入第一组的第二个 payload,第二个位置同样再遍历一次第二组的所有 payload,一直下去。例如,两个位置,第一组有两个 payload,第二组有三个 payload,会产生 2 * 3 = 6 次攻击请求。主要适用于账号、密码暴力破解。
实际案例
假设我们要对一个 Web 应用程序的登录页面进行暴力破解。首先,使用 Burp Suite 的 Proxy 工具捕获登录请求,然后将请求发送到 Intruder 模块。在 Intruder 的 Positions 选项卡中,我们可以手动指定用户名和密码字段为攻击点。如果我们选择 Sniper 模式,并且有一个包含常见用户名的字典和一个包含常见密码的字典,Intruder 会依次将用户名字典中的每个值放入用户名字段,同时保持密码字段不变,然后再对密码字段进行同样的操作。通过分析响应状态码、响应长度或响应体,我们可以判断是否成功破解了登录密码。
对于枚举标识符的场景,我们可以使用 Intruder 对一个 Web 应用程序的参数进行模糊测试。例如,我们可以通过修改请求中的某个参数的值,观察服务器的响应,以确定该参数是否存在漏洞或者是否可以被利用。通过不断尝试不同的值,我们可以收集到有用的数据,为进一步的渗透测试提供依据。
五、漏洞挖掘方法
(一)利用 Python 扩展
Burp Suite 可以通过安装 Python 扩展来实现更强大的功能和自动化漏洞挖掘。以下是安装步骤和使用方法:
1. 安装 Jython 运行环境
首先,从 Jython 官网(https://www.jython.org/)下载 Jython 运行环境。官网提供了多种版本供选择,用户可以根据自己的需求进行下载。下载完成后,按照安装向导进行安装,确保安装路径正确设置。
2. 导入 Jython 到 Burp Suite
安装完成 Jython 后,需要将其导入到 Burp Suite 中。在 Burp Suite 中,转到 “Extender” 选项卡,点击 “Options”。在 Python Environment 配置项中,点击 “Select file”,选择 Jython 的安装目录下的 Jython.jar 文件。这样,Burp Suite 就可以识别并使用 Jython 环境了。
3. 使用 Python 脚本进行自动化漏洞挖掘
安装好 Python 扩展后,可以使用 Python 脚本进行自动化漏洞挖掘。例如,可以通过编写 Python 脚本来实现以下功能:
获取当前页面的请求结果:
- import requests
- # 这里填写非https的网站
- target_url = 'http://xxxxx.com'
- burp_proxy = {'http': 'http://127.0.0.1:8080', 'https': 'http://127.0.0.1:8080'}
- # 通过 Burp 代理发送 HTTP 请求
- response = requests.get(target_url, proxies=burp_proxy)
- print(response.content)
复制代码 处理 HTTPS 网站:
- import requests
- import json
复制代码
|
|