介绍
欢迎来到本关于 Web 服务器枚举和基本文件访问的实验。在本练习中,你将学习用于发现和交互 Web 服务的基础 Web 侦察技术。
在本实验中,你将模拟一个基础的 Web 侦察场景。你将首先对目标系统进行侦察,以确认其在线并识别正在运行的服务。使用 nmap 工具,你将发现一个 Web 服务器并枚举其版本。然后,你将使用 curl 命令访问已放置在 Web 服务器上的 flag 文件。
完成之后,你将了解如何:
- 使用
ping验证网络连接。 - 使用
nmap扫描 Web 服务并执行枚举。 - 理解基础的 Web 侦察技术。
- 使用
curl访问 Web 服务器上的文件并检索 flag。
让我们开始吧。
使用 Ping 验证与目标的连通性
在此步骤中,你将首先确认目标系统可以从你的机器访问。ping 命令是测试网络连接的标准实用程序。它向主机发送 ICMP Echo Request 数据包并监听回复。这是任何网络侦察任务中的第一个也是最基础的步骤。
你的环境中包含一个可以通过主机名 target 访问的目标系统。
在终端中执行以下命令,向 target 发送四个数据包:
ping -c 4 target
你应该会看到输出确认发送了四个数据包并收到了四个数据包,这表明连接稳定。IP 地址可能不同,但结果应显示 0% 的丢包率。
PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms
--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.067/0.077/0.105/0.016 ms
在确认连接后,你就可以继续扫描目标了。
使用 Nmap 扫描开放端口
在此步骤中,你将使用 nmap 扫描目标开放的端口并识别其上运行的服务。Nmap 是一个强大的网络探索和安全审计工具。此扫描将帮助你找到潜在的入口点,例如 Web 服务器。
我们将对端口 80(HTTP 流量的标准端口)运行定向扫描。我们还将使用脚本来收集有关服务的更多信息。
在你的终端中执行以下 nmap 命令:
nmap -sV -p 80 --script http-enum target
让我们分解一下这个命令:
-sV: 启用版本检测,它会尝试确定端口上运行的服务的版本。-p 80: 指定我们只想扫描端口 80。--script http-enum: 运行一个脚本,该脚本会枚举 Web 服务器上的目录和文件。target: 我们目标机器的主机名。
输出将与此类似:
Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-18 09:40 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00018s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((Unix))
|_http-server-header: Apache/2.4.41 (Unix)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.32 seconds
扫描结果确认端口 80/tcp 是开放的,并且运行着 Apache httpd 2.4.41。此 Web 服务器托管着我们可以在下一步访问的文件。
通过 HTTP 连接目标
在此步骤中,你将使用 curl 与 Web 服务器进行交互以访问文件。curl 是一个使用 URL 进行数据传输的命令行工具。
首先,让我们向 Web 服务器的主页发出一个标准请求,看看它是什么样子。
curl http://target
服务器应该会响应默认的 Apache 页面内容。
<html>
<body>
<h1>It works!</h1>
</body>
</html>
现在,让我们访问放置在 Web 服务器根目录下的 flag 文件。虽然在此设置中该文件可以直接访问,但让我们演示一下你通常如何访问它:
curl http://target/flag.txt
此命令将直接从 Web 服务器的文档根目录检索 flag 文件。
探索目标系统并定位 Flag
在最后一步中,你将检索并查看 flag。之前 curl 命令的输出应该已直接在你的终端中显示了 flag。
命令的预期输出是 flag 文件的内容:
labex{p4th_tr4v3rs4l_w1zardry}
如果输出内容较长,或者你想将其保存以备后用,可以将 curl 命令的输出重定向到一个文件。在处理较大的文件时,这是一种常见的做法。
再次运行该命令,但这次将结果保存到名为 flag.txt 的文件中:
curl http://target/flag.txt > flag.txt
现在,你可以使用 cat 命令查看下载文件的内容:
cat flag.txt
终端将显示 flag:
labex{p4th_tr4v3rs4l_w1zardry}
恭喜!你已成功识别了一个 Web 服务器,访问了 flag 文件,并捕获了 flag。复制 flag 值以完成此实验。
总结
在此实验中,你成功完成了一项基础的 Web 侦察练习。你学习并实践了以下技能:
- **侦察 (Reconnaissance)**:你使用
ping来验证目标是否在线且可访问。 - **枚举 (Enumeration)**:你使用
nmap配合版本扫描 (-sV) 和脚本 (--script http-enum) 来识别开放的 HTTP 端口以及 Apache Web 服务器的具体版本。 - **文件访问 (File Access)**:你使用
curl来访问 Web 服务器上的文件。 - **Flag 检索 (Flag Retrieval)**:你成功从 Web 服务器检索到了 flag 文件。
本次练习展示了基础的 Web 侦察技术,这些技术对于理解 Web 服务器的工作原理以及如何以编程方式与之交互至关重要。这些技能对于 Web 开发、系统管理和安全测试都是必不可少的。



