[WW-2160 支柱]Is <s:property value=%{'xyz'}>



这是关于OGNL评估中的安全漏洞是struts的。
有人能举例说明这是如何被利用的吗?

假设我有一个请求参数,服务器将其返回给客户端:
http://test/xyz=test

我有一个名为xyz的变量,在action类中有getter和setter,在JSP中有:

<s:property value="%{xyz}" />

如果有人使用URL http://test/xyz=@System@exit(0)会发生什么?

首先,您链接到的票在2007年是固定的。我不知道当时到底是什么问题,但它似乎已经无关紧要了。

如果有人使用URL http://test/xyz=@System@exit(0)会发生什么?

JSP页面将输出字符串字面值@System@exit(0)

OGNL表达式在Struts2标记内部处理。在本例中,字符串字面值%{xyz}被传递给PropertyTagsetValue(String)方法。在该标记内部,该字符串根据值堆栈进行计算,以产生@System@exit(0)的结果值。然后输出该值。

最新更新