I.WordPress - Hệ Thống Quản Trị Nội Dung Phổ Biến Toàn Cầu

Giới Thiệu

WordPress là một phần mềm mã nguồn mở được phát hành vào năm 2003 và là một trong những hệ thống quản trị nội dung (CMS) phổ biến nhất thế giới. Ban đầu được thiết kế như một nền tảng viết blog, nó đã phát triển qua nhiều năm thành một công cụ tạo và quản lý website toàn diện. Giao diện thân thiện với người dùng và cộng đồng plugin/hỗ trợ rộng lớn cho phép cả những người dùng không có kiến thức kỹ thuật cũng có thể tạo ra các website chuyên nghiệp. Ngày nay, WordPress cung cấp nền tảng cho hàng triệu website trên toàn thế giới.

Độ Phổ Biến và Mức Độ Sử Dụng Rộng Rãi Của WordPress

Có một số lý do chính giải thích tại sao WordPress lại phổ biến đến vậy:

Dễ Sử Dụng: Giao diện đơn giản và trực quan giúp quá trình thiết lập và quản lý site trở nên dễ dàng hơn rất nhiều.

Tính Linh Hoạt: Với hàng ngàn theme và plugin, nó cho phép người dùng tùy chỉnh site của họ để đáp ứng nhu cầu và sở thích cá nhân.

Hỗ Trợ Cộng Đồng: WordPress có một cộng đồng người dùng và nhà phát triển lớn, những người liên tục phát triển các tính năng mới, cập nhật bảo mật và cung cấp giải pháp nhanh chóng cho các vấn đề của người dùng.

Thân Thiện Với SEO: WordPress được tối ưu hóa cho các công cụ tìm kiếm và có thể được hỗ trợ với nhiều plugin SEO khác nhau.

Một Số Website Nổi Tiếng Sử Dụng WordPress

Để chứng minh sức mạnh và tính linh hoạt của WordPress, đáng chú ý là một số website nổi tiếng trên toàn thế giới sử dụng WordPress:

Đại Học Harvard

Website chính thức của Đại học Harvard, một trong những trường đại học danh tiếng nhất thế giới, được quản lý bằng WordPress.
Here

Rafael Nadal

Website chính thức của tay vợt tennis nổi tiếng Rafael Nadal cũng được xây dựng trên nền tảng WordPress.
Here

TED Blog

Blog chính thức của TED, tổ chức đứng sau các buổi nói chuyện và sự kiện TED, chạy trên WordPress.
Here

Nhà Trắng

Website chính thức của Nhà Trắng sử dụng WordPress để đáp ứng các yêu cầu về bảo mật và tính linh hoạt.
Here

NGINX

Website chính thức của máy chủ web hiệu suất cao và máy chủ proxy ngược NGINX cũng sử dụng WordPress.
Here

NASA

Website chính thức của Cơ quan Hàng không và Vũ trụ Hoa Kỳ (NASA) sử dụng WordPress để quản lý lượng lớn dữ liệu và lưu lượng truy cập.
Here

Những ví dụ này chứng minh rằng WordPress là một CMS mạnh mẽ được ưa chuộng không chỉ cho các doanh nghiệp nhỏ hoặc blog cá nhân mà còn cho các tổ chức và cơ quan lớn.

Tổng Quan Về Lỗ Hổng Bảo Mật WordPress

Việc sử dụng rộng rãi và độ phổ biến của WordPress khiến nó trở thành mục tiêu hấp dẫn cho những kẻ tấn công trong lĩnh vực kỹ thuật số. Do đó, bảo mật các site WordPress là ưu tiên hàng đầu cho chủ sở hữu và quản trị viên site.

Các lỗ hổng bảo mật WordPress thường được tìm thấy trong các lĩnh vực sau:

Theme và Plugin

Các theme và plugin được phát triển bởi bên thứ ba có thể chứa các lỗ hổng bảo mật, cho phép kẻ tấn công xâm nhập vào site và thực hiện các hoạt động độc hại.

Cấu Hình Sai

Quyền tệp được cấu hình không chính xác, tài khoản quản trị không an toàn và mật khẩu yếu có thể khiến site dễ bị tấn công.

Phần Mềm Lỗi Thời

Bỏ qua các bản cập nhật có thể khiến bạn dễ bị tổn thương bởi các vấn đề bảo mật mới được phát hiện, tạo cơ hội cho kẻ tấn công khai thác các lỗ hổng này.

Rò Rỉ Dữ Liệu

Kết nối cơ sở dữ liệu được cấu hình kém hoặc không an toàn có thể dẫn đến rò rỉ thông tin nhạy cảm.

Cài Đặt và Sử Dụng

WordPress có thể được sử dụng theo hai cách khác nhau: tải xuống và cài đặt dưới dạng phần mềm mã nguồn mở hoặc đăng ký dịch vụ.

1. Tải Xuống và Cài Đặt Mã Nguồn Mở

Tải Xuống và Cài Đặt: Bạn có thể tải xuống phần mềm WordPress miễn phí từ WordPress.org và cài đặt nó trên máy chủ của mình. Phương pháp này cung cấp toàn quyền kiểm soát và tính linh hoạt, cho phép bạn tùy chỉnh website theo ý muốn và thêm các plugin và theme.

Chi Phí: Phần mềm miễn phí, nhưng bạn sẽ cần phải trả tiền cho các dịch vụ như hosting và tên miền.

Cập Nhật và Bảo Trì: Cập nhật phần mềm và plugin, áp dụng các bản vá bảo mật và bảo trì chung hoàn toàn là trách nhiệm của bạn.

2. Sử Dụng Theo Hình Thức Đăng Ký

WordPress.com: Dịch vụ này hoạt động theo mô hình dựa trên đăng ký. Tại đây, bạn có thể nhanh chóng tạo site WordPress của mình và quản lý nó mà không cần phải giải quyết các chi tiết kỹ thuật như hosting, bảo mật và cập nhật.

Các Gói: Có sẵn các gói đăng ký khác nhau cho các nhu cầu khác nhau. Gói miễn phí cung cấp các tính năng cơ bản, trong khi các gói cao cấp cung cấp các lợi ích bổ sung như nhiều dung lượng lưu trữ hơn, các tùy chọn thiết kế nâng cao và hỗ trợ.

Tiện Lợi: Lý tưởng cho người dùng có ít kiến thức kỹ thuật, vì nền tảng xử lý các tác vụ kỹ thuật cho bạn. Tuy nhiên, tính linh hoạt và các tùy chọn tùy chỉnh bị hạn chế hơn so với phiên bản mã nguồn mở.


II.Cấu trúc WordPress

Giới thiệu ngắn

WordPress là một hệ quản trị nội dung (CMS) linh hoạt. Tài liệu này mô tả cấu trúc cài đặt WordPress trên máy chủ Ubuntu (LAMP) — Linux + Apache + MySQL + PHP.


Yêu cầu cài đặt (LAMP)

  • Linux (ví dụ Ubuntu)
  • Apache HTTP Server
  • MySQL / MariaDB
  • PHP

Thường đặt mã nguồn vào:

/var/www/html

Cấu trúc thư mục (mặc định)

tree -L 1 /var/www/html

├── index.php
├── license.txt
├── readme.html
├── wp-activate.php
├── wp-admin
├── wp-blog-header.php
├── wp-comments-post.php
├── wp-config.php
├── wp-config-sample.php
├── wp-content
├── wp-cron.php
├── wp-includes
├── wp-links-opml.php
├── wp-load.php
├── wp-login.php
├── wp-mail.php
├── wp-settings.php
├── wp-signup.php
├── wp-trackback.php
└── xmlrpc.php

Các tập tin quan trọng ở thư mục gốc

  • index.php — trang khởi tạo chính.
  • license.txt — thông tin giấy phép/phiên bản.
  • wp-activate.php — kích hoạt email (multisite/new user).
  • wp-config.phprất quan trọng: chứa thông tin kết nối DB, authentication keys & salts, table prefix, debug, v.v.
  • wp-content — chứa plugins, themes, uploads.
  • wp-includes — core libraries.
  • wp-settings.php — khởi tạo môi trường WordPress.

Mẫu wp-config.php (phần quan trọng)

<?php
/** Database name */
define( 'DB_NAME', 'database_name_here' );

/** MySQL database username */
define( 'DB_USER', 'username_here' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );

/** MySQL server name */
define( 'DB_HOST', 'localhost' );

/** Authentication keys and salts */
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

/** WordPress database table prefix */
$table_prefix = 'wp_';

/** For developers: WordPress debugging mode */
define( 'WP_DEBUG', false );

/** Absolute path to the WordPress directory */
if ( ! defined( 'ABSPATH' ) ) {
    define( 'ABSPATH', __DIR__ . '/' );
}

/** Sets up WordPress vars and included files */
require_once ABSPATH . 'wp-settings.php';

Ghi chú bảo mật ngắn:

  • DB_USER / DB_PASSWORD: lộ => truy xuất toàn bộ DB.
  • AUTH_KEY / SALT: lộ => nguy cơ giả mạo session/cookie; cần thay đổi nếu rò rỉ.
  • $table_prefix mặc định wp_ dễ đoán — đổi để giảm auto-scan.
  • WP_DEBUG nên false trên production.

Thư mục quan trọng

wp-content

tree -L 1 /var/www/html/wp-content

├── index.php
├── plugins
└── themes
  • plugins/ — nơi cài plugin.
  • themes/ — themes.
  • uploads/ — chứa media, nơi attacker hay upload webshell nếu có lỗ hổng.

wp-includes

tree -L 1 /var/www/html/wp-includes

├── theme.php
├── update.php
├── user.php
├── vars.php
├── version.php
├── widgets
├── widgets.php
├── wlwmanifest.xml
├── wp-db.php
└── wp-diff.php
  • wp-db.php chịu trách nhiệm truy vấn và kết nối DB cho core.

Vai trò người dùng (User Roles)

Vai tròMô tả ngắn
AdministratorToàn quyền: quản lý user, plugin, theme, chỉnh code.
EditorQuản lý và publish bài (kể cả bài người khác).
AuthorViết và publish bài của chính họ.
ContributorViết và quản lý bài của họ nhưng không được publish.
SubscriberXem nội dung, quản lý profile cá nhân.

Những điều thực tế cần biết (quản trị / bảo mật)

  • wp-config.php là mục tiêu cao nhất: giới hạn quyền đọc (chmod 600) và chỉ cho web server user truy cập.
  • Thay table_prefix mặc định, dùng DB user với quyền hạn tối thiểu.
  • Không bật WP_DEBUG trên production.
  • Cập nhật core/plugin/theme đều đặn.
  • Kiểm tra wp-content/uploads vì attacker thường upload shell ở đây.
  • Sao lưu định kỳ cả file và database.

III.Thu thập thông tin về Phiên bản WordPress

Việc xác định phiên bản WordPress là bước đầu tiên quan trọng để đánh giá mức độ an toàn của một website. Mỗi phiên bản có thể tồn tại các lỗ hổng khác nhau, nên biết được phiên bản cụ thể sẽ giúp bạn có lợi thế khi kiểm tra bảo mật.


1. Thẻ Meta Generator

Mặc định, WordPress thêm một thẻ meta trong mã HTML của trang web để hiển thị phiên bản đang sử dụng.
Để kiểm tra, bạn mở View Source (Xem mã nguồn trang) trên trình duyệt và tìm dòng như sau:

<meta name="generator" content="WordPress 5.7" />

Thẻ này thường dễ tìm thấy ở phần <head> của trang.


2. Tệp readme.html

Thư mục gốc của cài đặt WordPress thường có tệp readme.html, chứa thông tin về phiên bản.
Bạn có thể truy cập qua đường dẫn sau:

https://<tên-trang-web>/readme.html

Tệp này hiển thị thông tin phiên bản và một số chi tiết khác.


3. Các tệp CSS và JavaScript

Một số theme hoặc plugin lưu thông tin phiên bản trong đường dẫn của các tệp CSS hoặc JS.
Ví dụ:

<link rel='stylesheet' href='https://<tên-trang-web>/wp-content/themes/twentytwenty/style.css?ver=5.7' />

Ở đây, phần ver=5.7 cho thấy phiên bản WordPress.
Bạn có thể kiểm tra các thẻ <link><script> trong mã HTML để tìm thông tin tương tự.


4. Tệp wp-includes/version.php

File version.php trong thư mục wp-includes cũng chứa thông tin phiên bản WordPress.
Nếu có thể truy cập được file này, bạn sẽ thấy dòng như sau:

$wp_version = '5.7';

5. Sử dụng Công cụ và Lệnh Quét

Một số công cụ bảo mật có thể giúp bạn xác định phiên bản WordPress. Ví dụ như WPScan.
Dùng lệnh sau để kiểm tra:

wpscan --url https://<tên-trang-web> --enumerate v

Lệnh này sẽ cố gắng phát hiện phiên bản WordPress của trang web được chỉ định.


Tóm tắt nhanh

Phương phápMô tả ngắn
Meta GeneratorXem thẻ meta trong mã nguồn HTML.
readme.htmlTruy cập trực tiếp tệp readme.html để xem phiên bản.
CSS/JS FilesTìm ver= trong đường dẫn file.
version.phpĐọc trực tiếp giá trị $wp_version.
WPScanDùng công cụ tự động để quét và xác định phiên bản.

IV.Thu thập thông tin về Plugins và Themes trong WordPress

PluginsThemes trong WordPress giúp thay đổi chức năng và giao diện của website. Tuy nhiên, chúng cũng có thể chứa lỗ hổng bảo mật. Việc thu thập thông tin về các thành phần này giúp nhận diện nguy cơ tiềm ẩn.


1. Xác định Plugins

Các plugin WordPress nằm trong thư mục:

/wp-content/plugins

Việc xác định plugin giúp kiểm tra các lỗ hổng bảo mật đang tồn tại.

1.1 Quét thư mục (Directory Scanning)

Bạn có thể kiểm tra bằng cách truy cập trực tiếp thư mục plugin:

https://<tên-trang-web>/wp-content/plugins/

Nếu directory listing được bật, bạn sẽ thấy danh sách plugin cài đặt. Tuy nhiên, phần lớn website đã tắt tính năng này.

1.2 Kiểm tra tệp plugin cụ thể

Có thể nhận diện plugin qua sự tồn tại của các tệp đặc trưng như:

https://<tên-trang-web>/wp-content/plugins/<PLUGIN-NAME>/readme.txt
https://<tên-trang-web>/wp-content/plugins/<PLUGIN-NAME>/<PLUGIN-NAME>.php

Những tệp này chứa thông tin mô tả hoặc phiên bản plugin.

1.3 Dùng công cụ tự động (WPScan)

Bạn có thể quét plugin tự động bằng WPScan:

wpscan --url https://<tên-trang-web> --enumerate p

Lệnh này sẽ liệt kê các plugin phát hiện được trên trang web.


2. Xác định Themes

Themes nằm trong thư mục:

/wp-content/themes

Việc xác định theme giúp phát hiện các lỗ hổng trong file giao diện.

2.1 Quét thư mục (Directory Scanning)

Truy cập thư mục theme trực tiếp:

https://<tên-trang-web>/wp-content/themes/

Nếu directory listing mở, bạn sẽ thấy các theme đã cài đặt.

2.2 Kiểm tra tệp theme cụ thể

Bạn có thể xác định theme thông qua file style.css hoặc file chính của theme:

https://<tên-trang-web>/wp-content/themes/<THEME-NAME>/style.css

Tệp này thường chứa tên, phiên bản và tác giả của theme.

2.3 Kiểm tra mã nguồn trang (Source Code Examination)

Trong mã HTML, tìm các đường dẫn như:

<link rel='stylesheet' href='https://<tên-trang-web>/wp-content/themes/<THEME-NAME>/style.css' />

Đường dẫn này giúp xác định theme đang hoạt động.

2.4 Dùng công cụ tự động (WPScan)

Tương tự plugin, bạn có thể quét theme bằng WPScan:

wpscan --url https://<tên-trang-web> --enumerate t

Lệnh này sẽ xác định các theme có trên website mục tiêu.


Tóm tắt nhanh

Phương phápMô tả
Quét thư mụcTruy cập /wp-content/plugins/ hoặc /themes/ để xem có bật listing hay không.
Tệp cụ thểKiểm tra readme.txt, style.css, .php trong từng plugin/theme.
Mã nguồn HTMLTìm đường dẫn chứa /wp-content/plugins/ hoặc /themes/.
Công cụ tự độngDùng WPScan để quét toàn bộ plugin hoặc theme.

V.Thu thập thông tin về Người dùng (Users) trong WordPress

Xác định người dùng WordPress là bước quan trọng khi đánh giá bảo mật hoặc xây dựng bài kiểm tra (pentest). Dưới đây là các phương pháp phổ biến để liệt kê/nhận diện username. Nội dung trình bày ở dạng ngắn gọn, dễ hiểu — có ví dụ và lệnh cần thiết.


1. Dò theo ID người dùng (User ID Brute Force)

WordPress dùng ID tuần tự để quản lý user, nên ta có thể thử lần lượt các số để tìm username.

1.1 Author archives

URL tác giả có thể trả về tên user, ví dụ:

https://<tên-trang-web>/?author=1
https://<tên-trang-web>/?author=2

Sau khi truy cập, trang có thể chuyển hướng tới:

https://<tên-trang-web>/author/username/

Từ đó bạn biết username tương ứng với ID đã thử.


2. XML-RPC API

XML-RPC (xmlrpc.php) cho phép một số thao tác từ xa. Một số endpoint/hiệu ứng có thể tiết lộ sự tồn tại của username khi gửi request kiểm tra. Ví dụ dạng cấu trúc XML (để hiểu, không phải payload tấn công):

<methodCall>
  <methodName>wp.getUsersBlogs</methodName>
  <params>
    <param><value><string>username</string></value></param>
    <param><value><string>password</string></value></param>
  </params>
</methodCall>

Nếu username không tồn tại, server thường trả lỗi khác so với khi username tồn tại nhưng password sai — từ đó phân biệt được.


3. REST API (wp-json)

WordPress REST API có thể công bố thông tin user theo mặc định. Kiểm tra endpoint:

https://<tên-trang-web>/wp-json/wp/v2/users

Endpoint này có thể trả về danh sách user (username, id, name, url) nếu chưa bị giới hạn.


4. Liệt kê qua trang đăng nhập (Username enumeration)

Trang đăng nhập mặc định wp-login.php đôi khi phản hồi khác nhau cho lỗi “username không tồn tại” và “password sai”, giúp biết username hợp lệ.

  • Truy cập: https://<tên-trang-web>/wp-login.php
  • Nhập username không đúng → thông báo lỗi khác so với khi username đúng nhưng password sai.

Lưu ý: nhiều site đã chặn hoặc che lỗi kiểu này để ngăn dò username.


5. Công cụ tự động

Một số công cụ có thể quét và liệt kê username:

wpscan --url https://<tên-trang-web> --enumerate u

WPScan sẽ thử nhiều kỹ thuật (author archives, REST API, wp-json, XML-RPC, …) để thu thập username.


Tóm tắt các nguồn thông tin

Phương phápMô tả
ID brute-force / author archiveTruy vấn ?author=<id> để dò username.
XML-RPC (xmlrpc.php)Gửi request kiểm tra; phản hồi khác nhau có thể cho biết user tồn tại.
REST API (/wp-json/wp/v2/users)Trả JSON chứa user nếu endpoint không bị giới hạn.
wp-login.phpThông báo lỗi khi login có thể rò rỉ thông tin tồn tại username.
Công cụ (WPScan)Tự động hóa thu thập username bằng nhiều phương pháp.

Ghi chú an toàn và đạo đức

  • Chỉ thực hiện kiểm tra trên hệ thống bạn sở hữu hoặc được phép (written permission).
  • Việc dò username, brute-force hay quét tự động có thể bị coi là hành vi xâm nhập nếu làm trên mục tiêu không được phép.
  • Nếu bạn là quản trị viên, hãy hạn chế các endpoint công khai (chặn /wp-json/wp/v2/users, vô hiệu XML-RPC nếu không cần, che thông báo lỗi đăng nhập) để tránh bị thu thập thông tin.

VI.WPScan — Công cụ quét bảo mật WordPress

WPScan là công cụ mạnh để phát hiện lỗ hổng trên các trang WordPress. Viết bằng Ruby, chạy trên dòng lệnh và có thể tích hợp qua API. Dưới đây là tóm tắt tính năng, cách cài và ví dụ dùng cơ bản.


Tính năng chính

  • Phát hiện phiên bản WordPress.
  • Liệt kê plugins và themes, kiểm tra phiên bản và so khớp với cơ sở dữ liệu lỗ hổng.
  • Liệt kê người dùng (user enumeration).
  • Kiểm tra mật khẩu yếu (brute-force).
  • Quét cấu hình và phát hiện rủi ro.

Cài đặt nhanh

  1. Cài Ruby trên hệ thống (WPScan viết bằng Ruby).
  2. Cài WPScan bằng gem:
gem install wpscan

Gợi ý: trên một số hệ thống, bạn cần thêm quyền sudo hoặc dùng rbenv/rvm để quản lý Ruby.


Trợ giúp (Help)

Chạy:

wpscan --help

Bạn sẽ thấy nhiều tuỳ chọn — ví dụ các tuỳ chọn quan trọng:

  • --url URL — URL mục tiêu (bắt buộc cho quét).
  • -e, --enumerate [OPTS] — liệt kê: plugin, theme, users, v.v. (ví dụ p=plugins, t=themes, u=users).
  • --api-token TOKEN — token WPScan để lấy dữ liệu lỗ hổng chi tiết.
  • -P --passwords FILE-U --usernames LIST — danh sách dùng để thử brute-force.
  • --detection-mode — chế độ phát hiện (mixed / passive / aggressive).
  • -o --output FILE — lưu kết quả ra file.

Để xem toàn bộ tuỳ chọn, dùng --hh.


Ví dụ sử dụng cơ bản

Quét nhanh:

wpscan --url http://example.com

Liệt kê plugins:

wpscan --url https://target-site --enumerate p

Liệt kê themes:

wpscan --url https://target-site --enumerate t

Liệt kê users:

wpscan --url https://target-site --enumerate u

Quét plugin có vuln (kết hợp API token):

wpscan --url https://target-site --api-token YOUR_TOKEN --enumerate vp

Ví dụ kết quả (rút gọn)

  • Phát hiện readme.html và phiên bản WordPress (ví dụ 6.4.2).
  • Phát hiện XML-RPC bật: /xmlrpc.php.
  • Liệt kê theme: the-minimal-blogger (có style.cssreadme.txt).
  • Liệt kê plugin: elementor, royal-elementor-addons (và chú ý plugin lỗi thời nếu có).

Lưu ý khi dùng

  • Cập nhật database WPScan trước khi quét để có dữ liệu lỗ hổng mới.
  • Sử dụng API token để nhận dữ liệu lỗ hổng đầy đủ (đăng ký tại wpscan.com).
  • Quét một trang mà bạn không có quyền có thể là hành vi phạm pháp — chỉ quét mục tiêu bạn được phép.
  • Quét có thể tạo nhiều request — cân nhắc --throttle hoặc giảm số threads (-t) để tránh gây ảnh hưởng.

Tóm tắt

WPScan là công cụ hiệu quả cho kiểm thử bảo mật WordPress: phát hiện phiên bản, plugins, themes, users, và kiểm tra lỗ hổng đã biết. Dễ cài, nhiều tuỳ chọn và phù hợp cho pentest hoặc đánh giá nhanh site WordPress.


VII.WPScan — Enumeration (Các phép liệt kê)

WPScan cung cấp nhiều lựa chọn để thu thập thông tin (enumeration) trên site WordPress. Dưới đây là tổng hợp ngắn gọn, dễ hiểu về các chế độ phát hiện và các tuỳ chọn enumerate.


—detection-mode MODE

Ba chế độ phát hiện:

  • passive: Thu thập thông tin sẵn có, ít truy vấn, ít dấu vết.

    wpscan --url https://example.com --detection-mode passive
  • aggressive: Gửi nhiều request hơn, thu được nhiều thông tin nhưng gây dấu vết nhiều.

    wpscan --url https://example.com --detection-mode aggressive
  • mixed: Kết hợp passive và aggressive.

    wpscan --url https://example.com --detection-mode mixed

Liệt kê Plugins (—enumerate)

  • vp — Vulnerable plugins (plugin có lỗ hổng).
    wpscan --url https://example.com --enumerate vp
  • ap — All plugins (tất cả plugin).
    wpscan --url https://example.com --enumerate ap
  • p — Popular plugins (plugin phổ biến).
    wpscan --url https://example.com --enumerate p

Liệt kê Themes (—enumerate)

  • vt — Vulnerable themes (theme có lỗ hổng).
    wpscan --url https://example.com --enumerate vt
  • at — All themes (tất cả themes).
    wpscan --url https://example.com --enumerate at
  • t — Popular themes (theme phổ biến).
    wpscan --url https://example.com --enumerate t

Liệt kê Users

  • u — Liệt kê user (username) để phục vụ kiểm thử tiếp theo.
    wpscan --url https://example.com --enumerate u

Ghi chú ngắn

  • Kết hợp các tuỳ chọn với --api-token để nhận dữ liệu lỗ hổng chi tiết.
  • Chỉ quét mục tiêu bạn được phép. Quét trái phép có thể là phạm pháp.
  • Dùng --throttle hoặc giảm -t nếu không muốn gây nhiều tải.

VIII.WordPress Hardening Techniques — Củng cố bảo mật WordPress

Các kỹ thuật Hardening (củng cố bảo mật) trong WordPress giúp tăng độ an toàn và giảm thiểu rủi ro bị tấn công. Dưới đây là các biện pháp quan trọng cần thực hiện.


1. Plugin bảo mật WordPress

Wordfence

Một trong những plugin bảo mật phổ biến nhất, cung cấp tường lửa và trình quét malware mạnh mẽ.

Tính năng:

  • Tường lửa (Firewall)
  • Trình quét mã độc (Malware scanner)
  • Giới hạn số lần đăng nhập sai
  • Xác thực hai lớp (2FA)

Sucuri

Giải pháp bảo mật toàn diện, cung cấp tường lửa, phát hiện xâm nhập, và dọn mã độc.

Tính năng:

  • Firewall
  • Phát hiện xâm nhập (Intrusion Detection)
  • Quét và dọn malware
  • Giám sát và báo cáo an ninh

2. Củng cố file cấu hình wp-config.php

File wp-config.php là nơi chứa thông tin quan trọng (kết nối database, khóa bảo mật, v.v). Cần bảo vệ tuyệt đối.

Điều chỉnh quyền file:

chmod 600 /path/to/your/wp-config.php

Giới hạn quyền chỉ cho chủ sở hữu đọc và ghi.


3. Thiết lập quyền truy cập tệp và thư mục

Cấu hình sai quyền file/thư mục là nguyên nhân phổ biến dẫn tới rò rỉ hoặc ghi đè file trái phép.

Lệnh khuyến nghị:

Thư mục:

find /path/to/your/wordpress/ -type d -exec chmod 755 {} \;

Tệp:

find /path/to/your/wordpress/ -type f -exec chmod 644 {} \;

755 = quyền đọc + chạy (thư mục)
644 = quyền đọc (tệp)


4. Sử dụng .htaccess để tăng cường bảo mật

File .htaccess cho phép đặt quy tắc truy cập (Access Control) và tối ưu hiệu năng.

Ví dụ cấu hình:

1. Bảo vệ wp-config.php

<Files wp-config.php>
order allow,deny
deny from all
</Files>

2. Giới hạn truy cập thư mục wp-admin

<FilesMatch "wp-admin">
Order deny,allow
Deny from all
Allow from <YOUR-IP-ADDRESS>
</FilesMatch>

3. Bật cache và nén Gzip để cải thiện tốc độ & bảo mật

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access 1 year"
  ExpiresByType image/jpeg "access 1 year"
  ExpiresByType image/gif "access 1 year"
  ExpiresByType image/png "access 1 year"
  ExpiresByType text/css "access 1 month"
  ExpiresByType application/pdf "access 1 month"
  ExpiresByType text/x-javascript "access 1 month"
  ExpiresByType application/x-shockwave-flash "access 1 month"
  ExpiresByType image/x-icon "access 1 year"
  ExpiresDefault "access 2 days"
</IfModule>

5. Các biện pháp bổ sung

Biện phápMô tả
Cập nhật thường xuyênGiữ core, plugin và theme luôn ở phiên bản mới nhất.
Giới hạn đăng nhậpDùng plugin giới hạn login hoặc thêm captcha.
Ẩn phiên bản WordPressXóa hoặc chỉnh meta generator để tránh lộ phiên bản.
Tắt XML-RPC nếu không cầnTránh bị lợi dụng brute-force hoặc DDoS.
Sao lưu định kỳSử dụng plugin hoặc cron backup tự động.

6. Kết luận

Hardening WordPress là bước quan trọng giúp giảm thiểu rủi ro khai thác. Kết hợp cấu hình đúng, plugin bảo mật, và kiểm tra định kỳ sẽ giúp trang web an toàn và ổn định hơn.

Hacking WordPress

Author

Kai0Kid

Publish Date

10 - 08 - 2025

License

Unlicensed

Avatar
Kai0Kid

Bạn tìm gì ở tôi ?