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.php— rấ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_prefixmặc địnhwp_dễ đoán — đổi để giảm auto-scan.WP_DEBUGnênfalsetrê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.phpchị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 |
|---|---|
| Administrator | Toàn quyền: quản lý user, plugin, theme, chỉnh code. |
| Editor | Quản lý và publish bài (kể cả bài người khác). |
| Author | Viết và publish bài của chính họ. |
| Contributor | Viết và quản lý bài của họ nhưng không được publish. |
| Subscriber | Xem 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.phplà 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_prefixmặc định, dùng DB user với quyền hạn tối thiểu. - Không bật
WP_DEBUGtrên production. - Cập nhật core/plugin/theme đều đặn.
- Kiểm tra
wp-content/uploadsvì 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> và <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áp | Mô tả ngắn |
|---|---|
| Meta Generator | Xem thẻ meta trong mã nguồn HTML. |
| readme.html | Truy cập trực tiếp tệp readme.html để xem phiên bản. |
| CSS/JS Files | Tìm ver= trong đường dẫn file. |
| version.php | Đọc trực tiếp giá trị $wp_version. |
| WPScan | Dù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
Plugins và Themes 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áp | Mô tả |
|---|---|
| Quét thư mục | Truy 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 HTML | Tìm đường dẫn chứa /wp-content/plugins/ hoặc /themes/. |
| Công cụ tự động | Dù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áp | Mô tả |
|---|---|
| ID brute-force / author archive | Truy 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.php | Thô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
- Cài Ruby trên hệ thống (WPScan viết bằng Ruby).
- 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
sudohoặ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 FILEvà-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.htmlvà 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.cssvàreadme.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
--throttlehoặ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 vpap— All plugins (tất cả plugin).wpscan --url https://example.com --enumerate app— 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 vtat— All themes (tất cả themes).wpscan --url https://example.com --enumerate att— 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
--throttlehoặc giảm-tnế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áp | Mô tả |
|---|---|
| Cập nhật thường xuyên | Giữ core, plugin và theme luôn ở phiên bản mới nhất. |
| Giới hạn đăng nhập | Dùng plugin giới hạn login hoặc thêm captcha. |
| Ẩn phiên bản WordPress | Xóa hoặc chỉnh meta generator để tránh lộ phiên bản. |
| Tắt XML-RPC nếu không cần | Trá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.