java - 在 Apache Web 服务器中评估的表达式语言

标签 java apache jsp tomcat struts2

我有一个 Apache Web 服务器 2.0 和 Tomcat 服务器 7.0。

Web 服务器将请求定向到 Tomcat 服务器。

Web 和 tomcat 应用服务器都可以直接访问。

当表达式语言 ${9-4} 作为请求参数发送到 Web 服务器 URL 时,表达式将被计算并返回结果 5。

如果将相同的请求发送到 Tomcat 服务器,则结果为 ${9-4},无需评估。

例如:

网络服务器

请求: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 应用程序服务器中使用 Struts 2。

如果 Apache Web 服务器具有计算表达式的能力,那么如何在 Apache Web 服务器中关闭 OGNL 表达式计算?

最佳答案

看起来 JSP 表达式语言正在解析您的参数。它实际上是您的应用程序存在的远程代码执行漏洞。

看看这篇文章: https://www.owasp.org/index.php/Expression_Language_Injection http://danamodio.com/appsec/research/spring-remote-code-with-expression-language-injection/

关于java - 在 Apache Web 服务器中评估的表达式语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31971404/

相关文章:

java - BufferedReader 不显示文件中的正常字符

php - 从 PHP 网站进行 Git checkout ?

javascript - 如何使用 JavaScript 检测 JSP 是否加载到 PORTLET 或浏览器中?

php - 打开 URL 时页面继续加载

PHP:非阻塞shell_exec WITH命令输出

java - catalina.out Tomcat9 中的奇怪输出

java - Java中的系统日期格式

java - 在单个数据结构中维护来自两种不同类型值的 java 映射

java - Full GC后socket实例还在继续增长吗?

java - 如何在tomcat docker容器中部署多个war?