Spotify 코드 크래킹 및 그것으로 퀘스트 만들기
#np: Think Twice의 Firefly(Spotify가 없지만 그게 요점이 아닌 경우 Soundcloud에서도 사용 가능)
이러한 코드를 생성하기 위한 a dedicated website이 있으며 위 이미지의 URL은 다음과 같습니다.
https://scannables.scdn.co/uri/plain/png/000000/white/640/spotify:track:1er51HCEBhIAtoEemKuC3M
. 훨씬 쉽게 분석할 수 있는 SVG도 얻을 수 있습니다.<rect x="100.00" y="44.50" width="6.71" height="11.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="112.42" y="23.50" width="6.71" height="53.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="124.84" y="37.50" width="6.71" height="25.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="137.27" y="23.50" width="6.71" height="53.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="149.69" y="34.00" width="6.71" height="32.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="162.11" y="41.00" width="6.71" height="18.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="174.53" y="23.50" width="6.71" height="53.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="186.96" y="44.50" width="6.71" height="11.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="199.38" y="34.00" width="6.71" height="32.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="211.80" y="41.00" width="6.71" height="18.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="224.22" y="27.00" width="6.71" height="46.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="236.64" y="20.00" width="6.71" height="60.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="249.07" y="37.50" width="6.71" height="25.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="261.49" y="44.50" width="6.71" height="11.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="273.91" y="37.50" width="6.71" height="25.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="286.33" y="37.50" width="6.71" height="25.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="298.76" y="23.50" width="6.71" height="53.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="311.18" y="41.00" width="6.71" height="18.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="323.60" y="20.00" width="6.71" height="60.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="336.02" y="37.50" width="6.71" height="25.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="348.44" y="30.50" width="6.71" height="39.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="360.87" y="27.00" width="6.71" height="46.00" rx="3.36" ry="3.36" fill="#ffffff"/>
<rect x="373.29" y="44.50" width="6.71" height="11.00" rx="3.36" ry="3.36" fill="#ffffff"/>
여기에서 각 막대에 대해 높이 11, 18, 25, 32, 39, 46, 53 및 60픽셀의 8가지 변형이 있음을 알 수 있습니다. 우리는 첫 번째 막대와 마지막 막대가 항상 11픽셀(스캐너를 보정하기 위해 로고 크기와 함께 사용됨)이라는 사실을 확인했습니다. 따라서 21개의 막대 × 막대당 3비트 = 바코드당 63비트의 정보가 남습니다. Spotify 트랙 ID보다 어떤 종류의 조회 테이블을 사용해야 합니다.
이 시점에서 우리는 실제 인코딩에 대한 자세한 내용과 함께 Spotify의 특허(US , EU )를 만났습니다(예: 바의 높이가 하나 떨어져 있을 때 발생할 수 있는 오류를 줄이는 그레이 코드가 사용됨).
그러나 잠시만요, 유효하지 않은 데이터에 대한 바코드를 얻으려고 하면 어떻게 될까요?
그래서 우리는:
https://dev.to/
도 작동하지 않았지만 spotify:track:helloDEV
작동합니다! 이것은 확실히 의미있는 곳으로 이어지지는 않지만 기술적으로 올바른 Spotify 코드입니다.
Spotify 페이지를 열지는 않지만 적어도 코드 데이터베이스(이전의 looktype, 기억하시나요?)를 쿼리해야 합니다. 그래서 내 친구는 리버스 프록시를 통해 Spotify를 실행하고 유효하지 않은 코드 중 하나를 스캔하려고 시도했습니다.
그것은 효과가 있었다! 따라서 이러한 코드는 무엇이든 사용할 수 있지만 Spotify는 언제든지 코드를 취소할 수 있으므로 주의하세요.
보너스 포인트를 위해 추가 정보가 포함된 작업 바로드(즉, 실제 트랙을 가리킴)를 얻으려고 했습니다. 내 추측으로는
spotify:something:something
문자열이 URI라고 하면 URI로 구문 분석되고 여기에 쿼리 문자열을 추가할 수 있다는 것입니다. 분명히 ?hello=dev
를 추가하면 쿼리 문자열이 scannables.scdn.co
서버로 전송되고 원래 코드만 반환되지만 URL 인코딩 매개변수도 도움이 되지 않았습니다. 그러나 이상하게도 이중 URL 인코딩 후:https://scannables.scdn.co/uri/plain/png/000000/white/640/spotify:track:1er51HCEBhIAtoEemKuC3M%253Fhello=dev
그것은 효과가 있었다! 앱으로 스캔하고 트랙을 얻을 수 있으며 트래픽을 보면 내부에 비밀 메시지가 표시됩니다.
이로 인해 우리는 두 개의 미니 퀘스트를 만들게 되었습니다. 지역 DEFCON 채팅(37517)에 하나를 게시했습니다.
그녀의 전보 채널에. 우리의 수수께끼는 단 42분 만에 풀렸는데, 정말 인상적이었습니다.
실용적인 의미
이러한 방식으로 Spotify에 쓰레기를 저장하는 것은 실제로 실용적이지 않은 2⁶³ HTTP 쿼리를 전송해야 하기 때문에 Spotify 코드 오버플로를 유발할 가능성이 없습니다(게다가 Spotify는 언제든지 코드를 취소할 수 있으므로 그렇게 시도하더라도 코드는 어쨌든 곧 지워질 것입니다).
이론상으로는 비공식 스캐너를 작성하여 이러한 내장된 메시지를 읽게 할 수 있지만(예: 임의의 HTTP 링크에 대한 Spotify 코드를 만들기 위해) QR과 같은 보다 개방적이고 독립적인 시스템으로 이미 해결되었습니다(멋지게 보이진 않지만). .
제 생각에는 이것은 시스템 보안 및 데이터 인코딩의 연습으로만 유용하지만 여전히 가지고 놀기에 재미있는 일이었습니다!
Habr(러시아어)에 있는 님의 게시물을 기반으로 합니다.
Reference
이 문제에 관하여(Spotify 코드 크래킹 및 그것으로 퀘스트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ale/cracking-spotify-codes-and-making-a-quest-out-of-it-3jdn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)