ntroduccion al XPath Injection by Reberto

XPath Injetions es una tecnica mas, usada para explotar una web vulnerable por medio de consultas xpath de parte de el atacante.
Primero para empezar a ver la introduccion necesitamos saber que es el Xpath aqui adjunto una definicion de la wikipedia xD:

"XPath (XML Path Language) es un lenguaje que permite construir expresiones que recorren y procesan un documento XML. La idea es parecida a las expresiones regulares para seleccionar partes de un texto sin atributos (plain text). XPath permite buscar y seleccionar teniendo en cuenta la estructura jerárquica del XML. XPath fue creado para su uso en el estándar XSLT, en el que se usa para seleccionar y examinar la estructura del documento de entrada de la transformación."

Bueno, ahora que ya sabemos que es el XPath vamos a ver que son las injections de este lenguaje...

Basicamente, viene de la mano con las SQL Injection ya que a medida que nosotros injectamos querys vamos a ir logrando sacar informacion de la database.
En documentos xml, la informacion se guarda en nodos y cuando se le consulta a traves de Xpath querys devuelve una respuesta.
Veamos un ejemplo asi queda mas claro: Digamos que tengo un archivo xml que se llama userddlr.xml y este esta mas o menos asi:



MurdeR
elite


boER!
soygay



Aca es donde vienen las injecciones

Supongamos que el XPath query para logearse es

String(//ddlr/user[username/text()=' " + txtusername.Text + " ' and password/text()=' "+ txtpassword.Text +" '])


Se supondria que una consulta valida entonces seria :

String(//ddlr/user[username/text()='MurdeR' and password/text()='elite'])


Y ahi estaria logeandose...

Pero que pasaria si nosotros le ponemos: ' or 1=1 or ''='

Veamos como quedaria:

String(//ddlr/user[username/text()='' or 1=1 or ''='' and password/text()='' or 1=1 or ''=''])


lop xD , estamos logeados y adentro.

Muchos diran que esto es igual que SQL Injection, pero hasta aca puede ser parecido, estudiado en profundidad tiene mucho mas utilidades.
Otras injecciones muestran partes o algunas veces todo el documento xml , asi mostrando mucha informacion valiosa.

Bueno espero que les haya gustado, me gusto hacer esta introduccion a las XPath injection ya que hay muy poco material en castellano de este tema tan interesante

Agradecimientos a Reberto de Dios de la RED

1 comentarios:

Eugenio dijo...

Excelente! me sirve para una charla que estoy preparando de seguridad orientada a aplicaciones Web, gracias!