Kali Linux 网络扫描秘籍 第七章 Web 应用扫描(二)

简介: 第七章 Web 应用扫描(二) 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.07.7 使用 BurpSuite Web 代理虽然它有许多可用工具,BurpSuite 的主要功能就是拦截代理。

第七章 Web 应用扫描(二)

作者:Justin Hutchens

译者:飞龙

协议:CC BY-NC-SA 4.0

7.7 使用 BurpSuite Web 代理

虽然它有许多可用工具,BurpSuite 的主要功能就是拦截代理。这就是说,BurpSuite 拥有捕获请求和响应的功能,以及随后操作它们来将其转发到目的地。这个秘籍中,我们会讨论如何使用 BurpSuite 拦截或记录请求。

准备

为了使用 BurpSuite 对目标执行 Web 应用分析,你需要拥有运行一个或多个 Web 应用的远程系统。所提供的例子中,我们使用 Metasploitable2 实例来完成任务。 Metasploitable2 拥有多种预安装的漏洞 Web 应用,运行在 TCP 80 端口上。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。

此外,你的 Web 浏览器需要配置来通过 BurpSuite 本地实例代理 Web 流量。关于将 BurpSuite 用作浏览器代理的更多信息,请参考第一章的“配置 BurpSuite”一节。

操作步骤

BurpSuite 的功能可以以被动或拦截模式使用。如果禁用了拦截器,所有请求和响应都会简单记录到HTTP History(HTTP 历史)标签页中。可以从列表中选择它们,来浏览它们或查看任何请求或响应的细节,像这样:

作为替代,Intercept(拦截器)按钮可以按下来捕获发送过程中的流量。这些请求可以在Proxy标签页中操作,之后会转发到目的地,或者丢弃。通过选择Opyions标签页,拦截器代理可以重新配置来定义所拦截的请求类型,或者甚至在响应到达浏览器之前拦截它们,像这样:

工作原理

BurpSuite 代理可以拦截或被动记录浏览器接受或发送的流量,因为它逻辑上配置在浏览器和任何远程设置之间。浏览器被配置来将所有请求发送给 Burp 的代理,之后代理会将它们转发给任何外部主机。由于这个配置,Burp 就可以捕获两边的发送中的请求和响应,或者记录所有发往或来自客户端浏览器的通信。

7.8 使用 BurpSuite Web 应用扫描器

BurpSuite 可以用作高效的 Web 应用漏洞扫描器。这个特性可以用于执行被动分析和主动扫描。这个秘籍中,我们会谈论如何使用 BurpSuite 执行被动和主动漏洞扫描。

准备

为了使用 BurpSuite 对目标执行 Web 应用分析,你需要拥有运行一个或多个 Web 应用的远程系统。所提供的例子中,我们使用 Metasploitable2 实例来完成任务。 Metasploitable2 拥有多种预安装的漏洞 Web 应用,运行在 TCP 80 端口上。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。

此外,你的 Web 浏览器需要配置来通过 BurpSuite 本地实例代理 Web 流量。关于将 BurpSuite 用作浏览器代理的更多信息,请参考第一章的“配置 BurpSuite”一节。

操作步骤

通常,BurpSuite 会被动扫描所有范围内的 Web 内容,它们通过浏览器在连接代理时范围。术语“被动扫描”用于指代 BurpSuite被动观察来自或发往服务器的请求和响应,并检测内容中的任何漏洞标识。被动扫描不涉及任何注入或探针,或者其他确认可疑漏洞的尝试。

主动扫描可以通过右键点击任何站点地图中的对象,或者任何 HTTP 代理历史中的请求,并且选择Actively scan this branch,或者Do an active scan,像这样:

所有主动扫描的结果可以通过选择Scanner下方的Scan queue标签页来复查。通过双击任何特定的扫描项目,你可以复查特定的发现,因为它们属于该扫描,像这样:

主动扫描可以通过选择Options标签页来配置。这里,你可以定义要执行的扫描类型,扫描速度,以及扫描的彻底性。

工作原理

BurpSuite 的被动扫描器的工作原理是仅仅评估经过它的流量,这些流量在浏览器和任何远程服务器之间通信。这在识别一些非常明显的漏洞时非常有用,但是不足以验证许多存在于服务器中的更加严重的漏洞。主动扫描器的原理是发送一系列探针给请求中识别的参数。这些探针可以用于识别许多常见的 Web 应用漏洞,例如目录遍历、XSS 和 SQL 注入。

7.9 使用 BurpSuite Intruder(干扰器)

BurpSuite 中的另一个非常有用的工具就是 Intruder。这个工具通过提交大量请求来执行快节奏的攻击,同时操作请求中预定义的载荷位置。我们会使用 BurpSuite Intruder 来讨论如何自动化请求内容的操作。

准备

为了使用 BurpSuite 对目标执行 Web 应用分析,你需要拥有运行一个或多个 Web 应用的远程系统。所提供的例子中,我们使用 Metasploitable2 实例来完成任务。 Metasploitable2 拥有多种预安装的漏洞 Web 应用,运行在 TCP 80 端口上。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。

此外,你的 Web 浏览器需要配置来通过 BurpSuite 本地实例代理 Web 流量。关于将 BurpSuite 用作浏览器代理的更多信息,请参考第一章的“配置 BurpSuite”一节。

操作步骤

为了使用 BurpSuite Intruder,需要通过拦截捕获或者代理历史向其发送请求。完成之后,右击请求并选择Send to Intruder,像这样:

在下面的例子中,DVWABrute Force应用的登录入口中输入了用户名和密码。在发往 Intruder 之后,可以使用Positions标签页来设置载荷。为了尝试爆破管理员密码,需要设置的载荷位置只有password参数,像这样:

一旦载荷位置定义好了,被注入的载荷可以在Payloads标签页中配置。为了执行字典攻击,我们可以使用自定义或内建的字典列表。这个例子中,内建的Passwords列表用于这次攻击,像这样:、

一旦配置好了攻击,你可以点击屏幕顶端的Intruder菜单,之后点击start attack。这会通过将每个值插入到载荷位置,快速提交一系列请求。为了判断是否存在任何请求生成了完全不同的响应,我们可以将结果按照长度排序。这可以通过点击Length表头来完成,通过点击将长度降序排列,我们可以识别出某个长度其它响应的响应。这就是和长度密码相关(碰巧为password)的响应。成功的登录尝试会在下一个秘籍中进一步确认,那些我们会讨论 Comparer 的用法。

工作原理

BurpSuite Intruder 的原理是自动化载荷操作。它允许用户指定请求中的一个或多个载荷位置,之后提供大量选项,用于配置这些值如何插入到载荷位置。它们会每次迭代后修改。

7.10 使用 BurpSuite Comparer(比较器)

在执行 Web 应用评估是,能够轻易识别 HTTP 请求或者响应中的变化非常重要。Comparer 功能通过提供图形化的变化概览,简化了这一过程。这个秘籍中,我们会谈论如何使用 BurpSuite 识别和评估多种服务器响应。

准备

为了使用 BurpSuite 对目标执行 Web 应用分析,你需要拥有运行一个或多个 Web 应用的远程系统。所提供的例子中,我们使用 Metasploitable2 实例来完成任务。 Metasploitable2 拥有多种预安装的漏洞 Web 应用,运行在 TCP 80 端口上。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。

此外,你的 Web 浏览器需要配置来通过 BurpSuite 本地实例代理 Web 流量。关于将 BurpSuite 用作浏览器代理的更多信息,请参考第一章的“配置 BurpSuite”一节。

操作步骤

任何包含不一致内容的异常通常都值得调查。响应中的变化通常是载荷产生了所需结果的明显标志。在前面使用 BurpSuite Intruder 来爆破 DVWA 登录的演示中,某个特定的载荷生成了比其它更长的响应。为了评估响应的变化,右击事件并点击Send to Comparer (response)

将事件发送给 Comparer 之后,你可以选择屏幕上访的Comparer标签页来评估它们。确保之前的响应之一选择为item 1,另外的一个响应选择为item 2,像这样:

在屏幕下方,存在compare wordscompare words的选项。这里我们选择compare words。我们可以看到,响应中一些内容的变化反映了登录成功。任何修改、删除或添加的内容都会在响应当中高亮显式,使其更加易于比较,像这样:

工作原理

BurpSuite Comparer 的原理是分析任意两个内容来源,并找出不同。这些不同被识别为修改、删除或添加的内容。快速区分内容中的变化可以用于高效判断特定操作的不同效果。

7.11 使用 BurpSuite Repeater(重放器)

在执行 Web 应用评估过程中,很多情况下需求手动测试来利用指定的漏洞。捕获代理中的每个响应、操作并转发非常消耗时间。BurpSuite 的 Repeater 功能通过一致化的操作和提交单个请用,简化了这个过程,并不需要在浏览器中每次重新生成流量。这个秘籍中,我们会讨论如何使用 BurpSuite 执行手动的基于本文的审计。

准备

为了使用 BurpSuite 对目标执行 Web 应用分析,你需要拥有运行一个或多个 Web 应用的远程系统。所提供的例子中,我们使用 Metasploitable2 实例来完成任务。 Metasploitable2 拥有多种预安装的漏洞 Web 应用,运行在 TCP 80 端口上。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。

此外,你的 Web 浏览器需要配置来通过 BurpSuite 本地实例代理 Web 流量。关于将 BurpSuite 用作浏览器代理的更多信息,请参考第一章的“配置 BurpSuite”一节。

操作步骤

为了使用 BurpSuite Repeater,请求需要通过拦截捕获或者代理历史来发送给它。发送之后,右击请求之后选择Send to Repeater,像这样:

在这个例子中,用户生成的请求用于提供名称,服务器以 HTML 响应返回所提供的输入。为了测试跨站脚本的可能性,我们应该在这种攻击中首先注入一系列常见的字符,像这样:

在发送一系列字符之后,我们可以看到,所有字符都在 HTML 内容中返回,没有字符被转义。这很大程度上表示,这个功能存在跨站脚本漏洞。为了测试漏洞是否可以利用,我们可以输入标准的标识请求<script>alert('xss')</ script>,像这样:

通过查看返回的 HTML 内容,我们可以看到,开头的script标签已经从响应中移除了。这可能表明黑名单禁止在输入中使用script标签。黑名单的问题就是,它可以通过修改输入来绕过。这里,我们可以尝试通过修改标签中几个字符的大小写来绕过黑名单,像这样:

通过使用<ScRiPt>标签,我们可以看到,强加的限制已经绕过了,开始和闭合标签都包含在响应中。这可以通过在浏览器中输入请求来验证,像这样:

为了评估客户端浏览器中的响应,右击请求之后选择Request in browser。这会生成一个 URL,它可以用于重新在已连接到 Burp 代理的浏览器中提交请求。

我们可以手动复制提供的 URL,或者点击Copy按钮。这个URL 之后可以粘贴到浏览器中,而且请求会在浏览器中提交。假设跨站脚本攻击是成功的,客户端 JS 代码会在浏览器中渲染,并且屏幕上会出现提示框,像这样:

工作原理

BurpSuite Repeater 仅仅通过向 Web 提供文本界面来工作。Repeater 可以让用户通过直接操作请求和远程 Web 服务交互,而不是和 Web 浏览器交互。这在测试真实 HTML 输出比渲染在浏览器中的方式更加重要时非常有用。

7.12 使用 BurpSuite Decoder(解码器)

在处理 Web 应用流量时,你会经常看到出于混淆或功能性而编码的内容。BurpSuite Decoder 可以解码请求或响应中的内容,或按需编码内容。这个秘籍中,我们会讨论如何使用 BurpSuite 编码和解码内容。

准备

为了使用 BurpSuite 对目标执行 Web 应用分析,你需要拥有运行一个或多个 Web 应用的远程系统。所提供的例子中,我们使用 Metasploitable2 实例来完成任务。 Metasploitable2 拥有多种预安装的漏洞 Web 应用,运行在 TCP 80 端口上。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。

此外,你的 Web 浏览器需要配置来通过 BurpSuite 本地实例代理 Web 流量。关于将 BurpSuite 用作浏览器代理的更多信息,请参考第一章的“配置 BurpSuite”一节。

操作步骤

为了向 BurpSuite Decoder 传递指定的值,高亮所需的字符串,右击它,并选择Send to Decoder。在下面的例子中,Cookie参数的值被发送到了解码器,像这样:

通过点击Smart decode按钮,BurpSuite 会自动将编码识别为 URL 编码,并将其解码到编码文本下面的区域中,像这样:

如果 BurpSuite 不能判断编码类型,可以以多种不同编码类型来手动解码,包括 URL、HTML、Base64、ASCII Hex,以及其它。解码器也能够使用Encode as...功能来编码输入的字符串。

工作原理

BurpSuite Decoder 在和 Web 应用交互时提供了编码和解码的平台。这个工具十分有用,因为 Web 上由多种编码类型经常用于处理和混淆目的。此外,Smart decode工具检测任何所提供输入的已知模式或签名,来判断内容所使用的编码类型,并对其解码。

相关文章
|
3月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
142 2
|
20天前
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
75 28
|
17天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
31 11
|
1月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
89 15
|
2月前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
92 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
2月前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
226 7
|
3月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
264 5
|
3月前
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
62 5
|
3月前
|
Kubernetes 网络协议 Python
Python网络编程:从Socket到Web应用
在信息时代,网络编程是软件开发的重要组成部分。Python作为多用途编程语言,提供了从Socket编程到Web应用开发的强大支持。本文将从基础的Socket编程入手,逐步深入到复杂的Web应用开发,涵盖Flask、Django等框架的应用,以及异步Web编程和微服务架构。通过本文,读者将全面了解Python在网络编程领域的应用。
67 1
|
4月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
256 3

热门文章

最新文章