java - luna - instalar eclipse oxygen
Lenguaje de expresión evaluado en el servidor web Apache (2)
Tengo un servidor web Apache 2.0 y un servidor Tomcat 7.0.
El servidor web dirige la solicitud al servidor Tomcat.
Se puede acceder directamente a los servidores de aplicaciones web y tomcat.
Cuando se envía el lenguaje de expresión $ {9-4} como un parámetro de solicitud al URL del servidor web, la expresión se evalúa y devuelve un resultado de 5.
Si se envía la misma solicitud al servidor de Tomcat, el resultado es $ {9-4} sin evaluación.
P.ej:
Servidor web
Solicitud: http: // apache-web-server: puerto / contexto? Test = $ {9-4}
Respuesta al imprimir la prueba en jsp: 5
Servidor Tomcat
Solicitud: http: // tomcat-server: port / context? Test = $ {9-4}
Respuesta al imprimir la prueba en jsp: $ {9-4}
¿El servidor web Apache está evaluando el lenguaje de expresión aquí?
¿Cómo puedo evitar que el servidor evalúe el lenguaje de expresiones?
También estoy usando Struts 2 en el servidor de aplicaciones Tomcat.
Si el servidor web Apache tiene la capacidad de evaluar expresiones, ¿cómo desactivo la evaluación de expresiones OGNL en el servidor web Apache?
Parece que el lenguaje de expresiones JSP está analizando su parámetro. Es realmente una vulnerabilidad de ejecución remota de código que tiene tu aplicación.
Mire estos artículos: https://www.owasp.org/index.php/Expression_Language_Injection http://danamodio.com/appsec/research/spring-remote-code-with-expression-language-injection/
Por qué pasa estos son los valores en la url. En lugar de eso, puede pasar estos valores en las variables y asignar acceso a los valores de las variables desde jsp o controlador, entonces puede escribir la lógica allí.