返回
顶部

前言

复现过程参考:Struts2-059 RCE (CVE-2019-0230)复现

首先我们确定引发漏洞的具体位置,根据apache官网的描述,未经过滤的OGNL表达式被强制二次解析,从而导致远程命令执行,比如

<s:url var="url" namespace="/employee" action="list"/><s:a id="%{skillName}" href="%{url}">List available Employees</s:a>

如果攻击者能够发送请求控制skillName的值,那么当<s>标签被渲染的时候,skillName中如果包含了未经过滤的OGNL表达式,则可能会导致命令执行

参考链接:

漏洞分析

还是用复现文章中的漏洞环境,既然漏洞出在标签渲染的部分,那么就一定需要获取标签属性的值,因此我们在getPayload方法处下断点

1608096100275

然后开始debug,burp发包触发断点