회원가입 | 고객센터 |
DESIGNONEX
디자인원엑스
Q&AN
지식공유
공지사항
DX마켓
통계
로그인 회원가입
고객센터

CMS는 최고의 보안이 필요로 합니다.

D DX관리자
2026.09.06 03:53(수정됨) 5 0 4

CMS 보안 강화를 위한 다계층 보안 구조 연구


초록

오늘날 콘텐츠 관리 시스템(CMS)은 단순히 웹사이트의 글을 작성하고 수정하는 프로그램을 넘어 회원 관리, 게시판, 파일 관리, 관리자 기능, 데이터베이스, 외부 서비스 연동 등 웹사이트의 거의 모든 기능을 담당하는 중요한 시스템으로 발전하였다. 이러한 발전은 사용자에게 편리함을 제공하는 반면, 시스템 내부에 존재하는 기능과 데이터의 종류가 많아지면서 보안을 위협하는 공격 지점 역시 증가시키는 결과를 가져왔다.

특히 CMS는 일반적인 웹사이트와 달리 관리자 기능과 사용자 기능이 함께 존재하고, 다양한 확장 기능을 추가할 수 있기 때문에 하나의 보안 문제가 전체 시스템으로 확대될 가능성이 있다. 사용자가 정상적으로 로그인하지 않았음에도 시스템이 로그인한 것으로 판단하거나, 다른 사용자의 정보를 열람할 수 있도록 허용하거나, 업로드한 파일을 통해 시스템 내부에 접근하거나, 정상적인 요청처럼 보이는 공격을 반복적으로 수행하는 등의 문제가 발생할 수 있다.

따라서 CMS의 보안은 특정한 한 가지 취약점을 제거하는 것만으로 완성될 수 없다. 인증, 권한, 세션, 요청, 입력값, 파일, 데이터베이스, 네트워크, 확장 기능 및 로그에 이르는 전체 구조를 서로 연결하여 보호해야 한다.

본 연구에서는 이러한 관점에서 CMS의 보안을 하나의 통합된 구조로 바라보고, DXCMS를 중심으로 다양한 공격 가능성을 분석하고 각 공격에 대한 방어 원칙을 정립한다. 또한 각각의 보안 기능이 독립적으로 존재하는 것이 아니라 서로의 부족한 부분을 보완하도록 설계되어야 함을 제시한다.



제1장 서론

웹사이트가 발전하면서 CMS는 인터넷 서비스의 중요한 기반이 되었다. 과거의 웹사이트가 몇 개의 정적인 페이지를 보여주는 수준이었다면, 현재의 CMS는 사용자가 글을 작성하고, 회원이 가입하고, 파일을 업로드하고, 관리자가 시스템을 관리하며, 수많은 데이터가 실시간으로 처리되는 복합적인 시스템으로 발전하였다.

이러한 시스템은 편리하지만 한 가지 중요한 문제를 가지고 있다. 기능이 많아질수록 보호해야 할 부분도 많아진다는 것이다.

예를 들어 집에 문 하나만 있는 경우에는 그 문을 튼튼하게 잠그는 것만으로도 어느 정도의 보호가 가능하다. 그러나 집 안에 여러 개의 문과 창문, 지하실, 창고가 존재한다면 현관문만 잠그는 것으로는 충분하지 않다. 어느 한 곳이라도 제대로 보호되지 않는다면 침입자는 가장 약한 곳을 찾아 들어올 수 있다.

CMS의 보안도 이와 같다.

로그인 기능이 안전하다고 해서 시스템 전체가 안전한 것은 아니다. 로그인 이후에 다른 사용자의 정보를 볼 수 있다면 문제가 발생한다. 관리자 권한이 안전하게 보호되더라도 파일 업로드 기능을 통해 시스템에 영향을 줄 수 있다면 역시 문제가 발생한다. 또한 모든 기능이 안전하더라도 공격자가 수많은 요청을 보내 시스템을 정상적으로 사용할 수 없게 만든다면 서비스의 안전성을 유지하기 어렵다.

따라서 진정한 CMS 보안은 하나의 기능을 강하게 만드는 것이 아니라 시스템 전체에 여러 겹의 보호 장치를 만드는 것에서 시작되어야 한다.



제2장 CMS에서 보안이 중요한 이유

CMS는 수많은 사용자와 관리자가 동시에 사용하는 시스템이다. 또한 사용자가 입력한 정보가 서버에서 처리되고 데이터베이스에 저장되며 다시 다른 사용자에게 전달된다.

이 과정에서 시스템은 항상 외부에서 전달되는 정보를 받아들인다.

문제는 서버가 받아들이는 정보가 항상 정상적인 정보라는 보장이 없다는 것이다.

사용자는 자신의 이름을 입력할 수도 있지만, 공격자는 시스템을 혼란시키기 위한 특별한 값을 입력할 수도 있다. 정상적인 사용자는 자신의 게시물을 수정하지만, 공격자는 다른 사람의 게시물을 수정하려고 할 수도 있다. 정상적인 사용자는 이미지를 업로드하지만, 공격자는 이미지처럼 보이는 악성 파일을 업로드하려 할 수도 있다.

따라서 CMS는 모든 외부 입력을 기본적으로 신뢰해서는 안 된다.

여기에서 중요한 보안 원칙이 등장한다.

“사용자가 입력한 정보는 정보일 뿐이며, 시스템의 권한이나 보안 상태를 결정해서는 안 된다.”

이 원칙은 CMS의 거의 모든 보안 문제와 연결된다.



제3장 인증과 권한의 차이

CMS 보안을 이해하기 위해 가장 먼저 구분해야 하는 것은 인증과 권한이다.

인증은 “당신이 누구인가?”를 확인하는 과정이다.

예를 들어 사용자가 아이디와 비밀번호를 입력했을 때 시스템이 이를 확인하고 해당 사용자가 실제로 그 계정의 소유자인지를 판단하는 것이 인증이다.

반면 권한은 “당신이 무엇을 할 수 있는가?”를 판단하는 과정이다.

일반 사용자가 로그인했다고 해서 관리자 페이지에 들어갈 수 있는 것은 아니다. 로그인에 성공했다는 사실과 관리자 권한을 가지고 있다는 사실은 서로 다른 문제이기 때문이다.

이 차이를 제대로 구분하지 않으면 인증을 통과한 사용자가 자신의 권한을 넘어 다른 사용자의 정보를 보거나 관리자 기능을 실행하는 문제가 발생할 수 있다.

따라서 안전한 CMS에서는 인증이 끝난 이후에도 권한을 다시 확인해야 한다.



제4장 인증 우회와 시스템의 신뢰

인증 우회는 CMS에서 매우 위험한 문제 중 하나이다.

정상적인 시스템에서는 사용자가 로그인하면 서버가 로그인 여부를 확인하고, 로그인하지 않은 사용자는 보호된 기능에 접근할 수 없어야 한다.

그러나 인증 과정에 문제가 있다면 공격자는 정상적인 로그인 절차를 거치지 않고 시스템에 접근할 가능성이 생긴다.

이러한 문제는 단순히 로그인 화면의 문제가 아니다.

인증은 시스템 전체가 사용자를 신뢰할 것인지 결정하는 출발점이기 때문이다.

따라서 인증을 담당하는 모든 과정은 서버에서 다시 확인되어야 하며, 사용자가 전달하는 값만으로 로그인 여부를 판단해서는 안 된다.



제5장 세션 탈취와 세션 고정

웹사이트에서는 사용자가 로그인할 때마다 매번 아이디와 비밀번호를 보내는 대신, 서버가 사용자의 로그인 상태를 일정한 식별 정보로 관리한다. 이것을 세션이라고 이해할 수 있다.

쉽게 말하면 세션은 서버가 “이 사용자는 이미 확인된 사용자입니다”라고 기억하는 방법이다.

그런데 공격자가 다른 사람의 세션 정보를 얻는다면 문제가 발생할 수 있다. 공격자는 비밀번호를 알지 못하더라도 이미 로그인한 사용자인 것처럼 행동할 수 있기 때문이다.

또한 로그인하기 전부터 공격자가 특정 세션 정보를 준비하고 사용자가 그 세션을 그대로 사용하도록 유도하는 공격도 가능하다. 이를 세션 고정 문제라고 한다.

따라서 안전한 시스템은 로그인 전후의 세션을 적절하게 변경하고, 세션의 수명을 관리하며, 안전한 쿠키 속성을 적용하고, 필요하지 않은 세션은 즉시 폐기해야 한다.



제6장 CSRF와 사용자의 의도

웹사이트는 사용자가 버튼을 누르거나 특정 기능을 요청했을 때 그 요청을 처리한다.

하지만 서버 입장에서는 요청이 정말 사용자가 의도해서 보낸 것인지 항상 알 수 있는 것은 아니다.

공격자가 사용자가 로그인한 상태라는 점을 이용하여 사용자가 의도하지 않은 요청을 보내도록 만들 수 있다.

이러한 문제를 방지하기 위해서는 중요한 요청에 대해 해당 요청이 실제 사이트에서 정상적으로 생성된 것인지 확인하는 별도의 검증 과정이 필요하다.

즉, 로그인했다는 이유만으로 모든 요청을 신뢰해서는 안 된다.



제7장 쿠키와 브라우저의 보호

세션과 밀접하게 연결되어 있는 것이 쿠키이다.

쿠키는 브라우저가 서버와 통신할 때 특정 정보를 기억하도록 사용하는 작은 데이터라고 이해할 수 있다.

하지만 쿠키가 잘못 설정되면 공격자가 세션 정보를 탈취하거나 악용할 가능성이 높아진다.

따라서 중요한 쿠키에는 적절한 보안 속성을 적용해야 한다.

브라우저가 자바스크립트에서 접근할 수 없도록 제한하는 방법, 안전한 연결에서만 전송되도록 하는 방법, 다른 사이트에서 함부로 전송되지 않도록 제한하는 방법 등이 필요하다.

이처럼 작은 쿠키 하나도 CMS 전체의 인증 보안과 연결되어 있다.



제8장 입력값과 데이터의 보호

CMS는 끊임없이 사용자 입력을 받는다.

회원가입 정보, 검색어, 게시글, 댓글, 파일 이름, 주소, URL 등 수많은 데이터가 시스템으로 들어온다.

이때 가장 위험한 생각은 “사용자가 입력한 값이 정상적인 값일 것이다”라고 가정하는 것이다.

안전한 시스템은 반대로 생각해야 한다.

“외부에서 들어오는 모든 정보는 검증이 필요하다.”

이 원칙은 데이터베이스 공격, 스크립트 공격, 파일 공격 등 다양한 보안 문제를 예방하는 기본 원칙이 된다.



제9장 SQL Injection

CMS는 많은 정보를 데이터베이스에 저장한다.

회원정보, 게시물, 주문정보, 설정정보 등 중요한 데이터 대부분이 데이터베이스에 존재한다.

따라서 데이터베이스에 전달되는 명령이 사용자의 입력에 의해 변형될 수 있다면 매우 심각한 문제가 발생할 수 있다.

SQL Injection은 이러한 문제를 이용하는 공격이다.

안전한 시스템은 사용자가 입력한 값을 데이터베이스 명령 자체로 해석하지 않도록 해야 한다.

즉, 데이터와 명령을 명확하게 분리해야 한다.



제10장 XSS

웹사이트는 사용자가 입력한 내용을 다시 화면에 보여주는 경우가 많다.

게시글이나 댓글이 대표적인 예이다.

문제는 사용자가 입력한 내용이 단순한 글이 아니라 웹브라우저에서 실행될 수 있는 코드로 처리되는 경우이다.

공격자는 이를 이용하여 다른 사용자의 브라우저에서 악성 동작을 실행시킬 수 있다.

따라서 사용자가 입력한 내용을 화면에 보여줄 때에는 단순히 저장할 때만 검사하는 것이 아니라 어떤 위치에서 어떻게 출력되는지를 고려하여 안전하게 처리해야 한다.



제11장 파일 업로드와 경로 조작

파일 업로드는 CMS에서 매우 편리한 기능이지만 동시에 위험한 기능이기도 하다.

사용자가 이미지를 올릴 수 있다는 것은 서버가 외부에서 전달된 파일을 받아 저장한다는 의미이기 때문이다.

공격자는 정상적인 이미지처럼 보이는 파일을 이용하여 시스템을 속이려고 할 수 있다.

따라서 파일의 이름뿐만 아니라 실제 파일의 형태와 저장 위치, 실행 가능 여부, 접근 방법 등을 종합적으로 검증해야 한다.

또한 사용자가 입력한 파일 경로를 그대로 사용해서는 안 된다.

파일 경로를 조작하여 원래 접근해서는 안 되는 다른 파일에 접근하려는 공격이 발생할 수 있기 때문이다.



제12장 SSRF와 서버의 신뢰 문제

서버가 외부 URL에 접속할 수 있는 기능 역시 주의해야 한다.

예를 들어 CMS가 외부 이미지를 가져오거나 다른 서비스와 통신하는 기능을 제공한다고 하자.

사용자가 원하는 주소를 입력할 수 있다면 공격자는 일반적인 인터넷 주소가 아니라 서버 내부에서만 접근할 수 있는 주소를 요청하도록 만들 수 있다.

이렇게 되면 공격자는 자신의 컴퓨터에서는 접근할 수 없는 내부 시스템을 서버를 통해 간접적으로 공격할 수 있다.

따라서 서버가 외부 주소에 접속하는 기능을 제공한다면 어디까지 접근을 허용할 것인지 명확한 정책이 필요하다.



제13장 요청의 신뢰성과 IP 주소

많은 시스템이 접속자의 IP 주소를 이용하여 보안을 강화한다.

그러나 서버가 프록시나 다른 중간 서버 뒤에 위치하는 경우 실제 사용자의 IP를 전달하기 위해 여러 HTTP 헤더가 사용될 수 있다.

이러한 값을 무조건 믿는다면 공격자가 자신의 IP 주소를 다른 주소인 것처럼 보이게 만들 가능성이 있다.

따라서 CMS는 어떤 프록시를 신뢰할 것인지 명확하게 정의하고, 신뢰할 수 있는 환경에서 전달된 정보만 실제 사용자 정보로 인정해야 한다.



제14장 Rate Limit과 자동화 공격

정상적인 사용자는 짧은 시간에 수천 번의 로그인 요청을 보내지 않는다.

그러나 공격자는 자동화된 프로그램을 이용하여 매우 빠른 속도로 요청을 반복할 수 있다.

따라서 중요한 기능에는 일정 시간 동안 허용되는 요청 수에 제한을 두어야 한다.

하지만 단순히 IP 주소만 기준으로 제한하면 우회가 가능할 수 있다.

따라서 사용자, 세션, IP, 요청의 종류, 시간, 비정상적인 행동 등을 종합적으로 고려하는 것이 더욱 효과적인 방어 방법이 될 수 있다.



제15장 Replay Attack

공격자가 정상적인 요청을 한 번 가로채고 그것을 나중에 그대로 다시 보내는 공격을 Replay Attack이라고 한다.

이 공격의 위험성은 공격자가 새로운 공격 방법을 만들 필요가 없다는 데 있다.

이미 정상적으로 승인된 요청을 반복해서 사용하는 것이다.

따라서 중요한 요청에는 단순히 “이 요청이 올바른 형식인가?”만 확인할 것이 아니라, 이 요청이 이전에 이미 사용된 요청인지, 현재 시점에서 유효한 요청인지를 판단할 수 있는 구조가 필요하다.



제16장 Plugin과 확장 기능의 보안

현대적인 CMS의 중요한 특징 가운데 하나는 기능을 추가할 수 있다는 것이다.

이러한 확장 기능은 CMS를 매우 강력하게 만들어주지만 동시에 새로운 공격 영역을 만든다.

특히 플러그인이 시스템의 핵심 기능과 연결될 수 있다면 플러그인 하나의 문제가 전체 시스템으로 확대될 수 있다.

따라서 플러그인은 단순히 “설치할 수 있는 프로그램”으로 취급해서는 안 된다.

CMS 내부에서 어디까지 접근할 수 있는지 명확한 경계를 설정해야 한다.



제17장 Plugin Isolation

서로 다른 플러그인이 존재한다고 해서 하나의 플러그인이 다른 플러그인의 내부 데이터나 기능을 자유롭게 조작할 수 있어서는 안 된다.

각 플러그인이 필요한 기능만 사용할 수 있도록 제한하고, 핵심 시스템에 접근하는 과정에서도 검증 절차를 거치도록 해야 한다.

이러한 구조가 플러그인 격리의 핵심이다.

쉽게 말하면 아파트의 각 세대에 문이 있는 것과 같다.

한 세대에 문제가 발생했다고 해서 다른 세대까지 자유롭게 들어갈 수 있어서는 안 된다.



제18장 Hook Abuse

Hook은 CMS의 기능을 확장하기 위한 중요한 장치이다.

그러나 핵심 기능이 실행되는 과정에 다른 프로그램이 개입할 수 있다는 것은 강력한 기능인 동시에 보안 위험이 될 수 있다.

따라서 Hook을 사용할 수 있는 범위와 실행 시점, 전달되는 데이터, 실행 주체 등을 적절하게 통제해야 한다.

확장성을 높이면서도 핵심 시스템의 통제권을 잃지 않는 것이 중요하다.



제19장 Extend Abuse

확장 기능 역시 동일한 원칙이 적용된다.

확장 기능이 CMS의 내부 동작을 변경할 수 있다면 잘못된 확장 기능 하나가 예상하지 못한 동작을 만들어낼 수 있다.

따라서 확장 기능에는 명확한 실행 범위와 접근 범위를 설정해야 하며, 핵심 기능에 영향을 미치는 작업은 별도의 검증 과정을 거치는 것이 바람직하다.



제20장 Log Injection과 보안 기록

보안에서 로그는 단순한 기록장이 아니다.

로그는 문제가 발생했을 때 무슨 일이 있었는지를 확인할 수 있는 중요한 증거가 된다.

그런데 공격자가 로그에 가짜 내용을 삽입할 수 있다면 관리자는 실제로 발생하지 않은 사건을 실제 사건으로 오해하거나, 반대로 실제 공격 흔적을 찾지 못할 수도 있다.

따라서 로그 역시 신뢰할 수 없는 데이터를 안전하게 처리해야 한다.

특히 줄바꿈이나 특수문자를 이용하여 가짜 로그를 만들어내는 것을 방지하고, 보안 이벤트와 일반적인 시스템 기록을 구분해야 한다.

또한 중요한 로그는 누가 만들었는지, 언제 발생했는지, 어떤 요청과 관련되어 있는지 추적할 수 있어야 한다.



제21장 다계층 보안의 필요성

앞에서 살펴본 각각의 보안 문제는 서로 독립적으로 존재하지 않는다.

하나의 공격이 여러 보안 기능을 차례로 공격할 수도 있기 때문이다.

예를 들어 공격자가 로그인 기능을 공격하고, 세션을 확보한 다음, 권한 검사를 우회하여 관리자 기능에 접근하고, 마지막으로 플러그인을 이용하여 추가적인 공격을 수행할 수도 있다.

이러한 상황에서 한 가지 보안 장치만으로는 공격을 막기 어렵다.

따라서 CMS는 여러 단계에서 공격을 차단해야 한다.

첫 번째 방어선에서 공격을 발견하지 못하더라도 두 번째 방어선에서 차단할 수 있어야 하고, 그것마저 통과하더라도 중요한 데이터에 접근하기 전에 다시 한 번 검증해야 한다.

이것이 다계층 보안의 핵심이다.



제22장 DXCMS 보안 강화의 기본 원칙

DXCMS의 보안 강화는 특정한 보안 기능을 추가하는 것만을 의미하지 않는다.

중요한 것은 시스템의 모든 과정에서 “이 요청을 믿어도 되는가?”라는 질문을 반복하는 것이다.

사용자가 누구인지 확인하고, 그 사용자가 무엇을 할 수 있는지 확인하며, 요청이 정상적인 요청인지 확인하고, 전달된 데이터가 안전한지 확인하고, 파일과 데이터베이스에 접근할 때 다시 한 번 권한을 확인해야 한다.

그리고 시스템 내부의 확장 기능 역시 동일한 보안 원칙을 적용받아야 한다.

마지막으로 문제가 발생했을 때 그 흔적을 정확하게 확인할 수 있도록 로그를 보호해야 한다.



제23장 결론

CMS는 웹사이트를 운영하기 위한 단순한 프로그램이 아니라 사용자, 관리자, 데이터, 파일, 네트워크 및 다양한 확장 기능이 서로 연결된 하나의 복합적인 시스템이다.

따라서 CMS의 보안 역시 특정한 취약점 하나를 제거하는 방식으로는 완성될 수 없다.

인증이 안전해야 하며, 인증 이후의 권한도 안전해야 한다. 세션은 탈취와 고정을 방지해야 하며, 쿠키 역시 안전하게 관리되어야 한다. 사용자의 요청과 입력값은 신뢰하지 않고 검증해야 하며, 데이터베이스와 파일 시스템 역시 독립적으로 보호해야 한다.

또한 외부 네트워크와 통신하는 기능, 자동화된 공격을 제한하는 기능, 플러그인과 Hook 및 Extend와 같은 확장 기능도 보안 경계 안에서 관리해야 한다.

무엇보다 중요한 것은 각각의 보안 기능을 따로 존재하게 만드는 것이 아니라 서로 연결하는 것이다.

인증을 통과했다고 모든 것을 허용해서는 안 되고, 권한을 확인했다고 모든 데이터를 신뢰해서도 안 되며, 정상적인 요청처럼 보인다고 해서 반드시 정상적인 요청이라고 판단해서도 안 된다.

안전한 CMS란 공격이 전혀 발생하지 않는 시스템을 의미하는 것이 아니다.

공격이 발생하더라도 시스템의 중요한 영역까지 도달하지 못하도록 여러 단계에서 차단하고, 혹시 일부 방어가 실패하더라도 다른 방어 계층이 피해를 제한하며, 문제가 발생한 경우 그 흔적을 정확하게 확인하고 대응할 수 있는 시스템을 의미한다.

따라서 DXCMS의 보안 강화는 단순한 취약점 제거가 아니라 CMS 전체를 여러 겹의 보안 경계로 보호하는 구조를 만드는 과정이라고 할 수 있다.

결국 최고의 CMS 보안은 하나의 강력한 잠금장치를 만드는 것이 아니라, 문을 잠그고, 창문을 확인하고, 출입자를 확인하고, 방마다 접근 권한을 구분하고, 이상한 행동을 감시하며, 문제가 발생했을 때 그 흔적까지 보존하는 것에 가깝다.

그리고 이러한 원칙이 CMS의 처음부터 끝까지 일관되게 적용될 때 비로소 CMS는 기능뿐만 아니라 신뢰할 수 있는 시스템으로 발전할 수 있다.

댓글4

안졸리니졸리 2026.09.06 12:47
홈페이 만들면서 보안에 대해서는 안심해도 될듯합니다
^^
다만 보안이 너무 많다보니 홈페이지에서는 굳이 안해도 되는것과 인트라넷 운영시 꼭 해야되는 보안에  대해서 구분이되면 좋을듯합니다
저처럼 보안이 뭔지 잘 모르는 입장에서는 오히려 어떻게 설치해야하나 걱정이 될것도 같습니다
^____^
D
DX관리자 2026.09.06 12:50
네 맞는 말씀입니다.
지금은 SEO최적화를 기준으로 개발되고 있습니다.
즉, 일반 사용자도 쓸 수 있게 만들었습니다.
다 설치해도 상관없습니다. 다만, 제가 검토를 더 한 다음 설치를 하세요.
디자인원엑스에 모두 적용된 상태입니다.

누락 부분과 누수 부분도 좀 정리해야 되서요 ^^ 프로그램도 누수가 있네요 ㅎㅎㅎ
안졸리니졸리 2026.09.06 12:56
아 그렇군요^^
괜히 걱정했네요
그냥 다 설치하면 알아서 보안이 되는거고 다만 충돌,  누락,  정리등이 되어서 완벽해지고 관리자님이 설치해도 됩니다  하시면 그때가서 모두 설치하면 되겠네요
감사합니다  ^^
D
DX관리자 2026.09.06 13:07
네 맞습니다.
다만 본 플러그인 후 패치를 다운받는 번거로움은 있을 것 같습니다. ^^;;
로그인 후 댓글을 작성할 수 있습니다.
번호 제목 작성자 날짜 조회
517
DX관리자
09.05 25
DX관리자 · 25
514
DX관리자
09.05 40
DX관리자 · 40
509
안졸리니졸리
09.04 27
안졸리니졸리 · 27
508
DX관리자
09.04 23
DX관리자 · 23
507
안졸리니졸리
09.03 50
안졸리니졸리 · 50
45
전체 회원
1,399
전체 게시글
2,751
전체 댓글
27
오늘 방문
53,636
전체 방문
0
현재 접속
인기글 7일 이내
최신글
최신댓글
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록
목록