Iniezione di oggetti PHP in assenza di codice sorgente?

3

Conosco il processo di sfruttamento dell'iniezione di oggetti PHP. Ho letto da qualche parte che può essere sfruttato solo quando l'hacker conosce il codice interno. Veramente? Se ho trovato una vulnerabilità di PHP object injection e non conosco il codice sorgente dell'applicazione web, posso sfruttarla?

    
posta januu agrawal 26.12.2017 - 19:30
fonte

1 risposta

3

Sfruttare una vulnerabilità senza accesso al codice sorgente richiede più lavoro, una certa creatività e intuizione e forse un pizzico di buona fortuna. Ma è assolutamente possibile. Questo è vero per la maggior parte degli attacchi in generale, e in particolare per l'iniezione di oggetti PHP.

L'idea che sei al sicuro finché nessuno mette le mani sul tuo codice sorgente non è solo sbagliato, è pericoloso. Invece, progetta i tuoi programmi in modo che siano sicuri anche se il codice sorgente fosse reso pubblico.

Per capire come questa particolare vulnerabilità potrebbe essere sfruttata senza conoscere il codice sorgente, ti consiglio di dare un'occhiata a questi esempi da OWASP :

  • Nel primo esempio, una variabile GET contenente un percorso file viene passata attraverso unserialize , creando così una vulnerabilità di attraversamento del percorso. Ogni volta che un attaccante competente vede un percorso, lei cercherà il percorso trasversale per vedere cosa succede. Vedere il codice sorgente renderebbe più facile, ma non è strettamente necessario.
  • Nel secondo esempio, i dati da unserialize vengono passati a eval , rendendo possibile l'inserimento di codice. Il test per inserire il codice PHP in posti casuali è praticamente una procedura di test con penna nera. Certo, sarebbe più facile se tu potessi semplicemente tentare la valutazione, ma questo non significa che questa piccola gemma non sarebbe stata scoperta.
  • Il terzo esempio è una vulnerabilità SQLi creata dal metodo __tostring controllato dall'hacker. Questo sarebbe difficile da trovare senza leggere il codice sorgente. Ma le stringhe PHP serializzate sono facili da individuare e un utente malintenzionato attaccherà e vedrà cosa succede. Vuoi davvero scommettere sul fatto che nessuno colpirà l'oro solo per pura fortuna?
risposta data 26.12.2017 - 22:09
fonte

Leggi altre domande sui tag