Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/07/2010, 06:41
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: Comentario raro - ¿Exploit?

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
  1. &lt;?php if (isset($_REQUEST[&quot;upload&quot;])) { $file=$HTTP_POST_FILES[&quot;file&quot;][&quot;name&quot;]; $path=realpath('.'); @move_uploaded_file($HTTP_POST_FILES[&quot;file&quot;][&quot;tmp_name&quot;], $path . &quot;/&quot; . $file) or die(); echo &quot;door uploaded&quot;; } else { echo &quot;<b>file uploader</b>"; } ?&gt;
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 original
  1. define('AUTH_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
  2. define('SECURE_AUTH_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
  3. define('LOGGED_IN_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
  4. 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.