[WP] 워드프레스 XML-RPC 취약점과 비활성화 해야 하는 이유 2가지

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

워드프레스 xmlrpc.php는 보안 문제가 발생합니다. xmlrpc.php 파일을 이용한 워드프레스 사이트에 대한 무차별 대입 공격이 문제입니다.

xmlrpc.php 취약점으로 많은 워드프레스 유저에게 알려진 문제이기도 합니다. ‘XML-RPC‘의 기본 기능 및 활용성과 문제가 되는 이유에 대해 알아 보겠습니다.

1. 워드프레스 xmlrpc.php란?

xmlrpc.php 파일은 HTTP가 전송 메커니즘으로 작동합니다. XML이 인코딩 메커니즘으로 작동하여 데이터를 전송할 수 있는 WordPress의 기능입니다. 다른 시스템(다른 블로그 or 앱)과 통신하기 위한 작업을 처리하기 위해 만들어진 파일인 것이지요.

컴퓨터가 근처에 없을 때 모바일 장치에서 사이트에 글을 게시하기 위해 'xmlrpc.php'의 활성화 된 원격 엑세스 기능을 사용할 수 있습니다. 인터넷이 느리던 시절 워드프레스 사이트에 게시글을 작성하는데는 시간이 걸렸습니다.
이와 같은 이유로 오프라인 상태의 앱 등에서 글을 작성 후 글을 보내는 것이 XML-RPC의 목적이었던 것입니다. 다른 장치에서 로그인 하는 방법은 편리했지만 현재는 거의 사용하지 않는 기능이 되었습니다.
워드프레스

2. xmlrpc.php 취약점

XML RPC는 어떤 취약점을 가지고 있는지 알아 보겠습니다.

무차별 대입 공격으로 워드프레스 admin으로 추정되는 아이디로 로그인 시도를 합니다.. 워드프레스 관리자 페이지 주소가 정해져 있기에 수백 가지 서로 다른 암호를 대입해 사이트의 해킹하려고 할 수 있습니다.

핑백을 이용한 DDoS 공격을 시도하여 사이트를 오프라인 상태로 마비시킬 수 있습니다. xmlrpc.php의 기능이 해커에게 DDoS 공격을 할 수 있는 경유지로 이용되며 사이트 속도에 영향을 주기 때문에 SEO에 악 영향을 주게 됩니다.

3. 워드프레스 XML-RPC 비활성화 방법

비활성화 하는 방법은 크게 두 가지가 있습니다. 제트팩과 같은 일부 플러그인은 xmlrpc의 기능을 사용하기 때문에 비활성화 할 경우 플러그인이 작동하지 않아 사이트의 특정 기능이 작동하지 않을 수 있습니다.

3.1 수동으로 비활성화 하기

.htaccess 파일에서 비활성화 하는 방법입니다.

# BEGIN protect xmlrpc.php
<files xmlrpc.php>
order allow,deny
deny from all
</files>
# END protect xmlrpc.php

차일드 테마 function.php 파일에 적용하는 방법입니다.

add_filter('xmlrpc_enabled', false);

아파치 서버의 httpd.conf에서 비활성화 하는 방법입니다.

<Files xmlrpc.php>
Require all denied
#ErrorDocument 403 /403.html
</Files>

3.2 워드프레스 플러그인 사용

xmlrpc.php를 차단하는 플러그인을 사용할 수 있습니다. 워드프레스 대시보드에서 [플러그인] > [추가]로 이동한 후 ‘XML-RPC-API’를 검색하면 차단할 수 있는 많은 플러그인을 확인할 수 있습니다.

거의 단일 기능만 제공하는 플러그인을 사용하기 보단 보안 플러그인을 사용하는 것이 더 나은 선택일 수 있습니다.
‘wordfence’ or ‘ithemes security’와 같은 보안 플러그인의 기능에는 xmlrpc.php를 비활성화 하는 기능이 포함되어 있습니다.

워드프레스 xmlrpc.php 취약점-XML-RPC

4. 결론

xmlrpc 취약점으로 인해 xmlrpc의 원격 기능은 거의 사용되지 않으며, WordPress 사이트 소유자에게 장점 보다는 단점이 많습니다. 안전한 사이트 유지를 위해 Jetpack 플러그인과 같이 xmlrpc.php를 사용하는 것이 아닌 경우 비활성화 하는 것이 정답입니다.

시간이 지나면 워드프레스에서 xmlrpc.php의 기능을 삭제 할지도 모릅니다. 거의 쓸모 없는 기능이기 때문입니다. 보안이 강화된 새로운 워드프레스 API에 xmlrpc의 기능이 통합되는 것도 예상할 수 있습니다.

워드프레스 작업

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

Similar Posts

  • 리눅스 서버에 워드프레스 설치하는 두 가지 방법: FTP vs wget

    워드프레스는 대표적인 CMS로, 리눅스 서버 환경에서도 수동 설치 방식으로 손쉽게 구축할 수 있습니다. 이 문서에서는 워드프레스 설치를 두 가지 방법, FTP를 이용한 수동 업로드 방식과 wget 명령어를 활용한 설치 방식을 다룹니다. 서버 환경과 사용자의 숙련도에 따라 원하는 방식을 선택하여 진행하시면 됩니다. ※ 이 문서는 호스팅 계정, 데이터베이스 계정, SSL 설정이 완료된 상태를 기준으로…

  • 워드프레스 DB Collation: utf8mb4_unicode_520_ci

    워드프레스 전용 서버를 구축하기 위한 준비를 APM 설치 후 테스트 도메인으로 워드프레스를 설치했다. 설치 후 데이터베이스를 확인해 보니 워드프레스 DB Collation이 utf8mb4_general_ci가 아닌 utf8mb4_unicode_520_ci로 확인되었다. 워드프레스 utf8mb4_unicode_520_ci가 표준이었나 생각하다가 구글링 후 워드프레스 utf8mb4_unicode_520_ci가 표준이라는 것을 확인했다. 예전에 시간적 여유가 있을 때 utf8mb4_general_ci를 사용했었고 그때는 utf8mb4_general_ci가 표준이었는지 모르겠지만 지금 생각해보니 예전에도 표준 정렬은 unicode_ci를…

  • 워드프레스 ads.txt 설정: 애드센스 경고 해결

    구글 애드센스 승인을 받았다면 ads.txt 파일을 업로드해야 합니다. 이 파일이 없으면 애드센스 알림판에 “수익 손실 위험” 경고가 표시되고, Ads.txt 상태는 “찾을 수 없음”으로 남습니다. 워드프레스 ads.txt 추가는 이 경고를 없애는 작업입니다. 실제로는 한 줄짜리 텍스트 파일 하나를 만들어 사이트 루트에 올리면 끝납니다. 수익 손실 위험 – 수익에 심각한 영향을 미치지 않도록 사이트에서 발견된…

  • [WP] 워드프레스 테마 삭제 방법 2가지

    워드프레스를 초기 설치 or 이용 중 테마를 변경하게 되면 기존 비활성화 된 워드프레스 테마 삭제를 해야 하는 경우가 있습니다. 1. FTP로 or cPanel 워드프레스 테마 삭제하기 첫 번째는 FTP 또는 cPanel에서 폴더로 이동해서 삭제하는 방법입니다. 여기에선 cPanel의 [파일] > [파일 매니져] 경로로 접속해서 삭제하는 경우입니다. FTP 및 cPanel로 접속해도 경로는 동일합니다. 물론 SSH로…

  • 워드프레스 관리자 페이지 접속 및 개요

    워드프레스 홈페이지를 만들기 위해 도메인을 구매하고 호스팅 서비스를 결제 후 워드프레스 설치(cPanel 워드프레스 설치)까지 마무리 되었다면 워드프레스 관리자 페이지 메뉴에 접속하게 됩니다. WP 관리자, WP 관리자 패널, WP 관리자 대시보드 등으로 부르는 워드프레스 관리자 대시보드는 워드프레스 웹 사이트의 제어판입니다. 워드프레스를 이용한 전자상거래, 블로그, 회사 소개 사이트 등 다양한 용도로 활용하는 워드프레스 CMS에서 제품을…

  • Ghost CMS에 cPanel Nodejs 설치 및 관리 방법

    Node.js는 Chrome V8JavaScript 엔진 기반 JavaScript 런타임입니다. 보통 기존 JavaScript보다 Node.js를 사용할 경우 웹 사이트의 속도가 빠른 것으로 생각할 수 있으며, 사용 중인 호스팅에서 cPanel Nodejs를 지원할 경우 설정하는 방법에 대해 알아 보겠습니다. Node.js는 오픈 소스 Javascript 런타임 환경으로, 웹 호스팅 서버에서 클라이언트의 웹 브라우저 대신 Javascript 코드를 실행시키기 위해 사용됩니다. Node.js는 웹 페이지의…