Pentesting a servicos web: WSDL

¿Que es WSDL?

“Web Services Description Language” es un lenguaje empleado en páginas web para informar a los clientes que el servidor dispone de una aplicación indicándole en que consiste el servicio que ofrece, mostrando cual es su función y como puede un cliente interactuar con ella. Esto lo hace a través de un archivo XML en donde se describe todo lo anterior.

WSDL esta pensado para facilitar la vida al administrador pudiendo añadir de manera amena nuevos servicios.

El archivo XML contine una serie de etiquetas en donde se refleja la información:

types –> define los tipos de datos utilizados en los mensajes

message –> define los métodos y parametros utilizados por el servicio

porttipe –> define las operaciones permitidas

binding –> define los protocolos de transporte permitidos

services–> define las direcciones y los puertos ha emplear

 Un ejemplo para entenderlo mejor: http://tinyurl.com/knpx95z

Más información : http://di002.edv.uniovi.es/~falvarez/WSDL.pdf

¿Y esto a un pentester que le importa :-p?

La información que ofrece este archivo puede llegar a ser un tesoro. Con él se obtiene información sobre appwebs, su ubicación, como trabaja, puntos de entrada a la aplicación, posibles ataques de sql injection, ataques a paneles de autentificacion, ataques al parámetro SessionId,…

A parte de lo anterior es posible realizar otra serie de ataques por medio de WSDL:

  • Denegaciones de servicio: mediante aplicaciones de análisis basados en DOM

  • XPath injections

  • parsing attack

  • (xee) xml external entity

  • Spoofing

Auditando:

Para encontrar ficheros WSDL basta con hacer un poco de hacking con buscadores:

filetype:”wsdl”

indexof:”/wsdl”

inurl:wsdl

inurl:”?wsdl”

inurl:”.wsdl”

inurl:”.aspx?wsdl”

inurl:”.ascx?wsdl”

inurl:”.asmx?wsdl”

inurl:”.ashx?wsdl”

inurl:”.jws?wsdl”

inurl:”.svc?wsdl”

filetype:wsdl wsdl

…..Y las que se te vayan ocurriendo

Una de las herramientas para este fin que más me ha sorprendido es WS-ATTACKER, actualizada hace unos meses, incorpora una cantidad de plugins muy interesantes.

Basta con indicar la ruta de un wsdl, configurando los parámetros, seleccionar los plugins que convegan  y comenzar a testear

Web del proyecto: WS-Attacker

menu1menu2menu3