漏洞介绍
Struts2在使用Freemarker模块引擎的时候,同时允许解析OGNL表达式。导致用户输入的数据本身不会被OGNL解析,但是由于被Freemarker解析一次后变成离开一个表达式,被OGNL解析第二次,导致任意命令执行漏洞。
影响版本
Struts 2.0.1 - Struts 2.3.33、Struts 2.5 - Struts 2.5.10
适用条件
当在Freemarker标签中使用表达式文本或强制表达式时,使用以下请求值可能会导致远程代码执行
漏洞复现
访问:ip:8080/hello.action。
写入poc