lunes, 24 de agosto de 2015

Jugando con un Web Service, WS-Security y OWASP ZAP scripting

Hace algunas semanas y durante el proceso de análisis de la seguridad de un Web Service solo quedaba probar si este era vulnerable a un ataque de inyección SQL y, como no podía ser de otra forma, lo mejor era "tirarle a dar" con sqlmap. El problema era que al ejecutarlo devolvía un error:

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault xmlns:wsse="...">
<faultcode>wsse:InvalidSecurity</faultcode>
<faultstring>
Nonce value : jO3csXbBeVKftuqx17niRQ==, already seen before for user name : username.
Possibly this could be a replay attack.
</faultstring>
<detail />
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Lo que sigue es una descripción del proceso para llegar hasta el error y superar la restricción que lo provoca, empezando por la configuración de soapUI para generar peticiones válidas, pasando por el desarrollo de un script para conseguir reenviarlas mediante OWASP ZAP proxy y finalizando con la ejecución correcta de sqlmap consiguiendo explotar un SQL injection sobre un Web Service totalmente funcional, sencillo, pero funcional, y del que incluyo el código fuente.

Leer más...