La funzione di decompressione di Perl ha vulnerabilità di formato?

1

Sto usando Perl per la prima volta per il software di produzione e ho alcuni problemi di fiducia con esso. Quando uso la funzione unpack() , è sicuro utilizzare l'input dell'utente nella stringa TEMPLATE ? Sto usando un TEMPLATE come "Z$user_controlled" per leggere un valore stringa su una variabile. La costante $user_controlled è definita sorgente esterna che l'utente può controllare. Sto assumendo un rischio? Un utente malintenzionato può fare qualcosa di male se cambia la stringa TEMPLATE in qualcosa di strano?

EDIT: ha modificato il testo per essere più generico.

    
posta Juha Kivekäs 10.07.2015 - 08:12
fonte

1 risposta

1

Il parametro del modello "p" interpreterà la sua parte della stringa di input come un indirizzo di memoria (disponibile per il processo dell'interprete Perl) e copierà tutti i caratteri da quell'indirizzo, fino al successivo carattere null, nella stringa restituita. Questo potrebbe anche causare una violazione di segfault / accesso se la memoria a questo indirizzo non è leggibile.

Il parametro del modello "P" è simile, ma la lunghezza della stringa copiata è fissa e fornita nel modello.

Questi parametri esistono per consentire l'accesso ai dati al di fuori della stringa di input, quindi dovresti probabilmente verificare come potrebbero essere abusati sulla tua piattaforma.

    
risposta data 13.07.2015 - 21:04
fonte

Leggi altre domande sui tag