Hack The Box(黑客盒子)Mongod-mongoDB工具篇

题目


情报

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


实战

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连接数据库的基本步骤如下:

  1. 打开命令行终端:首先,在你的计算机上打开命令行终端(在Windows上是CMD或PowerShell,在macOS或Linux上是Terminal)。

  2. 连接本地数据库:如果要连接本地的MongoDB实例,默认情况下MongoDB运行在localhost的27017端口,你可以直接输入:

    复制代码
    mongo

    这将连接到本地MongoDB的默认数据库。

  3. 连接远程数据库:如果要连接远程MongoDB实例,你需要提供主机名/IP地址和端口号(默认是27017),以及认证信息(如果数据库启用了认证)。命令格式如下:

    复制代码
    mongo hostname:port/databaseName -u username -p password

    例如:

    复制代码
    mongo 192.168.0.197:27017/myDatabase -u admin -p myPassword

    如果你的数据库需要SSL连接,可以加上--ssl参数。

  4. 认证机制 :对于MongoDB 3.0及以上版本,如果数据库启用了SCRAM认证机制,命令中的-u-p后直接跟随用户名和密码即可。对于更复杂的认证机制(如X.509或Kerberos),你可能需要使用额外的命令行参数或配置文件。

  5. 进入数据库 :一旦成功连接,你可以通过use yourDatabaseName命令来切换到特定的数据库。

  6. 执行命令:之后,你就可以在命令行中输入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

  1. 连接数据库:

    • 打开命令行终端,输入 mongo 连接到本地MongoDB服务器上的默认数据库。
    • 若要连接到特定的数据库,可以在启动时指定:mongo yourDatabaseName
    • 连接远程数据库:mongo hostname:port/yourDatabaseName,如果需要认证,可以加上 -u username -p password
  2. 基本操作:

    • 查看所有数据库: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
  1. 安装与启动:

    • 从MongoDB官网下载并安装MongoDB Compass。
    • 启动Compass后,界面会提示你输入连接信息。
  2. 连接数据库:

    • 输入连接字符串(如 mongodb://localhost:27017) 或者手动填写主机地址、端口、认证信息等。
    • 点击"连接"按钮以建立到MongoDB服务器的连接。
  3. 浏览与操作:

    • 在Compass中,你可以直观地看到所有数据库和集合。
    • 双击集合即可查看其文档,支持过滤、排序、高亮显示查询结果。
    • 右侧栏允许你直接添加、编辑、删除文档,执行聚合查询等。

但是呢因为我对这个工具不是很熟,所以我还是使用navicat工具来查看flag吧。打开navicat16,连接数据库。这里不需要选择验证,因为存在匿名访问。

找到了。

复制代码
1b6e6fb359e7c40241b6d431427ba6ea

通关。

相关推荐
砚凝霜13 小时前
【软考信息安全】第一章 网络安全基础、管理与法律法规
安全·web安全·php
SkyWalking中文站13 小时前
BanyanDB 0.11.0:新特性与升级指南
数据库
商业看点解说14 小时前
企业需要为大模型应用设置安全护栏,推荐使用哪些生成式AI平台?
人工智能·安全
₍˄·͈༝·͈˄*₎◞ ̑̑码15 小时前
MyBatis操作数据库
数据库·mybatis
Johny_Zhao15 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
是隼人15 小时前
buuctf-pwn inndy_echo(32位fmt)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
菩提小狗16 小时前
每日安全情报报告 · 2026-09-06
网络安全·漏洞·cve·安全情报·每日安全
刃神太酷啦16 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
三84416 小时前
SSRF 打内网 Redis:gopher 原理与实操
redis·web安全·bootstrap·ssrf
丁丁点灯o17 小时前
Oracle中使用外键的场景及不适用外键的情况
数据库·oracle