Il test fuzz produce risultati diversi rispetto ai test manuali?

1

Sto testando un'API e un parametro è vulnerabile all'iniezione SQL. Quando eseguo il fuzzer di OWASP ZAP su questo parametro, l'input "; o 1 = 1" risulta in un exploit di successo dell'iniezione SQL. Tuttavia, fornire manualmente questo input genera un codice di errore Oracle e l'exploit non ha esito positivo.

È quindi il caso che i fuzzer possano portare a exploit di successo per determinati input che il test manuale non può? Sto cercando di capire di più sui fuzzer e mi sembra che i fuzzer possano generare determinate condizioni che il test manuale non può generare. È corretto? Se sì, perché?

    
posta Earthling 10.05.2016 - 10:04
fonte

1 risposta

3

[I]t seems to me that fuzzers can generate certain conditions that manual testing can't generate.

No, non possono. Il server non sa se una richiesta HTTP proviene da un fuzzer come ZAP, un browser o qualsiasi altra cosa fintanto che inviano esattamente la stessa richiesta HTTP .

Le parole chiave qui sono esattamente le stesse . Dal momento che non sai cosa sta succedendo sul server, qualsiasi cosa potrebbe influire sul risultato. Guarda la richiesta HTTP che invii da ZAP (vedi demo ) e guarda la richiesta HTTP che invii manualmente. Se stai utilizzando un browser per il test manuale, usa gli strumenti di sviluppo per vederlo. Un approccio alternativo consiste nell'usare un programma come WireShark per ispezionare le richieste.

Quando hai le due richieste di fronte a te, confrontale. Dov'è la differenza? Questa è probabilmente la soluzione a questo mistero.

Una spiegazione alternativa potrebbe essere un comportamento casuale sul server, o un cambiamento di comportamento perché l'exploit è stato corretto. Test ripetuti potrebbero escludere quelli.

    
risposta data 10.05.2016 - 11:33
fonte

Leggi altre domande sui tag