我使用的是Apache Web服务器2.0和Tomcat服务器7.0。
Web服务器将请求定向到Tomcat服务器。
web和tomcat应用服务器都可以直接访问。
当表达式语言${9-4}作为请求参数发送到web服务器URL时,将计算表达式并返回结果5。
如果将相同的请求发送到Tomcat服务器,则结果为${9-4}而不进行评估。
例如:
Web服务器
请求:http://apache-web-server:port/context?test=${9-4}
在jsp中打印测试时的响应:5
Tomcat服务器
请求:http://tomcat-server:port/context?test=${9-4}
在jsp中打印测试时的响应:${9-4}
Apache Web服务器在这里计算表达式语言吗?
如何停止服务器计算表达式语言?
另外,我在Tomcat应用服务器中使用Struts2。
如果Apache Web服务器能够计算表达式,那么如何在Apache Web服务器中关闭OGNL表达式计算?
发布于 2015-09-02 15:43:56
看起来JSP表达式语言正在解析您的参数。这实际上是你的应用程序存在的一个远程代码执行漏洞。
看看这篇文章:https://www.owasp.org/index.php/Expression_Language_Injection http://danamodio.com/appsec/research/spring-remote-code-with-expression-language-injection/
发布于 2015-09-18 17:37:09
为什么要将这些作为url中的值传递。相反,您可以在变量中传递这些值,并从jsp或控制器中分配access变量的值,然后您可以在那里编写逻辑。
https://stackoverflow.com/questions/31971404
复制相似问题