WordPress 웹사이트가 방문자를 알 수 없는 악성 사이트로 강제로 이동시키고 있나요? 그렇다면 사이트가 해킹당했을 가능성이 매우 높습니다. 워드프레스 리디렉션 해킹은 해커들이 가장 즐겨 사용하는 공격 기법 중 하나인데, 그 이유는 아래에서 자세히 설명하겠습니다.
워드프레스 리디렉션 해킹의 변형 유형과 증상
'워드프레스 해킹 리디렉션'은 의심스러운 도메인으로 연결되는 새로운 유형의 해킹이 아닙니다. 수년에 걸쳐 해커들은 이 악성 코드를 더욱 교묘하게 발전시켜 탐지하기 어렵게 만들어 왔습니다. 리디렉션 해킹의 주요 변형 유형은 다음과 같습니다.
| 해킹 유형 | 증상 |
|---|---|
| 클래식 리디렉션 해킹 | 가장 오래된 형태의 리디렉션 해킹입니다. 누군가 웹사이트를 방문할 때마다 의약품 판매 사이트나 성인 사이트 등 의심스러운 링크로 강제 이동됩니다. |
| 검색 결과를 통한 리디렉션 | 브라우저에 URL을 직접 입력하면 사이트가 정상적으로 열립니다. 하지만 Google 검색 결과를 통해 접속하면 악성 웹사이트로 리디렉션됩니다. |
| 기기별 리디렉션 | 모바일 기기에서 열었을 때만 또는 데스크톱에서 열었을 때만 리디렉션됩니다. 존재하는 멀웨어의 종류에 따라 달라집니다. |
| 푸시 알림 해킹 | 최근 몇 달간 확인된 유형으로, 해커가 방문자에게 브라우저 푸시 알림을 표시합니다. 이러한 알림은 대체로 성인 사이트로 연결됩니다. |
| 지역별 리디렉션 | 일부 방문자는 리디렉션을 경험하지만 다른 방문자는 정상적인 페이지를 보게 됩니다. 해커가 특정 지역에서만 작동하도록 멀웨어를 프로그래밍했기 때문이며, 리디렉션되는 목적지 역시 지역별로 조정될 수 있습니다. |
워드프레스 해킹 리디렉션의 주요 증상
- 스팸 또는 악성 웹사이트로의 명백한 리디렉션
- Google 검색 결과에 내 사이트와 관련된 스팸 링크가 가득함
- 사이트에서 출처를 알 수 없는 푸시 알림 발생
- index.php 파일에 악성 자바스크립트 코드 존재
- .htaccess 파일 내 식별되지 않은 코드 발견
- 워드프레스 사이트가 인증(human verification) 화면으로 리디렉션됨
- 서버에 무의미한 이름의 알 수 없는 파일 존재
- 수상한 bit.ly 링크: 해커들이 최근 사용하는 새로운 기법입니다. 실제 악성 URL을 단축한 bit.ly 코드를 사이트에 삽입하여 리디렉션을 유발합니다. 보안 스캐너가 이를 탐지하지 못하는 경우가 많습니다.
현재 travelinskydream[.]ga, track.lowerskyactive 같은 링크나 Outlook 피싱 페이지로 리디렉션되는 사례들이 보고되고 있습니다.
워드프레스 스팸 리디렉션: 어떻게 감염되었는가?
솔직히 말해, 해커가 이러한 해킹을 실행할 수 있는 경로는 수십 가지에 이릅니다. 대표적인 감염 경로는 다음과 같습니다.
최근 사례 – digestcolect[.]com으로 리디렉션되는 워드프레스 사이트
플러그인 취약점(XSS) 악용
워드프레스 플러그인의 저장형 크로스 사이트 스크립팅(Stored XSS)과 같은 취약점을 통해 해커는 사이트에 악성 자바스크립트 코드를 삽입할 수 있습니다. 해커가 특정 플러그인의 XSS 취약점을 발견하면 해당 플러그인을 사용하는 모든 사이트를 찾아 공격을 시도합니다. WordPress Live Chat Support와 Elementor Pro 같은 플러그인이 이런 리디렉션 해킹의 표적이 된 적이 있습니다.
.htaccess 또는 wp-config.php 파일에 코드 삽입
무료 보안 플러그인으로 멀웨어 검사를 할 때 .htaccess와 wp-config.php 파일은 놓치기 쉽습니다. 의약품 사이트로 리디렉션되는 워드프레스 사이트를 분석한 결과, 일반 코드처럼 위장한 악성 코드가 .htaccess 파일에 숨겨져 있는 것을 발견했습니다. 해커는 파일 오른쪽 끝까지 스크롤해야만 발견할 수 있는 위치에 코드를 숨겨두기 때문에 탐지와 제거가 더욱 어렵습니다. 이 두 파일 외에도 functions.php, header.php, footer.php, wp-load.php, wp-settings.php 등 모든 핵심 파일도 반드시 점검해야 합니다.
실제 고객 사이트의 멀웨어 검사 과정에서 .htaccess 파일에 숨겨진 아래와 같은 코드를 발견했습니다. 이 코드는 방문자를 스팸성·위험한 의약품 사이트로 리디렉션합니다.
사이트 헤더에 자바스크립트 삽입
일부 플러그인과 테마는 <head> 태그 안이나 </body> 태그 직전에 코드를 추가하는 기능을 제공합니다. Google Analytics, Facebook, Google Search Console 등의 JS 코드를 넣을 때 유용하지만, 해커들이 이 기능을 악용해 리디렉션을 실행하기도 합니다.
검색으로 찾기 어렵게 만들기 위해 악성 사이트 URL은 문자열 형식에서 해당 문자 코드로 변환되곤 합니다. 변환된 코드는 다음과 같은 모습입니다.
wp-admin에 유령 관리자 계정 생성
플러그인의 권한 상승(privilege escalation) 취약점으로 인해 해커가 사이트에 유령 관리자 계정을 만들 수 있는 경우가 있습니다. 해커가 관리자 권한을 얻으면 사이트에 대한 전체 접근 권한을 확보한 뒤 백도어와 리디렉션 코드를 삽입합니다.
워드프레스 리디렉션 감염 위치 확인
핵심 파일 및 테마 파일
공격자는 워드프레스의 핵심 파일 중 어느 곳에든 코드를 삽입해 사이트를 감염시킬 수 있습니다. 다음 파일에서 악성 코드를 확인하세요.
- index.php
- wp-config.php
- wp-settings.php
- wp-load.php
- .htaccess
- 테마 파일 (wp-content/themes/{테마명}/)
- footer.php
- header.php
- functions.php
모든 자바스크립트(.js) 파일
리디렉션 멀웨어의 일부 변종은 사이트의 모든 자바스크립트 파일을 감염시킵니다. wp-include 폴더, 플러그인, 테마 폴더의 JS 파일이 포함되며, 동일한 난독화된 코드가 각 JS 파일 상단에 추가됩니다.
워드프레스 데이터베이스
wp_posts와 wp_options 테이블은 워드프레스 데이터베이스에서 가장 공격 빈도가 높은 테이블입니다. 스팸 사이트 링크와 JS 코드가 게시물이나 페이지마다 발견되는 경우가 많습니다.
가짜 favicon.ico 파일
일부 멀웨어는 서버에 가짜 favicon.ico 또는 임의의 .ico 파일을 생성하고 그 안에 악성 PHP 코드를 담습니다. 이 악성 PHP 코드는 URL 삽입, 관리자 계정 생성, 스파이웨어/트로이목마 설치, 피싱 페이지 제작 등 위험한 작업을 수행하는 것으로 알려져 있습니다.
관련 가이드 – 워드프레스 해킹 제거
이러한 파일은 진짜 아이콘 이미지 코드 대신 악성 코드를 포함하며 서버를 스팸 파일로 오염시킵니다. 실제 발견된 코드 예시는 다음과 같습니다.
@include "\x2f/sg\x62/fa\x76ico\x6e_54\x656ed\x2eico";
워드프레스 리디렉션 멀웨어 스캔 방법
멀웨어 스캔을 시작하려면 먼저 사이트가 어떤 유형의 리디렉션 해킹에 노출되었는지 파악해야 합니다. 그다음 악성 코드를 실제로 찾아 사이트에서 제거해야 합니다.
자동화된 멀웨어 스캔 솔루션을 사용하거나 수동으로 진행할 수 있습니다. 사이트에서 악성 리디렉션을 제거하고 리디렉션 해킹을 예방하기 위한 단계는 다음과 같습니다.
1. 워드프레스 멀웨어 스캐너 활용
기술에 익숙하지 않은 워드프레스 사용자라면 Astra 같은 멀웨어 제거 솔루션이 사이트를 망가뜨리지 않고 리디렉션 문제를 가장 빠르고 쉽게 찾아 해결할 수 있는 방법입니다.
직접 사이트를 스캔하고 리디렉션 해킹 유형에 맞는 해결책을 찾고 싶다면 아래 단계를 하나씩 따르세요.
2. 온라인 보안 스캔 도구로 점검
1차 점검으로 Astra의 무료 Security Scanner와 Google Safe Browsing 같은 도구로 사이트를 스캔할 수 있습니다. 사이트에 블랙리스트에 등록된 URL로 연결되는 링크가 있다면 이 도구들이 경고를 표시합니다. 또한 사이트에서 발견된 일부 악성 코드 조각 목록(전체 목록은 아님)을 받을 수 있습니다. 상세한 스캔을 원한다면 모든 웹사이트 파일을 수동으로 검사하거나 전문 멀웨어 스캔을 받아야 합니다.
3. 워드프레스 핵심 파일 무결성 검증
핵심 워드프레스 파일에 악성 코드가 삽입되었는지 확인하려면 WP-CLI로 파일 무결성 검사를 실행하세요. 절차는 다음과 같습니다.
- SSH로 서버에 로그인
- WP-CLI 설치
- 워드프레스가 설치된 디렉터리로 이동
cd /var/www/html/ - 현재 워드프레스 버전 확인
wp core version - 원본 워드프레스 릴리스와 체크섬이 일치하지 않는 파일 목록 조회
wp core verify-checksums - 출력 결과를 확인합니다. 일부 경고는 괜찮지만, 핵심 파일의 체크섬이 일치하지 않는다면 핵심 파일 교체나 백업 복원이 필요할 수 있습니다.
원본 CMS 파일과 실제 파일의 차이를 시각적으로 확인하려면 Astra의 핵심 파일 무결성 스캔을 이용할 수 있습니다.
4. 숨겨진 백도어 및 리디렉션 코드 제거
해커는 보통 사이트에 재침입할 수 있는 통로를 남깁니다. 백도어는 정상 파일과 이름이 비슷한 파일에 숨겨져 있는 경우가 많습니다.
eval, base64_decode, gzinflate, preg_replace, str_rot13 등 흔히 사용되는 악성 PHP 함수를 사이트 파일에서 수동으로 검색할 수 있습니다. 단, 이 함수들은 워드프레스 플러그인이 정상적인 용도로도 사용하므로, 실수로 사이트를 망가뜨리지 않도록 반드시 백업을 먼저 만들거나 전문가의 도움을 받으세요.
5. 신규 관리자 계정 확인
워드프레스 관리자 영역에 로그인하여 유령 계정이나 알 수 없는 관리자 계정이 추가되었는지 확인하세요. 해커는 리디렉션 해킹을 제거한 후에도 사이트에 접근권을 유지하고 재감염시키기 위해 자신을 관리자로 등록하는 경우가 많습니다.
이런 계정을 발견하면 즉시 삭제하고, 다른 모든 관리자 계정의 비밀번호를 변경하세요.
아울러 사이트 운영 정책에 따라 '누구나 회원으로 등록할 수 있음(Anyone can register)' 옵션이 비활성화되어 있고, '새 사용자 기본 역할(New User Default Role)'이 구독자(Subscriber)로 설정되어 있는지도 확인하세요.
6. 플러그인 및 테마 파일 검사
가짜·취약 플러그인 확인
왼쪽 메뉴에서 '플러그인'을 클릭해 설치된 모든 플러그인 목록을 확인하세요. 알 수 없는 플러그인이 있다면 삭제합니다.
업데이트가 가능한 플러그인이라면 WordPress 플러그인 변경 로그(changelog)에서 최근 보안 이슈가 보고되었는지 확인하세요. 또한 위 4단계에서 설명한 방법대로 플러그인 파일에 백도어와 리디렉션 코드가 있는지 검사합니다.
diff checker 같은 온라인 도구를 활용해 설치된 플러그인 파일을 원본과 비교할 수 있습니다. WordPress 플러그인 저장소에서 동일한 플러그인을 다운로드한 뒤 설치된 버전과 대조하면 됩니다.
다만 이 방법에는 한계가 있습니다. 여러 플러그인을 사용하는 경우 모든 파일을 일일이 비교하기 어렵고, 리디렉션 해킹의 원인이 제로데이(zero-day) 취약점이라면 플러그인 업데이트가 아직 배포되지 않았을 가능성도 있습니다.
7. 데이터베이스에서 악성 링크 검색
백도어를 찾을 때처럼 phpMyAdmin이나 Adminer 같은 데이터베이스 관리 도구에 로그인해 사이트가 사용하는 데이터베이스를 선택한 후, <script>, eval, base64_decode, gzinflate, preg_replace, str_replace 같은 키워드를 검색하세요.
변경 전에 각별히 주의해야 합니다. 공백 하나 추가만으로도 사이트가 로딩되지 않거나 정상 작동하지 않을 수 있습니다.
워드프레스 해킹 리디렉션: 사이트 복구 방법
사이트를 스캔해 악성 코드를 확인했다면 이제 제거 단계입니다.
- 감염되었더라도 웹사이트 파일과 데이터베이스를 먼저 백업합니다.
- 서버에 로그인해 악성 파일을 확인하고 격리합니다. cPanel의 파일 관리자나 (s)FTP, SSH 등 전통적인 방식을 사용할 수 있습니다.
- 이전 단계에서 표시된 파일을 편집해 멀웨어 부분을 찾아 제거합니다. 파일 전체가 악성이라면 파일을 통째로 삭제해도 됩니다.
- 동일한 악성 코드가 여러 파일에 걸쳐 발견된 경우 SSH에서 find와 sed 리눅스 명령어를 사용할 수 있습니다. 변경 사항을 되돌릴 수 없으므로 사용 시 각별히 주의하세요.
예시:find /path/to/your/folder -name “.js” -exec sed -i “s//ReplaceWithMalwareCode*//n&/g” ‘{}’ ; - 모든 파일과 데이터베이스 정리가 끝나면 웹사이트 캐시를 삭제하는 것을 잊지 마세요.
- 시크릿 모드(개인 정보 보호 모드)로 웹사이트에 접속해 더 이상 리디렉션이 발생하지 않는지 확인합니다.
리디렉션 해킹을 사전에 예방하고 싶다면?
Astra의 수상 경력에 빛나는 웹사이트 보호 솔루션(웹 방화벽 + 멀웨어 스캐너)을 사용하면 사이트가 철저히 스캔되며, 워드프레스 리디렉션 해킹은 물론 백도어, 바이러스, 트로이목마 등으로부터도 안전하게 보호됩니다.
리디렉션 멀웨어가 매우 만연해 있기 때문에 저희는 리디렉션 해킹 해결 방법을 담은 상세한 단계별 영상도 제작했습니다. 해커들이 보안 업체의 레이더에 걸리지 않으려고 공격 기법을 계속 진화시키지만, 근본 원리는 동일합니다.
함께 읽으면 좋은 글 – 워드프레스 사이트에서 원치 않는 팝업 제거 방법
결론: 워드프레스 악성 리디렉션으로부터 안전해지기
해커들은 세상에 알려지지 않은 취약점을 악용하고 다양한 익스플로잇을 결합해 공격 기법을 끊임없이 진화시키고 있습니다. 해킹 제거는 어디까지나 한 부분일 뿐, 해킹당하지 않는 사이트를 유지하려면 Astra 보안 솔루션 같은 보다 영구적인 대책이 필요합니다.