¿Por qué está fallando este ataque de inyección XPATH, y qué sucede en el fondo del ataque?

3

Hola, estoy tratando de entender la inyección de XPATH, tengo un problema con loacl ctf y parece que no entiendo cómo funciona. Así que esta es la consulta:

555-555-555 = verdadero

Después de fuzzing parámetros obtengo:

  

Descripción: Se produjo una excepción no controlada durante la   Ejecución de la solicitud web actual. Por favor revise el seguimiento de la pila   para obtener más información sobre el error y dónde se originó en el   código.

        <br><br>

        <b> Exception Details: </b>System.Xml.XPath.XPathException:
     

'// acctprofile [acctid =' 555-555-555] 'test'] 'tiene un inválido   token.

Así que supongo que hay una inyección XPATH aquí. La función concat () funciona bien, pero doc () me da:

  

Descripción: Se produjo una excepción no controlada durante la   Ejecución de la solicitud web actual. Por favor revise el seguimiento de la pila   para obtener más información sobre el error y dónde se originó en el   código.

        Exception Details: System.Xml.XPath.XPathException: Namespace Manager or XsltContext needed. This query has a prefix,
     

variable, o función definida por el usuario.

Estoy tratando de usar doc () oob data exfiltration La aplicación bcos no genera ningún dato si la consulta está bien, así que oob fue mi primera idea. Cualquier sugerencia sería bienvenida. Para ser precisos, ¿cómo en mi situación actual puedo explotar más este error?

Gracias.

    
pregunta Daniel 14.10.2016 - 17:33
fuente

1 respuesta

1

Espero que esto ayude:

En primer lugar, si las consultas correctas no muestran nada, se trata de una inyección XPath ciega.

Segundo, el error del que has hablado:

  

Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

    Exception Details: System.Xml.XPath.XPathException: Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.

Puede requerir agregar el espacio de nombres antes de la consulta.

Esto:

  

// acctprofile [acctid = '555-555-555]' test ']

Debería ser más como esto:

  

// "espacio de nombres": acctprofile [acctid = '555-555-555]' prueba ']

Pero esto requiere que usted conozca el espacio de nombres o tenga alguna variable para insertar allí.

    
respondido por el KanekiDev 17.10.2016 - 16:33
fuente

Lea otras preguntas en las etiquetas