前言

mongdb未授权访问漏洞属于高危漏洞,编写适用于扫描mongdb未授权访问漏洞扫描器

环境搭建

拉取mongodb镜像:

 docker pull mongo

查看镜像的存在

 docker images

创建一个新的容器并运行一个命令

docker run -d -p 27017:27017 --name mongodb mongo

可以看到漏洞环境搭建成功

扫描器实现

mongodb未授权访问漏洞扫描器实现原理:
1.扫描端口,默认端口为:27017
2.如果端口存在,则尝试连接,能连上则证明存在该漏洞

python语言实验使用模块

1.用socket扫描端口
2.pymongo的MongoClient连接

import pymongo
import socket


def scanport(ip):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(0.3)
    try:
        s.connect((ip, 27017))
        print("端口开放!!!!")
        s.close()
        check_mongo_connect(ip)
    except Exception as e:
        print(e)
        pass


def check_mongo_connect(ip):
    print("正在尝试连接》》》》》")
    try:
        client = pymongo.MongoClient(ip, port=27017, socketTimeoutMS=3000)
        dbnames = client.list_database_names()
        if dbnames and bool(dbnames) and len(dbnames):
            print("存在mongodb未授权访问漏洞")
    except Exception as e:
        print(e)
        print("不存在漏洞")


scanport("127.0.0.1")

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐