#멜론티켓#티켓팅#EXO#SM#엔시티#라이즈#루시#암표#RT
멜론티켓 취약점을 공개합니다. 🍈🔫
멜론티켓에서 티켓팅할 때마다 이상하지 않으셨나요?
해결되지 않으면 앞으로도 매번 똑같을겁니다. 목소리를 내주세요.
예매 시작하자마자 서버 오류, 겨우 들어가면 이미 5자리 대기번호.
줄어들지 않거나 이상하게 움직이는 대기열, 팬클럽 선예매인데도 순식간에 수만 명의 대기자.
그리고 팬들은 표를 못 구했는데, 얼마 지나지 않아 암표업자들은 좋은 좌석을 수십 장씩 판매합니다.
단순히 "사람이 많이 몰려서" 생기는 문제일까요?
멜론티켓은 부정예매 티켓을 사후에 잡는 것보다 먼저 고쳐야 할 취약점들이 많습니다.
널리 알려주시고, 멜론티켓에도 문의를 넣어주세요.
멜론티켓이 듣고 패치하여 예매환경이 개선되는 지는 여러분의 몫입니다.
━━━━━━━━━━━━━━
1. 예매 진입 전부터 정상 이용자를 방해합니다.
예매 시간이 되면 멜론티켓은 먼저 '선택 가능한 회차'를 서버에서 불러옵니다.
우리는 이 정보를 받아야 회차를 선택하고 '예매하기'를 눌러 대기열에 들어갈 수 있습니다.
이 회차정보 요청을 로그인하지 않은 상태에서도 가능하다는 점을 이용하여, 정상적인 예매 이용자가 아니더라도 대량의 세션에서 요청을 발생시켜 부하를 유발할 수 있는 구조입니다.
예매 시작 직후, "시스템 에러가 발생하였습니다. 잠시 후 다시 시도해 주세요." 본 적 있으시죠?
정상 이용자는 여기서 회차정보를 못 받고 새로고침을 반복하게 됩니다. 그 사이 업자들은 이미 준비해둔 많은 계정으로 이미 대기열을 빠르게 선점하고 있지요.
티켓팅에서 몇 초는 대기번호 수천~수만 번의 차이가 됩니다, 예매 시작부터 정상 팬들이 늦어질 수 있는 겁니다.
━━━━━━━━━━━━━━
2. 로그인 하지 않아도 대기열을 점유할 수 있습니다. (대기열 증폭)
가장 심각한 문제입니다.
선예매라면 당연히 ① 로그인되어 있고 ② 해당 공연 팬클럽 선예매 자격이 있는 사람만 대기열에 들어갈 수 있어야 합니다.
그런데 현재 구조에서는 선예매 자격이 없는 계정뿐 아니라, 로그인조차 하지 않은 세션도 대기열 진입이 가능합니다.
무슨 의미일까요? "로그인 안하면 티켓을 못 사는데 무슨 상관이야?"
한두 개라면 그렇습니다. 그런데 이런 유령 세션을 수천 개, 수만 개 집어넣는다면요?
실제 선예매 자격자가 1만 명인데 구매 자격조차 없는 세션이 추가로 대량 삽입된다면, 정상 팬에게 표시되는 대기번호는 실제 구매 가능한 사람 숫자보다 훨씬 크게 부풀려질 수 있습니다.
티켓을 살 수도 없는 '유령 대기열'이 정상 팬들 앞에서 줄을 차지하게 되고, 그동안 업자들은 좌석 쇼핑을 맘껏 즐기고 있습니다.
━━━━━━━━━━━━━━
3. 대기열 자체에도 취약점이 있습니다.
대기 과정에서 발급되는 인증정보의 생성·갱신 구조를 확인한 결과, 취약점은 여기에도 있었습니다.
구체적인 방법은 악용될 수 있기 때문에 공개하지 않겠습니다만, 대기를 완전히 점프하거나, 미리 들어온 대기로 새로 들어온 대기를 앞당기는 것 또한 아직까지 고쳐지지 않았습니다. 대기를 미리 거치지 않고, 좌석을 선점시킨후 결제하는 것 또한 가능합니다.
일반 팬은 브라우저 하나를 켜놓고 자기 순번이 줄어들기를 기다리는데, 업자들은 유령 세션으로 대기열 증폭을 시켜둔 상태에서, 대기를 앞으로 당겨가면서 좋은 좌석 쇼핑을 마치고 있습니다.
━━━━━━━━━━━━━━
4. IP 제한, 국내 발행 카드만으로는 전문 업자를 막기 어렵습니다.
여러 탭에서 대기열에 들어가거나 같은 IP에서 여러 계정을 사용했을 때
"비정상적인 호출이 확인되어 예매가 제한됩니다." 라는 메시지를 본 분들이 있을 겁니다.
하지만 전문 업자들은 일반 팬처럼 집에서 컴퓨터 한 대로 티켓팅하지 않습니다.
다수의 계정과 IP, 데이터센터 환경을 이용할 수 있습니다. 계정마다 다른 IP를 사용할 수 있다면 단순 IP 제한의 효과는 크게 떨어집니다.
특히 2번에 언급한 대기열 진입 전에 로그인과 선예매 자격부터 검증하지 않는다면 IP만 바꾸면서 대량의 세션을 투입하는 것을 막기 어렵습니다.
━━━━━━━━━━━━━━
5. 팬클럽 가입자와 실제 예매 계정의 명의 대조가 필요합니다.
팬클럽에 가입할 때 이름을 입력합니다. 그렇다면 선예매 인증을 할 때도 '팬클럽에 가입한 사람 = 실제 예매 계정의 본인' 인지 확인해야 하지 않을까요?
이 연결이 제대로 되지 않는다면 확보하거나 생성한 다수의 계정을 티켓팅마다 반복적으로 이용하는 것을 막기 어렵습니다.
팬클럽 인증은 단순히 위버스 로그인에서 끝나는 것이 아니라 실제 가입자와 예매자의 동일인 여부까지 확인해야 의미가 있습니다.
━━━━━━━━━━━━━━
6. 멜론티켓은 가입 후 본인 재인증 없이 평생 예매가 가능합니다.
일부 다른 예매처에서는 일정 기간마다 본인 재인증을 해야 예매에 참여할 수 있습니다.
그런데 멜론티켓은 장기간 별도의 본인 재인증 없이 기존 계정을 계속 사용할 수 있는 구조입니다.
문제는 과거 개인정보 유출이나 계정 탈취 등으로 확보된 오래된 계정들이 대량 작업에 이용되고 있을뿐더러, 글로벌 멜론티켓에서는 외부서비스에 여권인증을 위탁하고 있는데, 아주 취약하여 만들어낸 여권 이미지로 무제한 계정생성이 가능한 상황입니다.
(26.9.12 글로벌 계정 생성 및 본인인증 우회 가능)
실제로 본인은 예매하지 않았는데 자신의 계정에 모르는 티켓 예매내역이 생겼다는 사례들도 제기돼 왔습니다.
정상이용자 팬 한 명은 본인 계정 하나로 참여합니다. 그런데 한 작업자가 수십·수백 개의 계정을 움직인다면 애초에 경쟁 조건 자체가 다릅니다.
━━━━━━━━━━━━━━
7. 좌석 구역을 자동화 프로그램이 너무 쉽게 미리 지정할 수 있는 구조도 개선해야 합니다.
우리에게 OP, A, B, C, D 등의 좌석 구역 배치도를 보여주는 것은 당연히 필요합니다.
하지만 화면에서 사용하는 구역 정보와 실제 잔여 좌석 조회에 사용되는 구역명이 난수화 되지 않고 쉽게 대응된다면 자동화 프로그램에는 상당히 편리한 환경이 됩니다.
사람은 좌석창이 열린 다음 눈으로 구역을 찾아 클릭합니다. 프로그램은 미리 인기 구역을 지정해두고 그곳만 집중적으로 API호출을 통해 탐색할 수 있습니다. 대기열은 거치지 않고도 선점이 가능하고요.
일반 팬이 증폭된 대기열에서 대기할 동안, 업자들이 자리 싹쓸이후 엑셀표가 바로 올라오지요.
━━━━━━━━━━━━━━
최근 EXO 콘서트에서도 대규모 부정예매 취소가 이루어졌고 취소 좌석을 다시 판매하기로 했습니다.
부정예매를 잡는 것 자체는 당연히 필요합니다. 그런데 정상적인 예매 페이지에서 취소표를 구하기 위해 여러 번 새로고침했던 팬들의 티켓까지 부정예매로 판단되어 취소되고, 이후 카드 결제내역 등 정상 '결제' 내역 제출만으로도 소명이 끝난걸 보고 업자들도 대거 소명에 성공했습니다.
멜론티켓은 도대체 무엇을 기준으로 '부정예매'를 판단하고 있는 걸까요?
정상 팬의 반복적인 새로고침과 전문 업자의 대량 자동화 접근을 제대로 구분하고 있는 걸까요?
정상 팬의 티켓까지 일단 취소한 뒤 "본인이 결제했다는 걸 증명하면 다시 돌려준다"는 방식은 부정예매의 원인을 찾아 차단한 것과는 전혀 다른 이야기입니다.
비로그인 세션의 대량 접근,
선예매 자격 없는 세션의 대기열 점유,
유령 대기열 생성,
다계정·다IP 접근,
자동화된 좌석 탐색
결제수단 하나를 제한한다고 근본적인 문제가 사라지는 것은 아닙니다.
━━━━━━━━━━━━━━
왜 정상 팬들은 예매 시작과 동시에 수만 명의 대기열 뒤에 있는데,
일부 암표업자들은 인기 공연이 열릴 때마다 좋은 좌석을 여러 장씩 확보할 수 있을까요?
왜 이 일이 한 번이 아니라 몇 년째 반복되고 있을까요?
구매 자격이 없는 세션은 물론 로그인조차 하지 않은 세션까지 대기열을 점유할 수 있다면, 정상 팬들은 실제 팬들하고만 경쟁하고 있는 것이 아닙니다.
대량의 계정·IP·세션과 자동화 환경을 가진 조직과 경쟁하고 있는 겁니다.
그런데 플랫폼까지 이들을 제대로 검증하지 않는다면 애초에 같은 출발선이 아닙니다.
예매 수수료는 따박따박 받아먹으면서, 환경 개선은 안하시나요?
━━━━━━━━━━━━━━
이 글은 단순한 추측만으로 작성한 것이 아닙니다.
실제 멜론티켓 예매 과정의 네트워크 통신과 대기열 동작을 확인하면서 관련된 요청 구조와 검증이 부족한 것으로 보이는 지점들을 확인했습니다.
구체적인 URL, 요청값, 인증정보 처리 방식이나 재현 방법도 확인하였습니다.
━━━━━━━━━━━━━━
먼저 업자들이 티켓을 대량으로 가져갈 수 있는 길부터 막아야 합니다.
로그인하지 않았으면 대기열에 들어가지 못하게 하고,
팬클럽 선예매 자격이 없으면 선예매 대기열 자체에 들어가지 못하게 하고,
한 사람이 수많은 세션과 계정으로 대기열을 점유하지 못하게 하고,
오래된 계정은 다시 본인확인을 하고, 정상 이용자의 행동과 대규모 자동화 접근을 제대로 구분해야 합니다.
이런 기본적인 구조가 해결되지 않는다면 부정예매 티켓을 아무리 취소해도 다음 티켓팅에서 다시 반복됩니다.
이번 재오픈도, 그다음 공연도 마찬가지입니다.
팬들이 계속 이런 환경에서 티켓팅해야 하는 문제가 단순히 "티켓팅이 원래 어렵다"는 말로 넘어가지 않았으면 합니다.
많은 분들이 볼 수 있도록 RT 부탁드립니다.
그대로 복사해서 다른 커뮤니티에 공유하셔도 됩니다.
언론 제보, 관계기관 제보, 멜론티켓 문의 등을 통해서도 이 문제가 실제로 확인될 수 있도록 목소리를 내주셨으면 합니다.
해결되지 않으면 앞으로 모든 예매 티켓은 해외 업자가 쓸어갈 것입니다.
부정예매의 결과만 취소하지 말고,
부정예매가 가능한 구조 자체를 고쳐야 합니다.