天天看點

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

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

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

先從1開始吧,S2-001影響的版本是Struts 2.0.0 - Struts 2.0.8版本,最早開始的版本漏洞太低級,當時的apache官方并沒有設定安全機制,導緻在送出參數的時候緊接的執行了遞歸化查詢資料,導緻可以插入惡意參數進行SQL注入攻擊。

s2-001漏洞的修複是将struts2的預設altsyntax功能進行關閉使用其他方式進行遞歸化的查詢,為什麼要關閉altsyntax功能是因為這個功能的标簽會自動的進行表達式的安全解析,關閉該功能就不會進行解析惡意參數了。

s2-003漏洞是沒有過濾惡意參數,導緻可以進行參數注入,影響的版本是Struts 2.0.0 - Struts 2.0.11.2版本,這次的版本新添加了一個功能就是安全攔截器,在參數傳輸過程中進行了關鍵詞安全檢測,一些非法注入的參數可以被過濾掉,但是apache官方并沒有過濾掉特殊編碼的方式進行送出,導緻僞造編碼進行了sql注入攻擊,該漏洞的修複方案是關于編碼注入這裡進行詳細的過濾,并使用了正規表達式進行過濾非法的注入參數。

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

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漏洞将會在下一篇文章中給大家講解。