Cosa sono l'inclusione di file e l'esecuzione di codice arbitrario? - MalCare

Pubblicato: 2023-04-13

Inclusione di file ed esecuzione di codice arbitrario: all'inizio di questo mese, un sito Web di biglietti aerei costruito su WordPress è stato violato lasciando esposti i dati personali di centinaia di migliaia di visitatori. In un post precedente sul perché gli hacker hackerano , abbiamo discusso di tutti i motivi per cui gli hacker hackerano, incluso il furto di dati, l'invio di e-mail di spam, potrebbero persino utilizzare tecniche SEO black hat per classificare i propri prodotti (lettura consigliata - hack farmaceutico) , ecc.

Imparare come gli hacker hackerano un sito Web è la chiave per prevenirli, motivo per cui abbiamo elencato gli attacchi di hacking più comuni effettuati sui siti Web WordPress in un precedente articolo.

Quando parliamo di attacchi di hacking comuni, è molto probabile che tu pensi agli attacchi di forza bruta. Ma sapevi che l'inclusione di file e l'esecuzione di codice arbitrario è anche uno degli attacchi di hacking più comuni effettuati sui siti Web di WordPress. In questo post, approfondiremo questi attacchi con l'obiettivo di comprenderli in dettaglio.

Per capire come funzionano questi attacchi, la prima cosa che devi sapere è che si tratta di file PHP.Ti starai chiedendo perché? È perché entrambi gli attacchi File Inclusion e Arbitrary Code Execution comportano l'utilizzo di file PHP.

Ma cos'è un file PHP? Pensa a un mobile da cucina. All'interno dell'armadietto ci sono una serie di oggetti come zucchero, sale, spezie, utensili, ecc. Ognuno di questi oggetti ha uno scopo da servire in cucina.Un file PHP è un cabinet ei codici all'interno dei file sono gli elementi che consentono l'esecuzione di determinate funzioni desiderate dall'hacker.Questo è il motivo per cui gli hacker preferiscono caricare un file PHP rispetto a qualsiasi altro file come file JPEG o PDF. I file JPEG e PDF non sono eseguibili, ovvero gli hacker non possono utilizzare questi file per eseguire alcuna funzione. Si possono solo leggere (cioè visualizzare). Non possono essere utilizzati per apportare modifiche a un sito compromesso.

Un hacker che ha caricato un file PHP sul server del tuo sito web può usarlo per fare qualsiasi cosa sul tuo sito web. Ed è per questo che i file PHP vengono utilizzati per eseguire attacchi di inclusione di file e esecuzione di codice arbitrario.

Che cos'è un attacco di inclusione di file?

Il modo migliore per comprendere un attacco a un sito Web complesso come questo è esemplificare uno scenario reale. Supponiamo che tu gestisca un sito Web per il tuo istituto e che il sito si chiami college.com. Consenti ad alcuni studenti di accedere al sito in modo che possano pubblicare foto scattate durante un recente evento universitario. Qualcuno abusa dell'accesso che hai fornito e carica un file PHP dannoso (denominato hack.php) nel sito web. L'obiettivo è ottenere il controllo dei siti web del college. Quando lo studente carica il file PHP dannoso, per impostazione predefinita viene archiviato nella cartella Upload.Chiunque conosca la struttura di base di WordPresssa dove va a finire un file caricato.

Inclusione di file ed esecuzione di codice arbitrario
Qualsiasi caricamento che non sia un tema o un plug-in viene archiviato nella cartella Carica. Chiunque conosca la struttura di WordPress sa dove si trova la cartella Upload. Per chi non lo sapesse, ecco dove si trova la cartella Upload. Apri il File Manager dal cPanel del Web Hosting, quindi vai su Public_html > wp-content > caricamenti.

Il file agisce come una porta che consente all'hacker di interagire con il file da remoto. Nota che l'hacker non ha ancora il controllo sul sito, ha solo una finestra per la comunicazione. Per facilitare la comprensione, immagina che la persona A voglia andare in un paese dove non gli è permesso. Quindi invia un agente, la persona B. La persona A è l'hacker, il paese rappresenta il sito web del college e la persona B è il file hack.php.

File PHP caricati nel sito web del college —-> Il file è memorizzato nel server del sito web

La persona B è addestrata solo in poche cose e può fare solo così tanto. Quindi la persona A deve istruirlo su cosa fare dopo. Allo stesso modo, il file PHP crea una finestra di comunicazione e quindi attende altri comandi dall'hacker.

Supponiamo che hack.php sia creato in modo da consentire il caricamento di più file nel sito web. L'hacker crea un file (chiamato control.php) che caricherà utilizzando hack.php che è già presente nel server del sito web. Il nuovo file - control.php consentirà all'hacker di avere pieno accesso al sito web. Usa la finestra fornita dal file hack.php per caricare il file control.php nel sito.Questo processo di caricamento del file control.php utilizzando un file (hack.php) già presente sul server del sito web è chiamato Local File Inclusion .

Un ottimo esempio di esecuzione di file locali è la vulnerabilità osservata sul plug-in WordPress Easy Forms per MailChimp (v 6.0.5.5) . Utilizzando il plug-in MailChimp, i proprietari di siti Web possono aggiungere diversi tipi di moduli al proprio sito WordPress. Una vulnerabilità ha consentito agli hacker di caricare un file PHP in un server del sito Web utilizzando il modulo MailChimp.Una volta che il file è stato archiviato sul server del sito Web, gli hacker sono stati in grado di comunicare con loro ed eseguire codici che consentiranno loro di controllare il server o danneggiare il sito in numerosi modi.

Ecco uno scenario: il sito Web del college ha un firewall installato e pertanto l'hacker non può caricare control.php. Sebbene non possa caricare un altro file separato, può "includere" un file. Significa che può inserire un file all'interno del file hack.php che è già presente sul server del sito web del college. Se l'hacker fosse in grado di caricare il file control.php, il server del sito web leggerebbe il file ed eseguirebbe il codice all'interno che consentirà all'hacker di fare tutto ciò che vuole. Ma poiché non può caricare il file, dovrà trovare altri modi per far leggere al server il file control.php. Un percorso creato da un hacker è disponibile online e il server del sito web del college dovrebbe essere in grado di leggerlo. Pertanto l'hacker crea un percorso e li rende disponibili online in modo che il server del sito Web del college sia in grado di leggerlo. Il server avvia quindi l'esecuzione del codice acquisito dal percorso e poiché il codice è scritto in modo da consentire all'hacker il pieno controllo del sito, l'hack ora controlla il sito Web del college. Questo processo per fare in modo che il server legga un file remoto è chiamato Remote File Inclusion.

Inclusione di file ed esecuzione di codice arbitrario
Un esempio che dimostra come è avvenuto l'attacco TimThumb

Il caso di vulnerabilità di TimThumb è un popolare esempio di inclusione di file remoti. TimThumb era un plug-in di WordPress che consentiva una facile modifica delle immagini su un sito WordPress. Ha consentito a chiunque di utilizzare immagini ottenute da siti Web di condivisione di immagini come imgur.com e flickr.com. TimThumb riconosce imgur come sito valido (o autorizzato). Gli hacker che sfruttano questo criterio creano file con URL che menzionano un sito valido come http://www.imgur.com.badsite.com.Quando caricano un file dannoso con un URL come quello che abbiamo menzionato sopra, il plug-in viene indotto a credere che il file provenga da un sito Web valido.E consente di caricare un file dannoso sul server del sito web. L'intero processo di inclusione di un file dannoso dall'esterno del server del sito Web sfruttando una vulnerabilità in un plug-in è Remote File Inclusion. Dopo che il file PHP dannoso è stato archiviato nel server del sito Web, gli hacker possono comunicare con esso per eseguire le azioni desiderate.

Che cos'è un attacco di esecuzione di codice arbitrario?

Ora che sappiamo cos'è l'inclusione di file remoti e locali, andiamo avanti e proviamo a capire cos'è l'esecuzione di codice arbitrario. L'inclusione di file e l'inclusione di codice arbitrario sono correlate tra loro. In ogni caso di inclusione di file, l'obiettivo degli hacker è eseguire un codice arbitrario sul sito Web. Torniamo all'esempio di Local File Inclusion in cui l'hacker ha caricato un hack.php nel sito web del college e poi ha caricato control.php con l'aiuto di hack.php.La frase Arbitrary Code Execution è una descrizione della capacità di un hacker di eseguire qualsiasi comando di sua scelta su un sito Web compromesso.Una volta che i file PHP (hack.php e control.php) sono presenti sul server del sito web, l'hacker può eseguire qualsiasi codice desideri. Questo processo di esecuzione di qualsiasi codice dai file che ha caricato è chiamato esecuzione di codice arbitrario.
Gli hack sono complessi. In questo post abbiamo cercato di spiegarlo in modo semplice ma se c'è una parte che per voi non ha senso invitiamo i nostri lettori a scriverci . Nel prossimo post, discuteremo di un altro comune attacco hacker a un sito WordPress chiamato Cross-Site Scripting (XSS). Guarda.