Como esconder lixo no banco de dados do Spotify e transformá-lo em uma missão

Hacker perigoso esconde o código Spotify com informações secretas
Hacker perigoso esconde o código Spotify com informações secretas

Introdução

Em uma noite sem dormir, meu amigo e eu conversamos sobre os códigos do Spotify.

Estas são as imagens que podem ser digitalizadas pelo aplicativo e ir para a faixa / álbum / lista de reprodução desejada. Eles foram inventados para que as pessoas pudessem compartilhar músicas nas redes sociais ou offline.

Exemplo.  Tanta tristeza está acontecendo agora.
Exemplo. Tanta tristeza está acontecendo agora.

Decidimos descobrir como o Spotify codifica links neles.

Como funcionam os códigos?

Descobriu-se que, além do menu Compartilhar no aplicativo, existe um site oficial de códigos do Spotify que gera esses códigos.

, - : https://scannables.scdn.co/uri/plain/jpeg/000000/white/640/spotify:track:5jxN9knH0vlfpN2Ft7a5xi

! , ID — .

, SVG. , .

Os números no campo de altura são as alturas das barras
height —

, , , , Spotify, . .

Os dados importantes são destacados em vermelho

556205622371746371156, 58992959842 . . ? Spotify, .

: 58992959842 spotify:track:5jxN9knH0vlfpN2Ft7a5xi?

, - ID, ID - .

, - , : https://scannables.scdn.co/uri/plain/jpeg/000000/white/640/spotify:track:thisisaverylongidentifierwhichwoulddefinitelyoverflowthatnumericcode

. , / .

:

58992959842 vai para o servidor, e a faixa 5jxN9knH0vlfpN2Ft7a5xi retorna
58992959842, 5jxN9knH0vlfpN2Ft7a5xi

: . ?

, ? ?

, , 11- ID.

A imagem do lixo do exemplo acima

, ?

Haverá um erro

. , . , , :

Hum, o que?
, ?

. Spotify , , , , .

- - , : .

, , ID .

Android-, , , ID . , urlencode. , spotify:track:2ctvdKmETyOzPb2GiJJT53%253Fhi,habr!, :

Código de fundo duplo

, , . Base64, URL .

Spotify ? , , . , .

Spotify? , , . .

? , . , , , . , API , , Spotify-, .

, Base64. - 42 . : .

, ID .

UPD: 15 , , Spotify .

O gerador de código não aceita mais lixo, agora apenas IDs que correspondem ao formato funcionam.

Isso é muito decepcionante, porque achei que eles não se importassem e considerariam isso um recurso. Pode ir para Bug Bounty :(




All Articles