Come si può utilizzare l'iniezione di oggetti unserialize () di PHP per bypassare l'autenticazione?

1

Quindi mi sono imbattuto in questa esclusione di autenticazione avviso e la correzione per esso stava semplicemente cambiando tutte le serializzazioni in codifica json.

Mi sto solo chiedendo in che modo è davvero sfruttabile? So che unserialize() può essere utilizzato per eseguire l'iniezione di oggetti. Ma come può essere usato per sfruttare questa vulnerabilità per bypassare l'autenticazione?

    
posta vincentleest 02.12.2014 - 22:47
fonte

1 risposta

5

unserialize consente la creazione di costrutti arbitrari di oggetti di qualsiasi classe con attributi arbitrari. Durante la deserializzazione, la durata di un oggetto e l'interazione con l'oggetto, diversi metodi, tra cui i metodi magici , possono essere chiamati usando questi attributi arbitrariamente definibili. Un utente malintenzionato potrebbe essere in grado di utilizzare le funzionalità fornite all'interno di questi metodi chiamati a proprio vantaggio.

Alla fine, la sfruttabilità di tale vulnerabilità dipende esclusivamente dalle classi disponibili e dalle loro funzionalità. Dai un'occhiata alla sezione Esempi osservati e Riferimenti di CWE -915: Modifica controllata in modo errato degli attributi dell'oggetto risolti dinamicamente per esempi e ulteriori informazioni.

E dal momento che la menzionata vulnerabilità in FreePBX è accessibile senza autenticazione (in realtà accade durante il processo di autenticazione), si potrebbe dire che ignora l'autenticazione.

    
risposta data 03.12.2014 - 03:37
fonte

Leggi altre domande sui tag