题目

情报

数据库可能存在未知缺陷,可能存在匿名访问漏洞。
实战
TASK1

nmap -Pn -p- -sT -T4 --min-rate=1000 10.129.167.185
参数解释:
nmap
:依然是启动Nmap网络扫描工具。
-Pn
:此选项指示Nmap不对目标进行主机存活探测,直接进行端口扫描,假定目标主机是活动的。
-p-
:这个参数指定扫描所有TCP端口,从0到65535,进行全面的端口扫描。
-sT
:指定了扫描的类型为TCP Connect扫描。这是最基本的扫描方式,通过尝试建立完整的TCP连接来判断端口是否开放。虽然这是Nmap默认的扫描类型,但显式指定可以确保使用的正是这种直接的连接扫描方式。
-T4
:设置扫描的速度级别为4,这是一个相对快速的扫描速度设置,适用于大多数情况,但可能会引起一些IDS(入侵检测系统)的注意。
--min-rate=1000
:这个选项强制Nmap以至少每秒1000个包的速率发送数据包。这确保了扫描的进行速度,但也可能对网络造成较大压力,并增加被检测的风险。
10.129.167.185
:目标主机的IP地址。

2
TASK2

nmap -sV -p27017 10.129.167.185

MongoDB 3.6.8
TASK3

nosql
TASK4

kali没有自带这个工具,ParrotOS应该自带了。先安装。
apt install mongodb-clients

mongo
TASK5

先给出该工具的使用方法和参数。
使用MongoDB的命令行工具
mongo
连接数据库的基本步骤如下:
打开命令行终端:首先,在你的计算机上打开命令行终端(在Windows上是CMD或PowerShell,在macOS或Linux上是Terminal)。
连接本地数据库:如果要连接本地的MongoDB实例,默认情况下MongoDB运行在localhost的27017端口,你可以直接输入:
mongo
这将连接到本地MongoDB的默认数据库。
连接远程数据库:如果要连接远程MongoDB实例,你需要提供主机名/IP地址和端口号(默认是27017),以及认证信息(如果数据库启用了认证)。命令格式如下:
mongo hostname:port/databaseName -u username -p password
例如:
mongo 192.168.0.197:27017/myDatabase -u admin -p myPassword
如果你的数据库需要SSL连接,可以加上
--ssl
参数。认证机制 :对于MongoDB 3.0及以上版本,如果数据库启用了SCRAM认证机制,命令中的
-u
和-p
后直接跟随用户名和密码即可。对于更复杂的认证机制(如X.509或Kerberos),你可能需要使用额外的命令行参数或配置文件。进入数据库 :一旦成功连接,你可以通过
use yourDatabaseName
命令来切换到特定的数据库。执行命令:之后,你就可以在命令行中输入MongoDB的查询语句、插入数据、更新数据等操作了。
请注意,为了安全起见,直接在命令行中输入密码可能会被记录在历史记录中,尤其是在多用户系统中。因此,对于生产环境,推荐使用更安全的密码处理方式,如配置文件或交互式输入密码。
如果你使用的是图形界面工具(如MongoDB Compass、Robo 3T、Studio 3T等),则需要在工具的连接界面中输入相应的连接信息(主机名/IP、端口、数据库名、用户名和密码),然后点击连接按钮进行连接。图形界面工具通常提供更直观的界面来管理数据库和执行查询。
我们是连接远程数据库,还不知道用户名和密码,但是根据官方题目所披露的靶机缺陷,存在匿名访问漏洞,所以尝试直接连接。
mongo 10.129.167.185:27017
成功连接到远程数据库。
连接上后列出服务器上所有的数据库。
show dbs

show dbs
TASK6

我们使用一个数据库,然后列出库中的所有集合。
use admin

列出该库中所有的集合。
show collections

show collections
TASK7

翻译:用于以易于阅读的格式存储名为 flag 的集合中的所有文档内容的命令是什么?
db.flag.find().pretty()
这里附上mongon工具的使用。
MongoDB作为一个流行的NoSQL数据库,提供了多种工具来帮助用户管理和操作数据库。下面是一些基本的MongoDB工具使用说明,包括命令行工具和图形界面工具:
命令行工具
mongo
连接数据库:
- 打开命令行终端,输入
mongo
连接到本地MongoDB服务器上的默认数据库。- 若要连接到特定的数据库,可以在启动时指定:
mongo yourDatabaseName
。- 连接远程数据库:
mongo hostname:port/yourDatabaseName
,如果需要认证,可以加上-u username -p password
。基本操作:
- 查看所有数据库:
show dbs
。- 切换数据库:
use yourDatabaseName
。- 查看当前数据库集合:
show collections
。- 插入文档:
db.yourCollectionName.insert({key1: value1, key2: value2})
。- 查询文档:
db.yourCollectionName.find({query})
。- 更新文档:
db.yourCollectionName.update({query}, {update})
。- 删除文档:
db.yourCollectionName.remove({query})
。图形界面工具
MongoDB Compass
安装与启动:
- 从MongoDB官网下载并安装MongoDB Compass。
- 启动Compass后,界面会提示你输入连接信息。
连接数据库:
- 输入连接字符串(如
mongodb://localhost:27017
) 或者手动填写主机地址、端口、认证信息等。- 点击"连接"按钮以建立到MongoDB服务器的连接。
浏览与操作:
- 在Compass中,你可以直观地看到所有数据库和集合。
- 双击集合即可查看其文档,支持过滤、排序、高亮显示查询结果。
- 右侧栏允许你直接添加、编辑、删除文档,执行聚合查询等。
但是呢因为我对这个工具不是很熟,所以我还是使用navicat工具来查看flag吧。打开navicat16,连接数据库。这里不需要选择验证,因为存在匿名访问。

找到了。

1b6e6fb359e7c40241b6d431427ba6ea
通关。