
Un problema in Data Illusion Survey Software Solutions NGSurvey v2.4.28 e versioni precedenti consente agli attaccanti di causare un Denial of Service (DoS) tramite un sondaggio appositamente predisposto.
ngSurvey versione 2.4.28 e precedenti è vulnerabile a una negazione del servizio se un sondaggio contiene un "Campo di testo", "Campo commento" o "Dettagli di contatto". Il problema esiste perché i campi non includono un limite di caratteri. Un attaccante può inviare un numero infinito di caratteri nei campi. Durante i test, l'applicazione docker è andata in crash durante l'invio della richiesta. La risposta del sondaggio è stata comunque inviata in altri casi. Quando l'amministratore di ngSurvey tenta di visualizzare i dati del rispondente o di effettuare un'esportazione, il browser web usa una quantità eccessiva di RAM o il server restituisce un errore interno (500). Rendendo i dati del sondaggio inaccessibili, almeno dall'interfaccia web. Anche se l'amministratore di ngSurvey imposta un limite di caratteri sulla risposta, lo sfruttamento è ancora possibile perché il controllo viene eseguito solo sul browser lato client.
Note: la domanda "slider" potrebbe essere vulnerabile anche con un grande intero invece di una stringa. Non è stato possibile confermarlo nel mio ambiente locale.
dospayload (qualsiasi altra cosa funzionerà, ma userò questa stringa per la dimostrazione).import requests, aggiungere il seguente codice dospayload= "A" * 123456789.burp0_json. Apparirà così "value" : "dospayload"."value" : dospayload.Il codice finale dovrebbe apparire così:

Non ho trovato un modo per distinguere i campi di testo o commento dagli altri tipi di risposta (scelta singola, elenco a discesa, ecc...). Credo che vengano identificati dall'applicazione tramite il loro ID. Se trovi un modo per creare uno script funzionante che prenda un URL come input ed esegua i passaggi di sfruttamento, sarò felice di linkarlo.