XPATH injection
Únete al servidor de HackenProof Discord para comunicarte con hackers experimentados y cazadores de bugs!
Información de Hacking Involúcrate con contenido que explora la emoción y los desafíos del hacking
Noticias de Hacking en Tiempo Real Mantente al día con el mundo del hacking a través de noticias e información en tiempo real
Últimos Anuncios Mantente informado sobre los nuevos programas de recompensas por bugs y actualizaciones importantes de plataformas
Únete a nosotros en Discord y comienza a colaborar con los mejores hackers hoy!
Sintaxis Básica
Una técnica de ataque conocida como Inyección de XPATH se utiliza para aprovechar aplicaciones que forman consultas de XPath (Lenguaje de Ruta XML) basadas en la entrada del usuario para consultar o navegar documentos XML.
Nodos Descritos
Se utilizan expresiones para seleccionar varios nodos en un documento XML. Estas expresiones y sus descripciones se resumen a continuación:
nodonombre: Se seleccionan todos los nodos con el nombre "nodonombre".
/: La selección se realiza desde el nodo raíz.
//: Se seleccionan nodos que coinciden con la selección desde el nodo actual, independientemente de su ubicación en el documento.
.: Se selecciona el nodo actual.
..: Se selecciona el padre del nodo actual.
@: Se seleccionan atributos.
Ejemplos de XPATH
Ejemplos de expresiones de ruta y sus resultados incluyen:
librería: Se seleccionan todos los nodos llamados "librería".
/librería: Se selecciona el elemento raíz librería. Se nota que una ruta absoluta a un elemento se representa con una ruta que comienza con una barra (/).
librería/libro: Se seleccionan todos los elementos libro que son hijos de librería.
//libro: Se seleccionan todos los elementos libro en el documento, independientemente de su ubicación.
librería//libro: Se seleccionan todos los elementos libro que son descendientes del elemento librería, sin importar su posición bajo el elemento librería.
//@lang: Se seleccionan todos los atributos llamados lang.
Utilización de Predicados
Los predicados se utilizan para refinar selecciones:
/librería/libro[1]: Se selecciona el primer elemento libro hijo del elemento librería. Una solución alternativa para las versiones de IE 5 a 9, que indexan el primer nodo como [0], es establecer el SelectionLanguage en XPath a través de JavaScript.
/librería/libro[last()]: Se selecciona el último elemento libro hijo del elemento librería.
/librería/libro[last()-1]: Se selecciona el penúltimo elemento libro hijo del elemento librería.
/librería/libro[position()<3]: Se seleccionan los dos primeros elementos libro hijos del elemento librería.
//título[@lang]: Se seleccionan todos los elementos título con un atributo lang.
//título[@lang='en']: Se seleccionan todos los elementos título con un valor de atributo "lang" de "en".
/librería/libro[precio>35.00]: Se seleccionan todos los elementos libro de la librería con un precio mayor a 35.00.
/librería/libro[precio>35.00]/título: Se seleccionan todos los elementos título de los elementos libro de la librería con un precio mayor a 35.00.
Manejo de Nodos Desconocidos
Se emplean comodines para hacer coincidir nodos desconocidos:
*: Hace coincidir cualquier nodo de elemento.
@*: Hace coincidir cualquier nodo de atributo.
nodo(): Hace coincidir cualquier nodo de cualquier tipo.
Otros ejemplos incluyen:
/librería/*: Selecciona todos los nodos de elementos hijos del elemento librería.
//*: Selecciona todos los elementos en el documento.
//título[@*]: Selecciona todos los elementos título con al menos un atributo de cualquier tipo.
Ejemplo
Acceder a la información
Identificar y robar el esquema
Suplantación de autenticación
Ejemplo de consultas:
Bypass de OR en usuario y contraseña (mismo valor en ambos)
Abusando de la inyección de nulos
Doble OR en Nombre de usuario o en contraseña (es válido con solo 1 campo vulnerable)
IMPORTANTE: Nota que la "y" es la primera operación realizada.
Extracción de cadenas
La salida contiene cadenas y el usuario puede manipular los valores para buscar:
Explotación a ciegas
Obtener la longitud de un valor y extraerlo mediante comparaciones:
Ejemplo en Python
Leer archivo
Explotación OOB
Herramienta automática
Referencias
Únete al servidor de HackenProof Discord para comunicarte con hackers experimentados y cazadores de bugs!
Perspectivas de Hacking Involúcrate con contenido que explora la emoción y los desafíos del hacking
Noticias de Hacking en Tiempo Real Mantente al día con el mundo del hacking a través de noticias e información en tiempo real
Últimos Anuncios Mantente informado sobre los nuevos programas de recompensas por bugs y actualizaciones importantes de plataformas
Únete a nosotros en Discord ¡y comienza a colaborar con los mejores hackers hoy!
Última actualización