PHP ngày nay là xương sống của hầu hết mọi CMS phổ biến. Nhờ sự đơn giản và bản chất không cần giấy phép, PHP là lựa chọn ưu tiên cho phát triển trang web động. Tuy nhiên, do tiêu chuẩn mã hóa kém, xâm phạm trang PHP trở nên dễ dàng. Internet đầy ắp chủ đề giúp đỡ nơi người dùng than phiền về trang web PHP tùy chỉnh bị hack hoặc PHP redirect hack. Điều này dẫn đến nhiều quảng cáo tiêu cực cho PHP, mà PHP không hề đáng bị đổ lỗi.
Do đó, nếu PHP không phải lỗi, nguyên nhân hack redirect trang web PHP là gì? Bài viết này giải thích các lỗ hổng bảo mật làm xâm phạm trang PHP và cách tránh.
Trang Web PHP Tùy Chỉnh Bị Hack: Ví Dụ
Hầu hết chủ trang web chỉ tập trung vào phần phát triển, không quan tâm khía cạnh bảo mật. Do đó, khi trang web dùng PHP bị hack, chủ trang web không biết đi đâu vì họ chỉ trả tiền cho dev. Người dùng khó khăn có thể tìm giúp trên diễn đàn và đọc bài như này. Đây là vài ví dụ.
Trang Web PHP Tùy Chỉnh Bị Hack: Triệu Chứng
- Trang lừa đảo (phishing) xuất hiện trên trang PHP, cố gắng lừa người dùng nhập thông tin nhạy cảm.
- Người dùng nhấp liên kết trên trang và đến miền khác. Có thể do cấu hình sai hoặc PHP redirect hack.
- Adblocker gắn thẻ và chặn yếu tố trang để khai thác tiền điện tử (crypto mining).
- File manager PHP không xác định xuất hiện và trang hiển thị quảng cáo độc hại (malvertising).
- Tệp PHP bị sửa đổi với mã lạ gây chuyển hướng hoặc tạo backlink cho trang phishing.
- Nội dung vô nghĩa (gibberish) xuất hiện do Japanese keyword hack hoặc pharma hack, v.v.
- Thông báo treo tài khoản khi dùng hosting thứ ba cho PHP tùy chỉnh.
- Trang PHP tùy chỉnh hiển thị cảnh báo bị Google và công cụ tìm kiếm khác đưa vào danh sách đen do spam malware, v.v.
- phpMyAdmin hiển thị admin cơ sở dữ liệu mới và không xác định.
- Email gửi từ miền trang web PHP bị gắn thẻ spam.
- Thông báo lỗi bất ngờ, trang chậm và không phản hồi.
Trang Web PHP Tùy Chỉnh Bị Hack: 13 Lý Do
Lỗi Cấu Hình Máy Chủ
1. Quyền Tệp Yếu
Quyền tệp cấp đặc quyền sửa đổi tệp PHP cụ thể cho loại người dùng nhất định. Do đó, nếu quyền tệp PHP không đặt đúng, có thể cho phép kẻ tấn công chèn spam malware vào tệp PHP.
2. Mật Khẩu Mặc Định
Dùng mật khẩu yếu hoặc phổ biến là lý do thường见 hack PHP tùy chỉnh. Từ điển tùy chỉnh có thể dùng thử tất cả tổ hợp mật khẩu. Khi bị xâm phạm, tùy vector tấn công (FTP brute force hoặc cPanel brute force), kẻ tấn công truy cập khu vực admin trang PHP. Kẻ tấn công sau đó tải lên malware PHP hoặc backdoor.
Bài liên quan – Cách Xóa WordPress Backdoor?
3. Liệt Kê Thư Mục Được Bật
Bật liệt kê thư mục cho phép kẻ tấn công đọc tệp PHP nhạy cảm. Điều này tiết lộ thông tin nhạy cảm về máy chủ. Kẻ tấn công dùng thông tin này tấn công cyber trang PHP tùy chỉnh.
4. Cổng Mở (Open Ports)
Cổng mở có thể gây hack PHP tùy chỉnh. Hơn nữa, cổng mở có thể được kẻ tấn công dùng để lấy dấu vân tay dịch vụ backend trang PHP. Dùng thông tin này, kẻ tấn công có thể xâm phạm dịch vụ cốt lõi hoặc cổng mở bằng exploit.
5. Hosting Kém Chất Lượng
Thường hosting PHP rẻ đi kèm giá cao cho bảo mật. Hosting kém cắt giảm hoạt động bảo mật để dịch vụ rẻ hơn. Do đó, khi nhiễm trùng lan trên máy chủ này, có thể xâm phạm nhiều trang, kể cả trang PHP của bạn dù không bị nhắm trực tiếp.
Mã PHP Dễ Bị Tấn Công
6. PHP SQL Injection
SQL Injection PHP chủ yếu do thiếu làm sạch đầu vào người dùng. Do tiêu chuẩn mã hóa kém, đầu vào không sạch trực tiếp đến máy chủ cơ sở dữ liệu và thực thi. Một số nguyên nhân chính SQLi trong trang PHP tùy chỉnh:
- Thiếu lọc ký tự khoảng trắng.
- Dùng dấu ngoặc đơn để phân tách chuỗi.
- Truyền đầu vào người dùng không cho phép đến cơ sở dữ liệu.
- Triển khai sai mã hóa Unicode.
- Trộn lẫn mã với dữ liệu.
- Thao túng kiểu không đúng.
7. PHP Cross-Site Scripting
XSS là nguyên nhân thường见 hack PHP tùy chỉnh sau SQL Injection. Cả hai tấn công này phổ biến trên web đến mức chúng nằm trong OWASP top 10 hàng năm. XSS cũng do thiếu làm sạch đầu vào. Trong trang PHP và nói chung, tấn công XSS chủ yếu 3 loại:
- Stored XSS: loại này dựa vào webmaster nhấp liên kết cụ thể tải script độc hại đánh cắp cookie.
- Reflected XSS: XSS khá nghiêm trọng, thường thấy trong trang PHP có diễn đàn, thảo luận. Mã độc loại này lưu trên máy chủ và thực thi mỗi lần người dùng truy cập trang PHP đó.
- DOM-based XSS: Loại này có thể là một trong hai trên. Nhưng phát hiện loại này khá khó và có thể thoát sau audit code.
Trang dễ bị XSS thường bị nhắm cho PHP redirect hack hoặc đánh cắp cookie admin.
8. PHP Cross-Site Request Forgery
Tấn công CSRF nhằm lừa người dùng trang PHP làm hành động không mong muốn. Nếu trang PHP cho phép đăng ký, CSRF cho phép người dùng xóa tài khoản ngẫu nhiên hoặc hành động khác. Dù hệ quả hành động không trực tiếp thấy được bởi kẻ tấn công, CSRF có thể xóa người dùng trang PHP, giảm traffic.
9. PHP Local File Inclusion
Lỗ hổng bao gồm tệp xảy ra khi kẻ tấn công truy cập tệp ngoài thư mục gốc "www". Kẻ gây ra lỗ hổng này là script viết kém lấy tên tệp làm tham số. Lỗ hổng này cho phép kẻ tấn công đọc tệp cấu hình và mật khẩu nhạy cảm trang PHP tùy chỉnh. Thông tin từ tệp này dùng để đăng nhập với quyền admin, dẫn đến hack PHP.
Lỗ Hổng Zero-Day PHP
10. Plugin Hoặc Theme Lỗi (Buggy)
Plugin hoặc theme PHP viết kém là lỗ hổng nằm trực tiếp trên máy chủ, chờ bị khai thác. Có trường hợp kẻ tấn công nhắm cụ thể plugin buggy tấn công hàng loạt trang PHP. Nếu trang PHP bị hack, có thể do plugin hoặc theme buggy.
11. Gói PHP Bị Xâm Phạm
Có thể thư viện và gói PHP dễ bị tổn thương. Tương tự có thể xảy ra với ngôn ngữ khác. Gần đây, trình quản lý gói PHP PEAR bị hacker xâm phạm. Kẻ tấn công thay thế bản gốc bằng mã chèn của họ, được tải bởi người dùng không cảnh giác. Gói này sau đó dùng trên trang để tìm và tải thư viện miễn phí viết bằng PHP. Dù trường hợp hiếm, khả năng hack PHP tùy chỉnh do zero-day không thể bỏ qua hoàn toàn.
Tấn Công Kỹ Thuật Xã Hội
12. Phishing (Lừa Đảo)
Admin trang PHP tùy chỉnh có nhận thư từ hoàng tử Nigeria gần đây không? Tấn công như này được thiết kế để lừa webmaster tiết lộ thông tin nhạy cảm trang PHP dẫn đến hack. Vì vậy, để an toàn, hãy lọc email phishing đến miền trang PHP!
13. Tailgating (Theo Đuổi)
Tailgating chỉ là biến thể khác của phishing. Trong tấn công này, kẻ tấn công xâm phạm tài khoản người dùng cấp thấp trước, sau đó dùng để leo thang đặc quyền. Tailgating được quan sát trong một case study bởi nhà nghiên cứu và thường dùng để tránh phát hiện. Hậu quả tailgating từ đánh cắp thông tin đến hack PHP.
Trang web PHP tùy chỉnh bị hack? Nhắn tin qua widget chat, chúng tôi sẽ giúp sửa trang PHP bị hack.
Trang Web PHP Tùy Chỉnh Bị Hack: Bảo Mật Trang
Đặt Quyền Đúng
PHP có 3 hàm sau kiểm tra quyền tệp:
- is_readable(): Trả về true nếu người dùng được phép đọc tệp PHP.
- is_writable(): Trả về true nếu người dùng được phép ghi tệp PHP.
- is_executable(): Trả về true nếu người dùng được phép thực thi tệp PHP.
Tương tự, hàm chmod() PHP dùng thay đổi quyền tệp. Chỉ cần nhập tên tệp với quyền. ví dụ "chmod($RandomFile, 0644);". Trong hình dưới, bạn tìm thấy danh sách đầy đủ quyền tệp và chức năng. Ngoài ra, nhớ thêm "0" trước quyền tệp để chỉ định cho trình thông dịch PHP rằng đầu vào là bát phân.
Đặt Mật Khẩu An Toàn
Đảm bảo mật khẩu trang PHP tùy chỉnh an toàn. Làm kết hợp tốt số, chữ cái và ký hiệu. Ngoài ra, trước khi đặt mật khẩu, khuyến nghị duyệt từ điển mật khẩu phổ biến như Rockyou.txt và kiểm tra mật khẩu bạn đặt có nằm đó không. Đối với người dùng Linux, lệnh Grep hữu ích tìm trong tệp lớn. Tìm grep -i '* YourNewpass *' rockyou.txt. Ngoài ra, để tránh tạo mật khẩu mới, công cụ trực tuyến khác cũng dùng tạo mật khẩu an toàn, dài và ngẫu nhiên.
Vô Hiệu Hóa Liệt Kê Thư Mục
Để vô hiệu hóa liệt kê trong thư mục cụ thể, thêm mã sau vào .htaccess (nếu .htaccess không có, tạo mới):
Options -Indexes
Dùng Hosting An Toàn
Thường khi tìm dịch vụ hosting, đảm bảo nó cung cấp tường lửa hoặc giải pháp bảo mật như Astra làm với đối tác hosting tích hợp. Ngoài ra, đảm bảo subnet cô lập trang bạn khỏi trang khác trên cùng máy chủ.
Audit Code PHP
Một khi trang PHP tùy chỉnh đã xây dựng, xây lại từ đầu không khả thi kinh tế. Do đó, audit code là cách tốt nhất phát hiện lỗ hổng PHP trước kẻ tấn công. Astra có cộng đồng hacker lớn audit và test bảo mật trang bạn. Không chỉ audit code, Astra cũng giúp dọn dẹp nếu trang PHP bị hack.
Làm demo Astra ngay!