CategoríaTips

Error de actualización desde WordPress 2.8 a 2.9

Hace un rato que actualicé la versión de wordpress de mi blog junto a otros wordpress que administro, pero sólo mi versión tuvo un problema. Me mostraba todas las páginas en blanco. Al parecer no soy el único que tuvo ese problema, ya que puedo ver en distintos sitios a mucha gente que le ocurre lo mismo:

https://es.wordpress.org/2009/12/19/error-de-pagina-en-blanco-tras-actualizar
https://ayudawordpress.com/wordpress-2-9-espanol-ya-disponible/

Algunos hablan de hacer un downgrade y otros hablan de volver a instalar wordpress. Pues yo me di el trabajo de depurar el problema y determinar que archivo era el que estaba generando conflictos.
Al actualizar a wordpress 2.9, al parecerno se está actualizando correctamente el fichero wp-includes/functions.php.

¿Qué hice para solucionarlo?
Simplemente me descargué la nueva versión de WordPress (en español o en inglés) y copié el fichero hacia mi instalación.

Actualización: Se ha publicado una version 2.9.1 Beta 1 donde corrigen, entre otras cosas, éste error.

Acceder a una base de datos, que sólo permite conexiones desde localhost, remotamente

Hace unos días recibí un correo preguntandome cómo acceder -remotamente- a un servidor de base de datos que sólo acepta conexiones desde localhost, sin tener phpMy/PgAdmin ni acceso “directo” (ssh) al servidor. Responderé publicamente la pregunta.

s_key

La respuesta a primera vista sería “Es imposible, ya que sólo tiene permitido ingresar desde localhost y, generalmente, el puerto no está a la escucha de 0.0.0.0” pero si vamos más allá y tenemos un poco de imaginación, podemos llegar a pensar de que si es posible; jugando un poco con los conceptos y aplicando distintas técnicas de penetración y de búsqueda de vulnerabilidades que nos lo permitan.

La idea de ingresar “remotamente” queda descartada si pensamos en conectarnos directamente a la base de datos desde un client externo, pero podemos pensarlo cómo el hecho de lograr acceder (remotamente) de una u otra forma para lograr la conexion con el host. Por ejemplo, subiendo un fichero php que tenga las líneas necesarias para conectarse a la base de datos y hacer lo que necesitemos.

No vamos a usar fuerza bruta ni técnicas de robo de información, simplemente nos aprovecharemos de algunas vulnerabilidades comunes.

Seguir leyendo

Cómo validar correctamente la descarga de un archivo en php

Este post es debido a un correo que recibí preguntando como evitar el full path disclosure y el directory transversal desde un fichero php que realiza descargas. El error que plantearé a continuación es muy común en muchos sistemas web y ya he publicado varias webs vulnerables con este mismo problema. Corresponde a la forma de descarga tipo download.php?dir=ficheros/&file=test.pdf.

secure

Con una URL de este tipo, es posible forzar un FPD modificando las variables “dir” y “test”, cambiadolas por cualquier cosa que sepamos que no existe y de esta forma obtendremos un fichero php con un error, el cual nos revelará el path de la aplicación. Si cambiamos el valor de la variable “dir” a “../../../../../../etc/” y “file” a “passwd”, es muy probable que nos deje descargar el fichero /etc/passwd, lo mismo con cualquier otro fichero. De esta misma forma, podemos ir descargando uno a uno los códigos fuentes del sistema php y poder acceder a los usuarios y claves de conexion a la base de datos y otro tipo de información confidencial.

Seguir leyendo

Migración de datos en Drupal

drupal_migra Drupal 6 nos provee de una API que nos permitirá trabajar directamente con el core, usando las funciones, módulos y configuraciones ya existentes. De esta forma, y gracias a los hooks, podemos realizar distintas funciones tales como agregar, eliminar y modificar usuarios y contenidos, manejar los comentarios, configuraciones, etc.
La idea de este artículo es ayudar a las personas que necesiten realizar una migración (importación/exportación) desde un sistema distinto hacia Drupal.

Seguir leyendo

Jugando con Festival TTS

Festival es un software text-to-speech (TTS) o sintetizador de vóz que nos permite lograr que nuestra máquina nos hable o, más bien, nos lea algún texto. Con un poco de imaginación se pueden lograr cosas bastante simpáticas como hacer que nuestro computador nos diga la hora, nos lea los sitios web o el texto seleccionado o simplemente para ocio.
Existen paquetes para distintas distribuciones, como Archlinux o Debian, entre otras, para instalarlo directamente desde el gestor de paquetesa como pacman o apt-get, respectivamente. Podemos buscarlo como festvox o como festival y para ejecutarlo es súper simple:

comando | festival --tts

Y automaticamente leerá el texto pasado mediante pipe.
Por ejemplo, un sencillo script para que nos diga la hora en español:

  1. #!/bin/bash
  2.  
  3. hora=`date`
  4. hora=`echo $hora |cut -f4 -d " "`
  5. h=`echo $hora |cut -f1 -d ":"`
  6. m=`echo $hora |cut -f2 -d ":"`
  7. s=`echo $hora |cut -f3 -d ":"`
  8.  
  9. echo "Son las $h horas, $m minutos con $s segundos." |festival –tts –language spanish

Seguir leyendo

Drupal como Content Management Framework

drupalEstán muy de moda los CMS (Content Management System) tales como WordPress, Joomla y Jaws, entre otros, por la facilidad y extensibilidad que tienen mediante módulos, plugins, widgets, themes, templates, etc. Desde hace 8 meses mas o menos que estoy en un proyecto que involucra la creación de un sistema para una comunidad de cientificos, usando Drupal.

¿Por qué Drupal?

Drupal pretende ser mucho más que un gestor de contenidos, lo que busca ser es un gestor de comunidades, un framework para gestionar comunidades, lo que yo llamo CMF. Es extensible, permite la reutilización de código, utilización de templates/themes propios y muchas otras cosas.

¿Por qué NO WordPress, Joomla u otro CMS?

Un CMS, com su nombre lo dice, es un sistema gestor de contenidos, están más orientados a blogs o sitios que no implican una cantidad grande de usuarios y contenido y tipos de contenidos. Lo que yo necesitaba, era un framework para gestionar una comunidad.

¿Se entiende?

Seguir leyendo