struts2架構網站漏洞修復詳情與利用漏洞修復方案

網站安全發表於2018-12-03

struts2從開發出來到現在,很多網際網路企業,公司,平臺都在使用apache struts2系統來開發網站,以及應用系統,這幾年來因為使用較多,被攻擊者挖掘出來的struts2漏洞也越來越,從最一開始S2-001到現在的最新的s2-057漏洞,本文著重的給大家介紹一下struts2漏洞的利用詳情以及漏洞修復辦法。

010884cc7d1c411890fbcb8ee9b637fd.jpeg

先從1開始吧,S2-001影響的版本是Struts 2.0.0 – Struts 2.0.8版本,最早開始的版本漏洞太低階,當時的apache官方並沒有設定安全機制,導致在提交引數的時候緊接的執行了遞迴化查詢資料,導致可以插入惡意引數進行SQL隱碼攻擊。

s2-001漏洞的修復是將struts2的預設altsyntax功能進行關閉使用其他方式進行遞迴化的查詢,為什麼要關閉altsyntax功能是因為這個功能的標籤會自動的進行表示式的安全解析,關閉該功能就不會進行解析惡意引數了。

4815988ceb004c7b899bd642a56b44a4.png

s2-003漏洞是沒有過濾惡意引數,導致可以進行引數注入,影響的版本是Struts 2.0.0 – Struts 2.0.11.2版本,這次的版本新新增了一個功能就是安全攔截器,在引數傳輸過程中進行了關鍵詞安全檢測,一些非法注入的引數可以被過濾掉,但是apache官方並沒有過濾掉特殊編碼的方式進行提交,導致偽造編碼進行了sql注入攻擊,該漏洞的修復方案是關於編碼注入這裡進行詳細的過濾,並使用了正規表示式進行過濾非法的注入引數。

01254f78076448429e433489afee6055.png

s2-005漏洞產生的原因也跟上次的S2-003大致相同,也是在傳入引數值的時候帶進了惡意非法注入引數,導致可以使用ognl解析的方式來進行遠端程式碼的注入執行。關於該漏洞的修復是需要將apache系統引數值denyMethodExecution設定為關閉,然後將引數的攔截過濾系統進行了升級,更為嚴格的一個正規表示式過濾。

S2-007,S2-008,S2-009漏洞詳情是需要開啟decmode開發模式,在除錯開發程式碼過程中存在了注入的漏洞,甚至對於單引號並沒有進行安全限制,導致可以提交到後臺進行轉義,造成變數上的轉義注入,S2-009也是POST提交引數的注入攻擊,跟S2-005,S2-003的引數注入不同的是,沒有對其引數裡的安全值進行過濾,導致可以插入惡意引數進行SQL資料庫注入攻擊。 同樣的官方修復方案是對其過濾系統進行升級,嚴格執行正規表示式過濾一些可能導致注入的非法引數。

S2-012漏洞的產生原因是預設的apache 配置檔案struts.xml對預設的物件進行了重定向的一個功能設定,導致該重定向之解析表示式的過程中產生了遠端程式碼執行漏洞,關於該漏洞的修復官方進行了表示式解析的安全過濾。

S2-013漏洞利用是因為標籤屬性的原因,標籤設定引數裡竟然可以執行表示式,會讓URL值的引數進行傳遞表示式,漏洞的修復也很簡單對其標籤屬性進行了刪除。S2-015的漏洞是因為系統配置裡的任意萬用字元對映導致二次執行ognl表示式進行了遠端程式碼的執行漏洞,首先該系統沒有對網站URL進行白名單的安全檢測,當使用一些特殊符號歎號,百分號的時候可以直接提交上去。造成了惡意程式碼的遠端執行。漏洞的修補辦法是對DefaultActionMapper的類進行了安全檢測,過濾非法的注入程式碼。

如果您對網站的漏洞不懂的話,建議讓網站安全公司幫您修復網站漏洞,以及清除木馬後門,做好網站安全加固防止被入侵,國內的網站安全公司,像SINE安全公司、綠盟安全公司、啟明星辰、都是比較專業的。

以上是S2-001到S2-015漏洞的產生原因,以及漏洞修復的辦法介紹,因為文章字數限制,其他版本的struts2漏洞將會在下一篇文章中給大家講解。


相關文章