如何查看Docker中mongodb的内容?
1 背景
最近在尝试做 starCTF 中的 oh-my-bet,需要使用 CRLF 来控制 FTP 向 mongodb 中发送数据包来修改 mongodb 中的内容。需要通过查看 mongodb 中的内容来确定是否修改成功。
Docker-compose 文件中的配置如下:
使用命令 docker-compose up -d 启动 Web 服务之后 我们可以看见 docker 中的 mongo 并没有和本地的端口进行绑定,所以不能直接使用 localhost 进行连接。
使用 ifconfig 命令可以看到 mongo 启动的主机和宿主机位于同一个局域网。 我猜测可以直接使用局域网的 IP 和端口进行连接
2 kali 安装 mongodb
添加公钥
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
创建列表文件
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
重新加载包数据库
sudo apt-get update
安装 mongodb
sudo apt-get install -y mongodb-org
安装 mongodb。自定义版本
sudo apt-get install -y mongodb-org=4.2.3 mongodb-org-server=4.2.3 mongodb-org-shell=4.2.3 mongodb-org-mongos=4.2.3 mongodb-org-tools=4.2.3
3 连接mongo并查看数据
连接 mongodb
mongo --host 172.20.0.5 --port 27017
查看数据
-- 列出数据库 show dbs; -- 使用 admin use admin; -- 列出集合(表) show tables; -- 查询集合 sessions 的所有内容 dbs.sessions.find().pretty()