
Un problema en Data Illusion Survey Software Solutions NGSurvey v2.4.28 y anteriores permite a los atacantes causar una Denegación de Servicio (DoS) mediante una encuesta manipulada.
ngSurvey versión 2.4.28 y anteriores es vulnerable a la denegación de servicio si una encuesta contiene un "Campo de texto", "Campo de comentarios" o "Datos de contacto". El problema existe porque los campos no incluyen un límite de caracteres. Un atacante puede enviar un número infinito de caracteres en los campos. Durante las pruebas, la aplicación docker se bloqueó al enviar la solicitud. La respuesta de la encuesta se seguía enviando en otros casos. Cuando el administrador de ngSurvey intenta ver los datos del encuestado o realizar una exportación, el navegador web utiliza una cantidad excesiva de RAM o el servidor devuelve un error interno (500). Lo que hace que los datos de la encuesta sean inaccesibles, al menos desde la interfaz web. Incluso si el administrador de ngSurvey establece un límite de caracteres en la respuesta, el exploit sigue siendo posible porque la comprobación solo se realiza en el navegador del lado del cliente.
Notas: La pregunta "slider" también puede ser vulnerable con un entero grande en lugar de una cadena. No se pudo confirmar en mi entorno local.
dospayload (cualquier otra cosa funcionará, pero usaré esta cadena para la demostración).import requests, añade el siguiente código dospayload= "A" * 123456789.burp0_json. Se verá así "value" : "dospayload"."value" : dospayload.El código final debería verse así:

No encontré una manera de diferenciar los campos de texto o comentarios de otros tipos de respuestas (opción única, lista desplegable, etc...). Creo que son identificados por la aplicación con su ID. Si encuentras una manera de hacer un script funcional que tome una URL como entrada y realice los pasos de explotación, estaré encantado de referenciarlo.