Advertencia

Todos las vulnerabilidades mostradas ya están solucionadas. Lo aviso para que no perdais el tiempo intentando explotarlas.

Antes de hacer este WriteUp le pregunté a los de Peoople si podía hacerlo y me dijeron que sin problema.

Descargar el APK

Como de costumbre, siempre que encuentro una app que creo que puede tener fallos, me descargo el apk y lo decompilo.

Este paso es muy fácil, simplemente teneis que buscar el apk en google.

Una vez lo tengáis descargado toca descompilarlo, por lo general yo suelo usar http://www.javadecompilers.com/apk.

Vale, ya tenemos descompilado el apk, ahora os descargais el .zip del apk ya descompilado y lo extraeis.

Analizar los archivos

Ahora nos toca analizar los archivos del apk en busca de algun fallo que podamos explotar. Para eso abrimos la carpeta con un editor de texto, yo voy a usar Visual Studio Code.

Os aparecerán dos carpetas.

Antes de nada, yo suelo comprobar si la app esta hecha con react, para ello abrimos la carpeta resources y despues assets.

Si esos dos archivos estan ahí sabemos que la app esta hecha con react, y no tenemos que seguir buscando.

Lo siguiente es hacer legible el index.android.bundle ya que tal y como esta ahora dificulta la búsqueda.

Para hacer el texto mas legible es fácil, el index.android.bundle es JavaScript, a si que lo único que necesitamos es hacerle un «beautify». Como el archivo es muy grande, seguramente si lo intentas hacer desde tu editor de texto no vas a poder y te va a crashear. Yo suelo usar esta web https://beautifier.io/.

Copiamos el texto del archivo y lo pegamos en la web, le damos a «Beautify Code» y ya tendríamos el JavaScript perfectamente legible.

Ahora solo nos toca buscar las peticiones que se hacen al servidor, pero antes de nada tenemos que encontrar el link de la API.

Yo lo que suelo hacer es ctrl + f y busco «https://», saldrán algunos links que no nos interesan pero si seguimos buscando al final los encontramos.

El CDN podemos olvidarlo, los que nos interesan son los primeros.

Explotación de la API

Ya tenemos la API, ahora solo toca buscar peticiones que explotar.

Para buscarlas solo tenemos que coger la variable de la API y ponermos a buscar.

Solo voy a mostrar la que use para los seguidores y la que usamos para cambiarle la contraseña a cualquier cuenta.

Hacer que te sigan otras cuentas

Podemos observar que hay 3 parametros que se envían.

  • myid – El id desde el que se sigue a la persona, se puede cambiar por el de otro y hacer que te sigan.
  • destino_id – El id al que sigue myid, puedes poner el tuyo para que te sigan o el de otro.
  • action – La acción que hace, para que te sigan la acción era «follow».

Pero antes de eso nos pide un Token, ese token lo podemos sacar desde la petición del login.

Cambiarle la contraseña a cualquier cuenta

Antes de nada, dar créditos a Pabheto por encontrar este fallo <3

En este caso no era tan fácil pero tampoco era difícil.

ç

Al igual que en la anterior, tenemos 3 parametros.

  • email – El email de la cuenta a la que le queremos cambiar la contraseña.
  • password – La nueva contraseña.
  • code – El código que se envía al usuario para cambiar su contraseña.

El fallo aquí estaba en que si tu enviabas un «0» en el code, te cambiaba la contraseña, esto se debe a que por defecto, en la DB el valor del codigo de recuperacion de contraseña era 0.

Y ya estaría, esos eran los principales fallos.

 

@alcasec <3

 

¿Me ayudas a compartirlo?
Última modificación: 27 julio 2019

Autor

Comentarios

Comenta o responde a los comentarios

Tu dirección de correo no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.