Prima che un utente malintenzionato tenti di sfruttare eval (), come sospetterebbe che venga utilizzato da un'applicazione di destinazione?

1

Sto ponendo la domanda nel contesto di XSS RCE / RFI come risultato dello sfruttamento del eval() lato server. Si raccomanda spesso di evitare di usarlo, ma non mi è chiaro come si possa tentare di sfruttare qualcosa prima di capire se esiste o meno.

Un utente malintenzionato dovrebbe semplicemente inserire il codice in ogni stringa passata al server (non solo gli input dell'utente) e quindi verificare se l'app si interrompe in qualche modo?

    
posta Guybrush Threepwood 06.12.2015 - 20:47
fonte

1 risposta

1

L'utente malintenzionato non lo sa direttamente, ma esegue la scansione del sito Web con le sonde per rilevare le vulnerabilità RCE / RFI / LFI e immettere codice specifico nelle richieste e nei singoli parametri GET / POST.

Quando sanno che il risultato cambia in base all'input dell'utente fornito, testano singoli parametri con codici diversi per attacchi diversi.

eval() non è quasi mai necessario e non dovrebbe mai essere utilizzato per input che possono essere manipolati dagli autori di attacchi.

Questo è anche menzionato nella documentazione ufficiale di PHP, dove mettono in guardia sui rischi.

link

Caution

The eval() language construct is very dangerous because it allows execution of arbitrary PHP code. Its use thus is discouraged. If you have carefully verified that there is no other option than to use this construct, pay special attention not to pass any user provided data into it without properly validating it beforehand.

Come sviluppatore web non ho mai usato né necessario eval() .

Ma questo non è ancora correlato a JavaScript, anche se c'è eval() in JavaScript, ma per l'esecuzione solo del codice JavaScript.

    
risposta data 06.12.2015 - 22:02
fonte

Leggi altre domande sui tag