Burp suite
Burp suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们能够自动化或手工的完成对web应用的渗透测试攻击,在渗透测试中,我们使用Burp suite将会使得测试工作变得更加容易和方便,即使在需要要娴熟的技巧的情况下,只要我们熟悉Burp suite的使用,也会使得渗透测试工作变得更加轻松和高效。
Burp suite 各大模块:
Target(目标)——显示目标目录结构的的一个功能
Proxy(代理)——拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
Spider(蜘蛛)——应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
Scanner(扫描器)——高级工具,执行后,它能自动地发现web 应用程序的安全漏洞。
Intruder(入侵)——一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
Repeater(中继器)——一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。
Sequencer(会话)——用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
Decoder(解码器)——进行手动执行或对应用程序数据者智能解码编码的工具。
Comparer(对比)——通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
Extender(扩展)——可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
Options(设置)——对Burp Suite的一些设置
Burp suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们能够自动化或手工的完成对web应用的渗透测试攻击,在渗透测试中,我们使用Burp suite将会使得测试工作变得更加容易和方便,即使在需要要娴熟的技巧的情况下,只要我们熟悉Burp suite的使用,也会使得渗透测试工作变得更加轻松和高效。
Burp suite 各大模块:
Target(目标)——显示目标目录结构的的一个功能
Proxy(代理)——拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
Spider(蜘蛛)——应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
Scanner(扫描器)——高级工具,执行后,它能自动地发现web 应用程序的安全漏洞。
Intruder(入侵)——一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
Repeater(中继器)——一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。
Sequencer(会话)——用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
Decoder(解码器)——进行手动执行或对应用程序数据者智能解码编码的工具。
Comparer(对比)——通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
Extender(扩展)——可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
Options(设置)——对Burp Suite的一些设置
demo的java swing的代码,在jlabel里我直接输入了payload就会得到一个渲染失败的图片,学过基础的xss的都知道,这就是个html的img标签渲染失败的样子。这也意味着如果填入了远程地址,就会对远程服务器发送get请求。这也是这几天最常见的基础利用。那么这是为什么呢?没错,这就是swing(一种java GUI的库)自带的特性,也是一切的起点。
在内容的开头插入<html>标签后续的内容就会被格式化为html文档进行解析,也就是说支持html标签。这里有个关键点就是at the beginning of the text,也就是说必须是开头插入<html>才行,这个点很关键记一下。大部分鲁特们看到这里,可能就很显然的认为既然支持html标签了那是不是直接套一套XSS那一套就可以RCE了
在内容的开头插入<html>标签后续的内容就会被格式化为html文档进行解析,也就是说支持html标签。这里有个关键点就是at the beginning of the text,也就是说必须是开头插入<html>才行,这个点很关键记一下。大部分鲁特们看到这里,可能就很显然的认为既然支持html标签了那是不是直接套一套XSS那一套就可以RCE了
JVMJava 虚拟机(Java Virtual Machine, JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。如下图所示,不同编程语言(Java、Groovy、Kotlin、JRuby、Clojure ...)通过各自的编译器编译成 .class 文件,并最终通过 JVM 在不同平台(Windows、Mac、Linux)上运行。
JDK 和 JREJDK(Java Development Kit)是一个功能齐全的 Java 开发工具包,供开发者使用,用于创建和编译 Java 程序。它包含了 JRE(Java Runtime Environment),以及编译器 javac 和其他工具,如 javadoc(文档生成器)、jdb(调试器)、jconsole(监控工具)、javap(反编译工具)等。JRE 是运行已编译 Java 程序所需的环境,主要包含以下两个部分:JVM : 也就是我们上面提到的 Java 虚拟机。Java 基础类库(Class Library):一组标准的类库,提供常用的功能和 API(如 I/O 操作、网络通信、数据结构等)。简单来说,JRE 只包含运行 Java 程序所需的环境和类库,而 JDK 不仅包含 JRE,还包括用于开发和调试 Java 程序的工具。如果需要编写、编译 Java 程序或使用 Java API 文档,就需要安装 JDK。某些需要 Java 特性的应用程序(如 JSP 转换为 Servlet 或使用反射)也可能需要 JDK 来编译和运行 Java 代码。因此,即使不进行 Java 开发工作,有时也可能需要安装 JDK。
JDK 9 引入了一种新的编译模式 AOT(Ahead of Time Compilation) 。和 JIT 不同的是,这种编译模式会在程序被执行前就将其编译成机器码,属于静态编译(C、 C++,Rust,Go 等语言就是静态编译)。
AOT 避免了 JIT 预热等各方面的开销,可以提高 Java 程序的启动速度,避免预热时间长。并且,AOT 还能减少内存占用和增强 Java 程序的安全性(AOT 编译后的代码不容易被反编译和修改),特别适合云原生场景。
AOT 的主要优势在于启动时间、内存占用和打包体积。JIT 的主要优势在于具备更高的极限处理能力,可以降低请求的最大延迟。提到 AOT 就不得不提 GraalVM 了!GraalVM 是一种高性能的 JDK(完整的 JDK 发行版本),它可以运行 Java 和其他 JVM 语言,以及 JavaScript、Python 等非 JVM 语言。
AOT 避免了 JIT 预热等各方面的开销,可以提高 Java 程序的启动速度,避免预热时间长。并且,AOT 还能减少内存占用和增强 Java 程序的安全性(AOT 编译后的代码不容易被反编译和修改),特别适合云原生场景。
AOT 的主要优势在于启动时间、内存占用和打包体积。JIT 的主要优势在于具备更高的极限处理能力,可以降低请求的最大延迟。提到 AOT 就不得不提 GraalVM 了!GraalVM 是一种高性能的 JDK(完整的 JDK 发行版本),它可以运行 Java 和其他 JVM 语言,以及 JavaScript、Python 等非 JVM 语言。
在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围。通过此类手段,攻击者最终可能获得域控制器的访问权限,甚至完全控制基于Windows操作系统的整个内网环境,控制域环境下的全部机器。
执行net share命令,可以获得Windows默认开启的网络共享,其中C$为C盘共享,ADMIN$为系统目录共享,还有一个IPC$共享
执行net share命令,可以获得Windows默认开启的网络共享,其中C$为C盘共享,ADMIN$为系统目录共享,还有一个IPC$共享
将我从沙盒中隔离出来 - 探索 CNG 密钥隔离的特权提升
最近几个月,微软修补了我报告的 CNG Key Isolation 服务漏洞,编号为 CVE-2023-28229 和 CVE-2023-36906,CVE-2023-28229 包含 6 个原因类似的释放后使用漏洞,而 CVE-2023-36906 是一个越界读取信息泄露漏洞。微软在评估状态中将其标记为“不太可能被利用”,但实际上,我利用这两个漏洞完成了利用
客户端可以指定要设置哪个属性,如果属性名为“使用上下文”,它将分配一个可由客户端控制大小的新缓冲区,并将“使用上下文”缓冲区存储到提供程序对象中,但是当我查看查询代码时,我注意到“使用上下文”应该是字符串类型,它将在 while 循环中遍历缓冲区,并在遇到空字符 [c] 时中断,然后将整个缓冲区返回给客户端。
当我将“使用上下文”属性设置为缓冲区中的非零内容时,将发生越界读取,实际上,此属性是一个很好的利用对象,因为缓冲区的大小和内容可以由客户端控制。
最近几个月,微软修补了我报告的 CNG Key Isolation 服务漏洞,编号为 CVE-2023-28229 和 CVE-2023-36906,CVE-2023-28229 包含 6 个原因类似的释放后使用漏洞,而 CVE-2023-36906 是一个越界读取信息泄露漏洞。微软在评估状态中将其标记为“不太可能被利用”,但实际上,我利用这两个漏洞完成了利用
客户端可以指定要设置哪个属性,如果属性名为“使用上下文”,它将分配一个可由客户端控制大小的新缓冲区,并将“使用上下文”缓冲区存储到提供程序对象中,但是当我查看查询代码时,我注意到“使用上下文”应该是字符串类型,它将在 while 循环中遍历缓冲区,并在遇到空字符 [c] 时中断,然后将整个缓冲区返回给客户端。
当我将“使用上下文”属性设置为缓冲区中的非零内容时,将发生越界读取,实际上,此属性是一个很好的利用对象,因为缓冲区的大小和内容可以由客户端控制。
JavaScript 是网络上使用最广泛的编程语言之一,因此成为网络犯罪分子的主要目标。它的流行以及其客户端执行为各种攻击媒介创造了机会。在本文中,您将学习一些 JavaScript 基础知识,以识别和利用 Web 应用程序中的漏洞,例如跨站点脚本 (XSS)、跨站点请求伪造 (CSRF),以及一些其他常见安全漏洞
OWASP ZAP 预装在 Kali Linux 上,因此请确保在您的终端中使用其进行更新sudo apt update %% sudo apt upgrade。
从应用程序菜单或 zaproxy在终端中输入启动应用程序,并配置必要的设置,例如目标 URL 和代理设置(考虑使用FoxyProxy这样的插件来轻松更改代理)。
扫描目标Web应用程序:
点击“攻击”按钮或从“工具”菜单中选择“蜘蛛”选项,即可启动扫描。这将启动对 Web 应用程序的爬取并识别潜在漏洞的过程。
查看结果:
扫描完成后,OWASP ZAP 将在“警报”选项卡中显示已识别漏洞的列表。您可以单击每个警报以查看更多详细信息,例如漏洞类型、严重性(通过彩色标志轻松可视化)和简要说明。
从应用程序菜单或 zaproxy在终端中输入启动应用程序,并配置必要的设置,例如目标 URL 和代理设置(考虑使用FoxyProxy这样的插件来轻松更改代理)。
扫描目标Web应用程序:
点击“攻击”按钮或从“工具”菜单中选择“蜘蛛”选项,即可启动扫描。这将启动对 Web 应用程序的爬取并识别潜在漏洞的过程。
查看结果:
扫描完成后,OWASP ZAP 将在“警报”选项卡中显示已识别漏洞的列表。您可以单击每个警报以查看更多详细信息,例如漏洞类型、严重性(通过彩色标志轻松可视化)和简要说明。
手动测试漏洞
手动测试 Web 应用程序是否存在漏洞是确定是否存在漏洞的一种方法。最常见的手动测试涉及在输入或表单字段中使用 JavaScript 来查看命令是否会运行。还有许多其他类型的手动测试(OWASP 整理了 XSS 过滤器逃避备忘单),但这通常是涉及的第一步。
步骤 1:设置 DVWA
DVWA 也预装在 Kali Linux 中。如果你使用其他操作系统,请从其 GitHub 存储库下载,或sudo apt install dvwa在终端中使用。
通过运行托管应用程序的 Web 服务器启动 DVWA。
通过 Web 浏览器访问 DVWA,通常在http://localhost/dvwa。
使用提供的凭据登录或创建新帐户。
导航到“XSS”类别下的“反射型 XSS”部分。
第 2 步:识别漏洞
第一步是观察用户输入字段,因为这些是我们希望用于此类 XSS 攻击的元素。在开发者控制台中,检查易受攻击页面的源代码,以找到可能易受反射型 XSS 攻击的输入字段。
手动测试 Web 应用程序是否存在漏洞是确定是否存在漏洞的一种方法。最常见的手动测试涉及在输入或表单字段中使用 JavaScript 来查看命令是否会运行。还有许多其他类型的手动测试(OWASP 整理了 XSS 过滤器逃避备忘单),但这通常是涉及的第一步。
步骤 1:设置 DVWA
DVWA 也预装在 Kali Linux 中。如果你使用其他操作系统,请从其 GitHub 存储库下载,或sudo apt install dvwa在终端中使用。
通过运行托管应用程序的 Web 服务器启动 DVWA。
通过 Web 浏览器访问 DVWA,通常在http://localhost/dvwa。
使用提供的凭据登录或创建新帐户。
导航到“XSS”类别下的“反射型 XSS”部分。
第 2 步:识别漏洞
第一步是观察用户输入字段,因为这些是我们希望用于此类 XSS 攻击的元素。在开发者控制台中,检查易受攻击页面的源代码,以找到可能易受反射型 XSS 攻击的输入字段。