Mostrando las entradas con la etiqueta dev. Mostrar todas las entradas
Mostrando las entradas con la etiqueta dev. Mostrar todas las entradas

18.11.12

GIT con colores desde la terminal

Para tener unos lindos colores en GIT en nuestra consola, tenemos que ejecutar el siguiente comando:

$ git config --global --add color.ui true

Ahora, cuando hagamos un diff, status y demas, vamos a tener coloreado en verde/rojo el output de GIT!

Por ejemplo, un diff:

$ git diff
diff --git a/index.php b/index.php
index 211eb49..f0a6b1b 100644
--- a/index.php
+++ b/index.php
@@ -18,7 +18,7 @@
  * NOTE: If you change these, also change the error_reporting() code below
  *
  */
-       define('ENVIRONMENT', 'development');
+       define('ENVIRONMENT', 'production');
 /*
  *---------------------------------------------------------------

O un status:

$ git status
# On branch master
# Changed but not updated:
#   (use "git add ..." to update what will be committed)
#   (use "git checkout -- ..." to discard changes in working directory)
#
#       modified:   application/config/database.php
#

19.7.11

Enumerando usuarios de WordPress

Cuando empeze desarrollar y probar wpbf me di cuenta que necesitaba nombres de usuario válidos para realizar los ataques de fuerza bruta. En un principio buscaba en el contenido del blog links que hacian referencia a las páginas de autor hasta que di con el advisory de Veronica Valeros (TALSOFT-2011-0526) que permite automatizar la enumeración de usuarios a traves de una redicción (segun el advisory, esta presente en versiones de WordPress 2.6, 3.1, 3.1.1, 3.1.3 y 3.2-beta2).

Los usuarios enumerados pueden ser verificados/validados (para filtrar falsos positivos) desde el formulario de ingreso de usuarios (wp-login.php) cuyo mensaje de error diferencia entre usuarios válidos e inválidos.

Redirección

Esta técnica funciona en muchas instalaciones de WordPress (actualizadas o no). Para saber si un blog es vulnerable basta con ingresar a la siguiente página en el blog:

http://www.miblog.com.ar/?author=2

En caso de que exista un usuario cuyo ID sea "2", la redirección nos revela el nombre de usuario "pepito":

http://www.miblog.com.ar/author/pepito/

La idea general es ir incrementando el IDs de usuario hasta obtener todos los usuarios. Algo importante es no detenerse cuando no encontremos un usuario, ya que es común que algunos usuarios hayan sido eliminados y exista un "vacio" en la secuencia de IDs de usuarios.

Pagina del autor

Pero, ¿qué pasa cuando no se hace la redirección? Como bien dice el advisory, versiones recientes de WordPress solucionan el problema de la redirección pero el nombre de usuario sigue presente en las paginas de autor de cada usuario. En esta pagina se deberían listar todos los posts de un autor en particular, y si bien el template puede estar modificado para no incluir un link al autor (href="/author/pepito/") la etiqueta "title" suele comenzar con el nombre de usuario.

<title>pepito | Titulo de mi blog</title>

En muy pocos casos cambia la posición del nombre de usuario pero, en caso de que cambie, se podria comparar el contenido del titulo de varias paginas de autor y encontrar cuales son las palabras que se repiten en la mayoría de los casos. Las palabras que cambian representarian los nombres de los autores.

Otros métodos

Nos queda buscar en el contenido del blog referencias a la pagina de autor en las firmas de los posts. Acá dependemos del tema/template elegido por el administrador del blog y hay una gran posibilidad que no encontremos todos los usuarios (como, por ejemplo, un usuario que no escribió un post en ese blog). Un link a una página de autor seria algo así:

<a title="View all posts by admin" href="http://www.miblog.com.ar/?author=1" class="url fn n">admin</a>

¿En que versiones funciona esto?

Se suponía que la versión 3.1.3 solucionaba el problema del redirect, pero en mis pruebas tengo resultados dispares. En algunos blogs cuya versión es la misma, para uno funciona el redirect y para el otro no (en ambos casos, la enumeración es exitosa).

Estas son las versiones que pude probar:

WordPress 2.6.1 : redirect
WordPress 2.7 : author-title
WordPress 2.7.1 : author-title
WordPress 2.8.4 : author-title
WordPress 2.9.2 : author-title
WordPress 3.0.2 : author-title
WordPress 3.0.3 : author-title
WordPress 3.0.4 : redirect
WordPress 3.1.2 : author-title
WordPress 3.1.3 : redirect
WordPress 3.2 : redirect
WordPress 3.2.1 : redirect / author-title

Si quieren hacer pruebas enumerando usuarios de su blog automaticamente, pueden utilizar wpbf o el plugin wordpress_enumerate_users.py del framework de explotacion web w3af.

22.7.09

Colores en el diff de Subversion

Hay varias maneras de tener colores cuando hacemos 'svn diff', una de las mas simples y que no requiere instalar software adicional (como colordiff) es utilizando 'vim' de la siguiente forma:

svn diff | vim -R -

El resultado de este comando deberia resultar en algo parecido a esto:

16.4.09

Eliminando directorios .svn con bash

Si tenemos una working copy de Subversion y queremos eliminar los directorios '.svn' que quedan cuando hacemos un checkout podemos ejecutar la siguiente linea parados en el directorio que queremos limpiar:

find . -name ".svn" -exec rm -rf {} \;

En caso de querer hacer un checkout sin los directorios '.svn' utilizen el comando export de svn.

30.6.07

Quitar extension de todos los archivos (Python)

Necesitaba renombrar todos los archivos de un directorio y quitarles la extensión. Eran alrededor de 60 imágenes a las que tenia que cambiar la extensión JPG por ninguna extensión y a mano no lo iba a hacer. Como lenguaje elegí Python por que me plaze:

import glob, os
from string import join

mask = '*.jpg'

file_list = glob.glob(mask)
for file in file_list:
os.rename(file, join(file.split('.')[:-1],'.'))


Pueden cambiar el valor de la variable 'mask' dependiendo que quieran hacer. Puse *.jpg por que solo queria removerle la extension a todos los archivos de ese tipo.

En la próxima entrega vamos a hacer una combineta tartamuda con un taburete y dos mejillos.