FavoriteLoading
0

Struts 2 漏洞利用

Struts 2 漏洞利用?

一、? Struts 2 是什么

 

1. Struts2是一個基于MVC設計模式的Web應用框架,它本質上相當于一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數據交互。Struts 2Struts的下一代產品,是在 struts 1WebWork的技術基礎上進行了合并的全新的Struts 2框架。其全新的Struts 2體系結構Struts 1的體系結構差別巨大。Struts 2WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品。雖然從Struts 1Struts 2有著太大的變化,但是相對于WebWorkStruts 2的變化很小。

 

 

2.FilterDispatcher是整個Struts2的調度中心。也就是MVC中的C(控制中心),依據ActionMapper的結果來決定是否處理請求,假設ActionMapper指出該URL應該被Struts2處理。那么它將會運行Action處理,并停止過濾器鏈上還沒有運行的過濾器。

 

3.ActionMapper?會推斷這個請求是否應該被Struts2處理,假設須要Struts2處理。ActionMapper會返回一個對象來描寫敘述請求相應的ActionInvocation的信息。

 

4.ActionProxy。它會創建一個ActionInvocation實例,位于Actionxwork之間,使得我們在將來有機會引入很多其它的實現方式。比方通過WebService來實現等。

 

5.ConfigurationManagerxwork配置的管理中心,能夠把它看做struts.xml這個配置文件在內存中的相應。

 

6.struts.xml,是開發人員必須光顧的地方。是Stuts2的應用配置文件,負責諸如URLAction之間映射關系的配置、以及運行后頁面跳轉的Result配置等。

 

7.ActionInvocation:真正調用并運行Action,它擁有一個Action實例和這個Action所依賴的攔截器實例。ActionInvocation會依照指定的順序去運行這些攔截器、Action以及相應的Result

 

Interceptor(攔截器):是Struts2的基石。類似于JavaWebFilter,攔截器是一些無狀態的類。攔截器能夠自己主動攔截Action,它們給開發人員提供了在Action運行之前或Result運行之后來運行一些功能代碼的機會。

 

8.Action:用來處理請求,封裝數據。

 

?

 

二、? Struts漏洞匯總

 

S2-001 - 遠程代碼利用表單驗證錯誤

 

S2-002 - <surl><sa>標簽之間的跨站點腳本(XSS)漏洞

 

S2-003 - XWork ParameterInterceptors bypass允許執行OGNL語句

 

S2-004 - 提供靜態內容時的目錄遍歷漏洞

 

S2-005 - XWork ParameterInterceptors bypass允許遠程命令執行

 

S2-006 - XWork中的多個跨站腳本(XSS)生成的錯誤頁面

 

S2-007 - 當有轉換錯誤時,用戶輸入被評估為OGNL表達式

 

S2-008 - Struts2中的多個關鍵漏洞

 

S2-009 - ParameterInterceptor漏洞允許遠程命令執行

 

S2-010 - 當使用Struts 2令牌機制進行CSRF保護時,可能會通過濫用已知的會話屬性來繞過令牌檢查

 

S2-011 - 長請求參數名稱可能會顯著提升DOS攻擊的有效性

 

S2-012 - 展示應用程序漏洞允許遠程命令執行

 

S2-013 - 存在于URLAnchor TagincludeParams屬性中的漏洞允許遠程執行命令

 

S2-014 - 通過強制將參數包含在URL和錨定標簽中引入的漏洞允許遠程命令執行,會話訪問和操作以及XSS攻擊

 

S2-015 - 由通配符匹配機制引入的漏洞或OGNL Expression的雙重評估允許遠程命令執行。

 

S2-016 - 通過操作前綴為“action”/“redirect”/“redirectAction的參數引入的漏洞允許遠程命令執行

 

S2-017 - 通過操作前綴“redirect”/“redirectAction的參數引入的漏洞允許打開重定向

 

S2-018 - Apache Struts2中的訪問控制漏洞破壞

 

S2-019 - 默認情況下禁用動態方法調用

 

S2-020 - Commons FileUpload升級到版本1.3.1(避免DoS攻擊),并添加'class'以排除ParametersInterceptor中的參數(避免使用ClassLoader操作)
S2-021 -
改進ParametersInterceptorCookieInterceptor中的排除參數,以避免ClassLoader操作
S2-022 -
CookieInterceptor中擴展排除的參數,以避免對Struts的內部操作
S2-023 -
令牌的生成值可以預測
S2-024 -
錯誤的excludeParams會覆蓋DefaultExcludedPatternsChecker中定義的值
S2-025 -
調試模式和暴露的JSP文件中的跨站點腳本漏洞
S2-026 -
特殊頂部對象可用于訪問Struts的內部
S2-027 - TextParseUtil.translateVariables
不會過濾惡意OGNL表達式
S2-028 -
使用具有破壞的URLDecoder實現的JRE可能會導致基于Struts 2Web應用程序中的XSS漏洞。

 

S2-029 - 強制雙OGNL評估,當對標簽屬性中的原始用戶輸入進行評估時,可能導致遠程執行代碼。

 

S2-030 - I18NInterceptor中可能的XSS漏洞
S2-031 - XSLTResult
可用于解析任意樣式表

 

S2-032 - 啟用動態方法調用時,可以通過方法:前綴執行遠程執行代碼。

 

S2-033 - 使用REST插件時可以執行遠程執行代碼!啟動動態方法調用時運算符。

 

S2-034 - OGNL緩存中毒可能導致DoS漏洞
S2-035 -
動作名稱清理容易出錯
S2-036 -
強制雙OGNL評估,當對標簽屬性的原始用戶輸入進行評估時,可能導致遠程代碼執行(類似于S2-029

 

S2-037 - 使用REST插件時可以執行遠程執行代碼。

 

S2-038 - 可以繞過令牌驗證并執行CSRF攻擊
S2-039 - Getter
作為動作方法導致安全繞開
S2-040 -
使用現有的默認操作方法輸入驗證旁路。
S2-041 -
使用URLValidator時可能發生DoS攻擊

 

S2-042 - 公約插件中可能的路徑遍歷

 

S2-043 - 在生產中使用Config Browser插件
S2-044 -
使用URLValidator時可能的DoS攻擊

 

S2-045 - 基于Jakarta Multipart解析器執行文件上傳時可能的遠程執行代碼。

 

S2-046 - 基于Jakarta Multipart解析器執行文件上傳時可能的RCE(類似于S2-045

 

S2-047 - 使用URLValidator時可能發生DoS攻擊(類似于S2-044

 

S2-048 - Struts 2.3.x系列中的Struts 1插件示例中Struts Showcase應用程序中可能的RCE

 

S2-049 - 適用于Spring 安全措施的DoS攻擊

 

?

 

三、? 漏洞實驗

 

那么現在我還是那位逮嚇戶707,我隨便找一個環境試一試,那么我測試的是S2-045版本漏洞,Apache Struts 2被曝存在遠程命令執行漏洞,漏洞編號S2-045CVE編號CVE-2017-5638,在使用基于Jakarta插件的文件上傳功能時,有可能存在遠程命令執行,導致系統被黑客入侵。

 

惡意用戶可在上傳文件時通過修改HTTP請求頭中的Content-Type值來觸發該漏洞,進而執行系統命令。

 

 

1.? hai tu.. 我們不瞎扯了,繼續

 

操作機:Windows

 

目標機:Liunx

 

工具:K8 Struts2

 

這個漏洞是我上幾個星期發現的,由于權限過低無法進行提權,所以逮蝦戶..

 

 

2.? 然后需要用到驗證工具進行一個驗證,那么我這里有一款神器,可批量驗證多種Ste版本漏洞,那么我是驗證過了所以用不上這個工具,先跳過。

 

 

3.? 我們進行命令執行,whoami(圖1),www權限 可寫,不慌既然這樣了,我們就看下端口啥的(圖2)。

 

 

1

 

 

2

 

 

3

 

?

 

四、? 總結

 

那么總體過是可以用工具完成這個提權,其實了這個漏洞是挺難遇見,那么我給各位大鍋奉上,分析案例,利用案列,大鍋門,用膳啦!

關于Apache Struts2 S2-057遠程代碼執行漏洞分析

https://www.freebuf.com/vuls/182101.html

關于struts2漏洞(升級struts到最新版本)

https://blog.csdn.net/qq_34128089/article/details/80804882

struts2漏洞原理

https://www.cnblogs.com/KevinGeorge/p/8285337.html

逮蝦戶!!!!!!!

 

【聲明】:8090安全小組門戶(http://www.jvwkvg.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。