python工具:mongdb未授权访问漏洞扫描器
摘要:本文介绍了MongoDB未授权访问漏洞的扫描方法。首先通过Docker搭建测试环境,使用MongoDB默认端口27017。扫描器实现原理包括端口探测和连接测试,采用Python编写,利用socket模块扫描端口,通过pymongo的MongoClient尝试连接。若成功获取数据库列表则判定存在漏洞。代码实现了端口扫描和漏洞验证功能,最后以本地地址127.0.0.1进行测试验证。该扫描器可有效
·
前言
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")

更多推荐
所有评论(0)