Buenas tardes a todos! Después de tanto tiempo sin escribir nada, hoy os voy a enseñar como ganar siempre en Atriviate(Triviados) para iOS. Aunque puede aplicarse a cualquier las app de iOS.
Para hacer esto necesitaremos usar Windows, el programa para gestión de dispositivos iOS iTools 2013 y SQLite Manager (plugin para Firefox).
Lo primero es conectar por USB nuestro dispositivo iOS. Una vez conectado cerramos iTunes si se ha abierto e iniciamos el iTools.
En el menu de la izquierda nos vamos al apartado "Applications", y nos aparecera una lista con las apps que tenemos instaladas.
Buscamos Atriviate, hacemos click sobre ella y despues hacemos click sobre el boton "Browse".
A continuación se nos abre una ventana dentro del iTools con la carpeta en la que esta instalada la app. Debeis saber que las bases de datos que usan las apps están en "/Documents" y son archivos .sqlite. En esta entrada nos vamos a centrar en la base de datos, pero podéis mirar mas archivos de otros directorios según lo que busquéis (otro archivo interesante es el de preferencias, que se encuentra en "/Library/Preferences", es el único .plist que te dejará abrir)
Como se puede ver en la imagen, el archivo de base de datos que buscamos es "Model.sqlite". Ahora lo arrastramos al escritorio, para poder modificarlo con SQLite Manager. Para abrir la base de datos con SQLite Manager. Abrimos SQLite Manager y vamos a: "Archivo->Conectar Base de Datos" y abrimos el archivo Model.sqlite que guardamos en el escritorio. Ahora podemos ir viendo las tablas que forman la base de datos. Nos centraremos en la tabla "ZPREGUNTAS", en esta tabla se guardan todas las preguntas que se van solicitando al servidor. ¿Por qué? Porque la app funciona de manera que la primera vez que jugamos pide las preguntas de la categoría que nos ha tocado jugar, y este nos envía unas 20 preguntas de esa categoría. De este modo, las preguntas se guardan, y conforme se van contestando esas 20 preguntas se van eliminando, cuando no quedan mas se piden nuevas. Ya podéis ir intuyendo que es lo que vamos a hacer.. Si, lo que vamos a hacer es rellenar la tabla de preguntas con preguntas que tengan la misma respuesta como correcta. Pues como veis, en esta tabla se guarda el enunciado, las respuestas, la respuesta correcta (un numero del 1 al 4) y el id de pregunta en el servidor, entre otras cosas..
Ya sabéis lo que vamos a hacer, así que si no sabeis SQL lo mas sencillo es jugar una partida y obtener preguntas con ids validos.
Despues podéis cambiar la categoria haciendo doble click en la columna, para no tener que jugar todas las categorias de preguntas.
Una vez que tenemos al menos 1 pregunta de cada categoria(son 7 categorias, la columna categoria puede tomar valores del 1 al 7, dependiendo de la categoria), hacemos que todas las respuestas correctas sean la misma, por ejemplo, que todas sean la primera opción. Esto lo podemos hacer facilmente haciendo click en "Ejecutar SQL" y ejecutando lo siguiente:
UPDATE ZPREGUNTAS SET ZCORRECTA='1'
Y damos en "Ejecutar SQL". Una vez hecho esto todas las preguntas que tengamos en la base de datos tendrán como opción correcta la primera respuesta.
Pero hay un problema.. Si tenemos pocas preguntas en la base de datos, en cuanto se acaben se pedirán mas al servidor ... :S
Por este motivo, debemos insertar mas preguntas "personalizadas". La manera mas sencilla es usar las que ya tenemos, para repetirlas en la base de datos. Así que simplemente usamos la siguiente instrucción SQL:
INSERT INTO ZPREGUNTAS(Z_ENT ,Z_OPT, ZCATEGORIA , ZCORRECTA , ZIDPREGUNTA , ZIDIOMA , ZPREGUNTA , ZRES1 , ZRES2 , ZRES3 , ZRES4 ) SELECT Z_ENT ,Z_OPT, ZCATEGORIA , ZCORRECTA , ZIDPREGUNTA , ZIDIOMA , ZPREGUNTA , ZRES1 , ZRES2 , ZRES3 , ZRES4 FROM ZPREGUNTAS
Lo que hace es simplemente insertar en la tabla preguntas, preguntas con esas columnas (las que van entre parentesis), usando las filas (preguntas) que ya existen en la tabla. Para los que sepan de SQL, como veréis, "duplicamos" las preguntas con todos los campos excepto el campo "Z_PK", ya que este campo es la clave primaria, que como sabréis no puede ser la misma para mas de una fila.
Una vez hecho esto se nos duplican todas las preguntas, si lo repetimos varias veces tendremos mas preguntas. No os paséis porque si creáis demasiadas preguntas, la app luego irá muy lenta, pues tiene que cargar demasiadas preguntas de la base de datos.
Bien, pues ahora queda usar la nueva base de datos en la app.. pero este archivo esta protegido, así que no bastará con arrastrarlo a la capeta "/Documents" de la app y reemplazar la antigua (si lo probáis veréis que da error). El único modo es crear un backup de la app usando iTools.
Usando la opción que veis en la imagen "Backup program and documents". Esto nos generará un archivo IPA en nuestro escritorio. Lo que haremos será abrirlo con WinRar y entrar en la carpeta "/Container/Documents" y ahora arrastramos nuestra nueva base de datos con nuestras preguntas al archivo, lo que reemplazará la base de datos que se guardo en el backup. Y ya simplemente eliminamos nuestra app del dispositivo y despues instalamos el backup en nuestro dispositivo, arrastrando el archivo IPA a iTools.
Una vez se haya instalado la app, podremos usarla como siempre y podremos ganar siempre respondiendo con la primera opción :)
He escrito un poco a prisa y corriendo esta entrada, así que espero que sea entendible para todos. Si tienen algún problema diganlo por comentarios. No sean malos!! :P
Blog sobre seguridad Informática escrito por un novato. Todos empezamos siendo novatos, aprendiendo poco a poco! También podéis seguirme en Twitter: @alberto__segura
domingo, 1 de septiembre de 2013
miércoles, 24 de julio de 2013
phpTuenti API
Buenos días!
Después de bastante tiempo si escribir nada, hoy escribo para compartir con vosotros una pequeña API no oficial en PHP para Tuenti hecha por mi.
El enlace a GitHub: https://github.com/segura2010/phpTuenti
Ahí tienen la API y para cada función una breve descripción.
Espero que les sea útil :)
Si alguien quiere añadir algo a la API o modificar algo para mejorarla puede decirlo y colaborar :)
Por cierto, como alguno me comentó cuando hice la API para Python que por que no le ponía una licencia, he decidido añadirle una licencia Creative Commons a la API !
Intentaré escribir con mas frecuencia!! Hasta la próxima! :)
Después de bastante tiempo si escribir nada, hoy escribo para compartir con vosotros una pequeña API no oficial en PHP para Tuenti hecha por mi.
El enlace a GitHub: https://github.com/segura2010/phpTuenti
Ahí tienen la API y para cada función una breve descripción.
Espero que les sea útil :)
Si alguien quiere añadir algo a la API o modificar algo para mejorarla puede decirlo y colaborar :)
Por cierto, como alguno me comentó cuando hice la API para Python que por que no le ponía una licencia, he decidido añadirle una licencia Creative Commons a la API !
Intentaré escribir con mas frecuencia!! Hasta la próxima! :)
jueves, 30 de mayo de 2013
Vulnerabilidad XSS en el Nuevo Minijuegos
Hola a todos! Llevo tiempo sin escribir, ya que estoy algo liado con examenes y prácticas.. Pero saco algo de hueco para relajarme un momento y contaros una nueva vulnerabilidad que acabo de encontrar en Minijuegos.com
Como sabréis, han rediseñado toda su web, y con los cambios que han realizado se han dejado un XSS! ¿Donde está el XSS? Donde suelen estar todos! En el buscador!! El vector utuilizado es uno que me gusta bastante:
";alert('XSS');</script>
Como veis, lo que ocurre es que al añadir nuestra url de búsqueda en un script y no filtrar comillas ni nada pues podemos cerrar la inicialización de la variable y colocar nuestro código JavaScript! Después de añadir nuestro código, simplemente cerramos el script para evitar de manera fácil y rápida errores de sintaxis en nuestro código que produzcan que no se ejecute.
El fallo ha sido reportado a Minijuegos.com y arreglado.. Link con el ejemplo:(http://goo.gl/4uVUU) (Ya no funciona)
Actualización: Ya se ha corregido el fallo. Muy simpatico el chico que contestó al email! Me han regalado gemas de Minijuegos!! :D
Espero les haya resultado interesante!
Hasta la próxima!!
Como sabréis, han rediseñado toda su web, y con los cambios que han realizado se han dejado un XSS! ¿Donde está el XSS? Donde suelen estar todos! En el buscador!! El vector utuilizado es uno que me gusta bastante:
";alert('XSS');</script>
Como veis, lo que ocurre es que al añadir nuestra url de búsqueda en un script y no filtrar comillas ni nada pues podemos cerrar la inicialización de la variable y colocar nuestro código JavaScript! Después de añadir nuestro código, simplemente cerramos el script para evitar de manera fácil y rápida errores de sintaxis en nuestro código que produzcan que no se ejecute.
El fallo ha sido reportado a Minijuegos.com y arreglado.. Link con el ejemplo:(http://goo.gl/4uVUU) (Ya no funciona)
Actualización: Ya se ha corregido el fallo. Muy simpatico el chico que contestó al email! Me han regalado gemas de Minijuegos!! :D
Espero les haya resultado interesante!
Hasta la próxima!!
sábado, 13 de abril de 2013
XSS en Tuenti. Capitulo 5: Mensajes Privados.
Muy buenas a todos! Hace muchisimo que no escribo.. Perdonad por dejar abandonadillo el blog.. espero ir escribiendo mas a menudo ! :)
Hoy os voy a hablar de un nuevo XSS en Tuenti! Empezamos!
La vulnerabilidad XSS a tratar se encuentra en el sistema de Mensajes
Privados.
Como bien sabemos los los mensajes privados permiten añadir enlaces a otras
webs. Si aprovechamos esta funcionalidad podemos obtener una vulnerabilidad
del tipo XSS. Como se puede ver en la imagen de abajo podemos ejecutar
código malicioso usando el siguiente vector de ataque:
http://cualquierDominio/algoPorAqui"onmouseover="alert(/XSS/);"
Como vemos usamos las comillas para cerrar la propiedad “href” y a
continuación poder añadir el código malicioso deseado..
Puede parecer una vulnerabilidad no muy peligrosa, pero como ya se vio en el
XSS en MySpace (http://elladodelnovato.blogspot.com.es/2013/01/vulnerabilidad-xss-en-el-nuevo-myspace.html) pueden modificarse los estilos del enlace usando la propiedad “style” para
modificar el texto y colocarlo al comienzo, con una letra mucho mas grande y
transparente, de manera que sea mucho mas fácil que el usuario pase por
encima del enlace, sin darse ni cuenta.
Además tenemos una restricción, si en algún momento colocamos un espacio,
la url se corta y el sistema no lo añade al enlace, por lo que hay que poner todo
seguido, sin espacios. Aunque esto no debería ser un gran problema :)
Esta vulnerabilidad la he encontrado hoy mismo! He enviado un email informando del problema y no he recibido respueta, aunque si que han reparado ya la vulnerabilidad.. Así que desde aquí decir que me ha encantado su forma de agradecer, y no solo eso, sino que me parece lamentable que ni siquiera hayan respondido para decir que iban a mirarlo..
Así que un poco enfadado he decidido no solo publicarlo ya (ya que esta "solucionado"), sino publicar la forma de volver a explotar el XSS, ya que esta arreglado de forma CHAPUCERA..
Lo único que hay que hacer es usar el mismo vector pero con la siguiente modificación:
http://cualquierDominio/algoPorAqui"onmouseover=alert(/XSS/)//
Como vemos ahora la propiedad "href" no es la que falla, sino que es la propiedad "data-on-click-label" , que además nos añade una dificultad (por la cual tenemos que añadir las "//" al final de nuestro vector de ataque), esta dificultad como podéis ver es que nos deja las comillas de cierre de la propiedad.. Como veis, poniendo las dos barritas (//) evitamos que no se ejecute el javascript por error.. ya que lo que hacemos es usar las barritas para que tome como comentario las comillas y no haya errores. Y ya tenemos nuestro XSS funcionando de nuevo! ;)
Me parece muy lamentable que no hayan comprobado que se filtraba bien y que no había otra propiedad que fallaba..
ACTUALIZACIÓN: Acabo de recibir un email de respuesta de un trabajador de Tuenti agradeciendo la colaboración y explicandome lo ocurrido.. Debo decir que por una parte comprendo que no respondiesen, ya que era sábado por la mañana.. es más, pensé que ni siquiera lo arreglarían y pensaba no publicarlo hasta el martes para darles tiempo, pues entendía que siendo fin de semana sería más complicado. Pero sigo pensando que si se preocuparon de arreglarlo también podrían haber enviado un email en el que simplemente informasen de que iban a mirarlo, no pido nada mas.. Para yo saber si realmente les ha llegado el email (ya me ha pasado en otra ocasión que no les llegó). Así que entiendo que en fin de semana estuviesen justos de tiempo y tal, pero si te pones arreglarlo lo primero (en mi opinión) es arreglarlo bien, no a medias.. y avisar de que has recibido el email y vas a mirarlo.. En todo caso, decir que me parece bien que hayan sacado tiempo para arreglarlo antes que nada, preocupandose de la seguridad de sus usuarios.
Espero volver pronto a escribir una nueva entrada y no volver a dejar abandonado el blog!! Un saludo y hasta la proxima!! :)
Hoy os voy a hablar de un nuevo XSS en Tuenti! Empezamos!
La vulnerabilidad XSS a tratar se encuentra en el sistema de Mensajes
Privados.
Como bien sabemos los los mensajes privados permiten añadir enlaces a otras
webs. Si aprovechamos esta funcionalidad podemos obtener una vulnerabilidad
del tipo XSS. Como se puede ver en la imagen de abajo podemos ejecutar
código malicioso usando el siguiente vector de ataque:
http://cualquierDominio/algoPorAqui"onmouseover="alert(/XSS/);"
Como vemos usamos las comillas para cerrar la propiedad “href” y a
continuación poder añadir el código malicioso deseado..
Puede parecer una vulnerabilidad no muy peligrosa, pero como ya se vio en el
XSS en MySpace (http://elladodelnovato.blogspot.com.es/2013/01/vulnerabilidad-xss-en-el-nuevo-myspace.html) pueden modificarse los estilos del enlace usando la propiedad “style” para
modificar el texto y colocarlo al comienzo, con una letra mucho mas grande y
transparente, de manera que sea mucho mas fácil que el usuario pase por
encima del enlace, sin darse ni cuenta.
Además tenemos una restricción, si en algún momento colocamos un espacio,
la url se corta y el sistema no lo añade al enlace, por lo que hay que poner todo
seguido, sin espacios. Aunque esto no debería ser un gran problema :)
Esta vulnerabilidad la he encontrado hoy mismo! He enviado un email informando del problema y no he recibido respueta, aunque si que han reparado ya la vulnerabilidad.. Así que desde aquí decir que me ha encantado su forma de agradecer, y no solo eso, sino que me parece lamentable que ni siquiera hayan respondido para decir que iban a mirarlo..
Así que un poco enfadado he decidido no solo publicarlo ya (ya que esta "solucionado"), sino publicar la forma de volver a explotar el XSS, ya que esta arreglado de forma CHAPUCERA..
Lo único que hay que hacer es usar el mismo vector pero con la siguiente modificación:
http://cualquierDominio/algoPorAqui"onmouseover=alert(/XSS/)//
Como vemos ahora la propiedad "href" no es la que falla, sino que es la propiedad "data-on-click-label" , que además nos añade una dificultad (por la cual tenemos que añadir las "//" al final de nuestro vector de ataque), esta dificultad como podéis ver es que nos deja las comillas de cierre de la propiedad.. Como veis, poniendo las dos barritas (//) evitamos que no se ejecute el javascript por error.. ya que lo que hacemos es usar las barritas para que tome como comentario las comillas y no haya errores. Y ya tenemos nuestro XSS funcionando de nuevo! ;)
Me parece muy lamentable que no hayan comprobado que se filtraba bien y que no había otra propiedad que fallaba..
ACTUALIZACIÓN: Acabo de recibir un email de respuesta de un trabajador de Tuenti agradeciendo la colaboración y explicandome lo ocurrido.. Debo decir que por una parte comprendo que no respondiesen, ya que era sábado por la mañana.. es más, pensé que ni siquiera lo arreglarían y pensaba no publicarlo hasta el martes para darles tiempo, pues entendía que siendo fin de semana sería más complicado. Pero sigo pensando que si se preocuparon de arreglarlo también podrían haber enviado un email en el que simplemente informasen de que iban a mirarlo, no pido nada mas.. Para yo saber si realmente les ha llegado el email (ya me ha pasado en otra ocasión que no les llegó). Así que entiendo que en fin de semana estuviesen justos de tiempo y tal, pero si te pones arreglarlo lo primero (en mi opinión) es arreglarlo bien, no a medias.. y avisar de que has recibido el email y vas a mirarlo.. En todo caso, decir que me parece bien que hayan sacado tiempo para arreglarlo antes que nada, preocupandose de la seguridad de sus usuarios.
Espero volver pronto a escribir una nueva entrada y no volver a dejar abandonado el blog!! Un saludo y hasta la proxima!! :)
sábado, 2 de marzo de 2013
XSS Persistente en Steam
Hola de nuevo!
Hoy os traigo una vulnerabilidad XSS en la web de Steam. La vulnerabilidad se encuentra en los títulos de los anuncios de grupos. Así que si ponemos código en el título conseguiremos que se inyecte (esperad un poco para ver donde! Impacientes xD ). Aquí tenéis una imagen para explicar donde hay que poner el código.
Una vez tenemos nuestro anuncio de grupo, al aceptarlo todos los participantes del grupo recibirán una notificación del anuncio. Pero lo que nos interesa es el panel de novedades del usuario, ya que los usuarios que estén suscritos al grupo verán en su panel de novedades el anuncio del grupo y.. si, aquí está el XSS. Les dejo imagenes del XSS tanto usando un navegador como usando el cliente de Steam. ;)
Bueno, pues el fallo ha sido reportado a Steam y aún no ha sido corregido, pero un empleado de Steam ha respondido al reporte y me gustaría compartir su respuesta, a ver si es que yo soy un poco tonto o que pasa..
Y esto es todo por hoy, espero que les haya gustado :)
ATENCIÓN: No me hago responsable del uso de la información aquí publica. El único objetivo de este blog es informar y enseñar.
Hoy os traigo una vulnerabilidad XSS en la web de Steam. La vulnerabilidad se encuentra en los títulos de los anuncios de grupos. Así que si ponemos código en el título conseguiremos que se inyecte (esperad un poco para ver donde! Impacientes xD ). Aquí tenéis una imagen para explicar donde hay que poner el código.
Una vez tenemos nuestro anuncio de grupo, al aceptarlo todos los participantes del grupo recibirán una notificación del anuncio. Pero lo que nos interesa es el panel de novedades del usuario, ya que los usuarios que estén suscritos al grupo verán en su panel de novedades el anuncio del grupo y.. si, aquí está el XSS. Les dejo imagenes del XSS tanto usando un navegador como usando el cliente de Steam. ;)
Bueno, pues el fallo ha sido reportado a Steam y aún no ha sido corregido, pero un empleado de Steam ha respondido al reporte y me gustaría compartir su respuesta, a ver si es que yo soy un poco tonto o que pasa..
Y esto es todo por hoy, espero que les haya gustado :)
ATENCIÓN: No me hago responsable del uso de la información aquí publica. El único objetivo de este blog es informar y enseñar.
lunes, 18 de febrero de 2013
XSS en Series.ly y un interesante vector
Hola a todos!
Hoy os traigo un XSS no persistente en Series.ly. Esta vulnerabilidad se encuentra en el buscador.
El vector usado es el siguiente:
'};alert('segura201093');</script>
Aquí una imagen con la que se ve claramente lo que ocurre:
Como podéis ver, estamos dentro de un script, asique simplemente cerramos la comilla y la llave. De este modo, podemos añadir nuestro código Javascript y ejecutarlo. Cerramos la parte de javascript con la etiqueta "</script>" para que se ejecute nuestro código, y que no de error al encontrar lo que le seguía a la variable que cerramos.
Quería comentar este vector, por que me parece interesante, y por que he visto algunos vectores del tipo:
";</script><script>alert(1);</script>
Estos vectores debo de reconocer que me parecen bastante absurdos.. ya que si lo que quieres es ejecutar javascript me parece absurdo que quieras salir del código javascript para después volver a hacerte uno tu.. Además si aprovechas que ya estás dentro de un script evitas los problemas del AntiXSS de Chrome.. Hay muchas webs vulnerables a este vector XSS, ya que nos meten la cadena de busqueda en un script para trabajar con ella. De manera que aunque pensemos que no se produce un XSS, si nos fijamos en el código fuente podemos crearnos nuestro vectores de ataque que funcionen correctamente en la web que queremos. Por eso lo que recomiendo es saber que estáis haciendo y mirar bien las partes del código en las que se incluye nuestra cadena de texto. De esta manera podremos crear nuestros propios vectores que si que pueden funcionar en la aplicación.
Cada web tiene sus características así que puede que un vector no funcione, pero si sabes que hace la web, puedes hacerte un vector bueno ;)
Y ya sabéis, si estáis dentro de un script no cerréis para luego volver a abrir el vuestro.. Aprovechad las facilidades que ya nos dan!
IMPORTANTE: La vulnerabilidad en Series.ly fue reportada pero no he recibido respuesta ni ha sido reparada. Así que no me hago responsable de lo que hagan los lectores con los conocimientos que se muestran aquí.
Espero les haya gustado y gracias por leer. :)
Hoy os traigo un XSS no persistente en Series.ly. Esta vulnerabilidad se encuentra en el buscador.
El vector usado es el siguiente:
'};alert('segura201093');</script>
Aquí una imagen con la que se ve claramente lo que ocurre:
Como podéis ver, estamos dentro de un script, asique simplemente cerramos la comilla y la llave. De este modo, podemos añadir nuestro código Javascript y ejecutarlo. Cerramos la parte de javascript con la etiqueta "</script>" para que se ejecute nuestro código, y que no de error al encontrar lo que le seguía a la variable que cerramos.
Quería comentar este vector, por que me parece interesante, y por que he visto algunos vectores del tipo:
";</script><script>alert(1);</script>
Estos vectores debo de reconocer que me parecen bastante absurdos.. ya que si lo que quieres es ejecutar javascript me parece absurdo que quieras salir del código javascript para después volver a hacerte uno tu.. Además si aprovechas que ya estás dentro de un script evitas los problemas del AntiXSS de Chrome.. Hay muchas webs vulnerables a este vector XSS, ya que nos meten la cadena de busqueda en un script para trabajar con ella. De manera que aunque pensemos que no se produce un XSS, si nos fijamos en el código fuente podemos crearnos nuestro vectores de ataque que funcionen correctamente en la web que queremos. Por eso lo que recomiendo es saber que estáis haciendo y mirar bien las partes del código en las que se incluye nuestra cadena de texto. De esta manera podremos crear nuestros propios vectores que si que pueden funcionar en la aplicación.
Cada web tiene sus características así que puede que un vector no funcione, pero si sabes que hace la web, puedes hacerte un vector bueno ;)
Y ya sabéis, si estáis dentro de un script no cerréis para luego volver a abrir el vuestro.. Aprovechad las facilidades que ya nos dan!
IMPORTANTE: La vulnerabilidad en Series.ly fue reportada pero no he recibido respuesta ni ha sido reparada. Así que no me hago responsable de lo que hagan los lectores con los conocimientos que se muestran aquí.
Espero les haya gustado y gracias por leer. :)
miércoles, 6 de febrero de 2013
API de Tuenti en Python!
Buenas Tardes a todos!
Hace algún tiempo que llevo preparando una API en Python para Tuenti. Ya esta bastante avanzada y he decidido sacarla hoy para que todo el que quiera pueda usarla!
Acepto criticas constructivas. No soy experto en Python y hacer esta API ha sido una excusa para ir aprendiendo este lenguaje. Quizá sea mejorable, y haya formas mas fáciles de hacer las cosas e incluso estoy seguro de que puede mejorarse mucho esta API. Así que todo el que tenga ideas y mejoras para la API serán bien recibidas para mejorar todo lo posible la API.
Espero que les sea útil y espero que escriban comentando si les ha servido, o si creen que algo puede mejorarse o añadirse algo.
Les dejo el link para que puedan ver mi trabajo: Tuenti for Python
Muchas Gracias por leer!
Suscribirse a:
Entradas (Atom)









