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

通关。

相关推荐
崖山数据库系统YashanDB24 分钟前
YashanDB json语法
数据库
陈三一27 分钟前
关于多数据源下Spring声明式事务管理失效问题的分析与解决
数据库·spring
go_to_hacker41 分钟前
AI进行全自动渗透
网络·web安全·网络安全·渗透测试·代码审计
我有医保我先冲1 小时前
SQL复杂查询与性能优化全攻略
数据库·sql·性能优化
烧瓶里的西瓜皮1 小时前
Go语言从零构建SQL数据库引擎(2)
数据库·sql·golang
SelectDB1 小时前
拉卡拉 x Apache Doris:统一金融场景 OLAP 引擎,查询提速 15 倍,资源直降 52%
大数据·数据库·数据分析
爱的叹息1 小时前
华为高斯(GaussDB) 集中式数据库 的开发技术手册,涵盖核心功能、开发流程、优化技巧及常见问题解决方案
数据库·gaussdb
背太阳的牧羊人2 小时前
使用 PyMuPDF(fitz)库打开 PDF 文件,并且是从内存中的字节流(BytesIO)读取 PDF 内容
数据库·pdf·文件处理·pymupdf·fitz
virelin_Y.lin2 小时前
系统与网络安全------Windows系统安全(4)
windows·web安全·系统安全·账号安全
@淡 定3 小时前
MySQL MVCC 机制解析
数据库·mysql