Bug descubierto en Meneame (Y enchilame y clones) aka "Fuera Bombas"
Meneame y sus clones (como enchilame el cual suelo visitar eventualmente y es para usuarios mexicanos) es un sitio de promocion de noticias “democratico”. Las noticias son “promovidas” a la portada si reciben los suficientes votos por parte de los usuarios y descartadas si son votadas negativamente.
Esto deberia ser asi, pero resulta que hay un error en la programacion del cual estoy seguro que los programadores de meneame esten enterados, puesto que parece estar puesto deliberadamente para que funcione asi… O talvez simplemente se les fue y les dio flojera arreglarlo, cosa muy comun en este medio
El error lo encontre uno de esos dias sin mucho que hacer y me puse a revisar el codigo para ver como funcionaba el sitio. Entonces encontre algo que parecia extra�o. Hice una prueba y bam. Funciono.
Explicacion para los mortales
Mediante un sencillo script, es posible realizar “super” votos negativos (yo lo llamo “Fuera bombas”), de manera que a la noticia le sea bajado el karma mas alla de lo comun. Este error es debido a que no se comprueba debidamente el valor de los votos negativos.
Proof of concept
Para probar el error, es necesario una noticia no publicada y estar logueado. Solo un usuario logueado puede introducir votos negativos.
Ya en la pagina de la noticia se escribe esto en la barra de direccion. (corregido, gracias!)
Javascript:linkid = document.forms.thisform.link_id.value; d = document.createElement(‘option’);d.text=’Fuera bombas!!’; d.innerHTML = d.text; d.value=’-10′; document.getElementById(‘problem-’+linkid).firstChild.appendChild(d);alert(d);
Eso creara un nuevo item en el select de “Problema” llamado “Fuera bombas”.
Ya con esto, solamente se selecciona ese item y la noticia sera votada negativa, con la peculiaridad que ese voto no aparecera en ninguna categoria y el karma de la noticia habr� bajado mas de lo normal.
Como funciona
El proceso es simple. Cuando se vota una noticia en negativo el navegador le envia un numero negativo al servidor dependiendo del tipo de error que se le mande (spam, duplicada, etc). Del lado del servidor se verifica ese valor y lo a�ade al karma. El problema esta en que la validacion no es adecuada. En lugar de verificar por valores especificos (los mismos de cada categoria), simplemente se checa que ese valor sea mayor a -10.
El script lo unico que hace es crear un nuevo elemento con el valor -10 y por lo demas, se usa la infraestructura ya creada por el sistema de votacion.
Como arreglarlo
Como ya dije en el apartado anterior, el arreglo es sencillo. Basta con mejorar la validacion de los votos. Es un arreglo de una linea.
El arreglo debera estar implementado en enchilame en cuanto encuentre al administrador (o me de su password ya le dije xD) y meneame lo debe arreglar en menos tiempo del que yo me tome en escribir el articulo. (demasiado largo, para mi gusto, pero hoy tenia ganas de escribir
)
Es importante que los clones se actualicen al nuevo codigo lo antes posible, ya que con esta informacion es relativamente facil manipular el karma de las noticias. Hay un par de errores mas en el codigo que los ire sacando poco a poco. Y al igual que este, son menores.
P.D
Seguramente se me preguntara porque no avise primero a los desarrolladores de meneame. Bueno, la respuesta es sencilla. Queria credito por el descubrimiento
. Ademas no se quien administre alla, por eso solo lo hable con el administrador de enchilame. Asi que como diria nuestro intento de dictador… disculpen las molestias que esto ocasiona.
UPDATE
El codigo anterior tenia comillas dobles en lugar de simples. Era un error. Ya esta corregido
Si deseas contactarme puedes hacerlo en contacto@masio.com.mx o deja comentario en alguna de las entradas del blog. Tambien me encuentras en twitter en 
o deja comentario en alguna de las entradas del blog. Tambien me encuentras en twitter en
baah
19 Aug, 2006
qu
Jes
19 Aug, 2006
amigo baah: eres un imb
Nemigo
20 Aug, 2006
Hola,
est