Trang web dựa trên PHP bị tấn công - Lỗ hổng và sửa chữa PHP
PHP là xương sống của hầu hết mọi CMS phổ biến hiện nay. Nhờ tính chất đơn giản và không có giấy phép, PHP là lựa chọn ưu tiên để phát triển trang web động. Tuy nhiên, do các tiêu chuẩn mã hóa kém, việc xâm nhập các trang web PHP trở nên tương đối dễ dàng. Internet có rất nhiều chủ đề trợ giúp nơi người dùng phàn nàn về việc trang web PHP tùy chỉnh bị tấn công hoặc trang web PHP chuyển hướng bị tấn công. Điều này đã dẫn đến nhiều dư luận tiêu cực cho chính PHP, điều này không có gì đáng chê trách.
Vì vậy, nếu PHP không bị đổ lỗi thì nguyên nhân nào gây ra hack chuyển hướng trang web PHP? Bài viết này sẽ giải thích các lỗi bảo mật làm ảnh hưởng đến trang web PHP và cách ngăn chặn chúng.
Trang web PHP tùy chỉnh bị tấn công:Ví dụ
Hầu hết các chủ sở hữu trang web chỉ tập trung vào phần phát triển chứ không phải các khía cạnh bảo mật. Do đó, khi các trang web được thiết kế bằng PHP bị tấn công, chủ sở hữu trang web không có nơi nào để đi vì họ chỉ trả tiền cho các nhà phát triển để phát triển. Những người dùng gặp khó khăn có thể được tìm thấy khi tìm kiếm sự trợ giúp trên các diễn đàn trực tuyến và đọc các bài báo như thế này. Dưới đây là một vài ví dụ như vậy.
Trang web PHP tùy chỉnh bị tấn công:Các triệu chứng
- Các trang lừa đảo xuất hiện trên trang web PHP của bạn. Trang này cố lừa người dùng nhập thông tin nhạy cảm.
- Người dùng nhấp vào các liên kết nhất định trên trang web của bạn và kết thúc trên một tên miền khác. Điều này rất có thể là do cấu hình sai hoặc bị hack chuyển hướng trang web PHP.
- Adblockers gắn nhãn và chặn một số yếu tố nhất định trên trang web của bạn để khai thác tiền điện tử.
- Trình quản lý tệp PHP không xác định xuất hiện trên trang web và trang web PHP hiển thị quảng cáo độc hại.
- Các tệp PHP đã được sửa đổi với mã không xác định gây ra chuyển hướng hoặc tạo liên kết ngược cho các trang web đáng tin cậy.
- Nội dung vô nghĩa xuất hiện trên trang web PHP tùy chỉnh có thể do Hack từ khóa của Nhật Bản hoặc Hack dược gây ra, v.v.
- Thông báo cảnh báo về việc tạm ngưng tài khoản xuất hiện khi sử dụng dịch vụ lưu trữ của bên thứ ba cho các trang PHP tùy chỉnh.
- Trang web PHP tùy chỉnh hiển thị các thông báo cảnh báo về việc bị Google và các công cụ tìm kiếm khác đưa vào danh sách đen vì spam phần mềm độc hại, v.v.
- phpMyAdmin hiển thị một số quản trị viên cơ sở dữ liệu mới và không xác định.
- Email được gửi từ miền của trang web PHP của bạn đã bị gắn nhãn là spam.
- Thông báo lỗi không mong muốn trên trang web và trang web PHP trở nên chậm và không phản hồi.
Trang web PHP tùy chỉnh bị tấn công:13 lý do tại sao
Cấu hình sai máy chủ
1. Quyền đối với tệp yếu
Quyền tệp cấp đặc quyền sửa đổi một tệp PHP cụ thể cho một kiểu người dùng nhất định. Do đó, nếu quyền đối với tệp PHP không được đặt đúng cách, nó có thể cho phép những kẻ tấn công đưa tệp PHP của bạn vào spam phần mềm độc hại, v.v.
2. Mật khẩu mặc định
Sử dụng mật khẩu yếu hoặc được sử dụng phổ biến là lý do phổ biến khiến trang web PHP tùy chỉnh bị tấn công. Một từ điển tùy chỉnh có thể được sử dụng để thử tất cả các kết hợp mật khẩu có thể có. Sau khi bị xâm phạm, tùy thuộc vào vectơ tấn công, tức là FTP brute force hoặc cPanel brute force; kẻ tấn công có thể truy cập khu vực quản trị của một trang PHP tùy chỉnh. Sau đó, kẻ tấn công có thể tải lên phần mềm độc hại PHP hoặc cửa hậu.
Bài viết liên quan - Làm cách nào để gỡ bỏ Backdoor trong WordPress?
3. Đã bật lập chỉ mục thư mục
Cho phép lập chỉ mục thư mục có thể cho phép kẻ tấn công đọc các tệp PHP nhạy cảm. Điều này có thể cung cấp thông tin nhạy cảm liên quan đến máy chủ cho những kẻ tấn công. Những kẻ tấn công có thể sử dụng thông tin này để tiến hành các cuộc tấn công mạng vào trang web PHP tùy chỉnh của bạn.
4. Mở các cổng
Các cổng mở có thể khiến một trang web PHP tùy chỉnh bị tấn công. Hơn nữa, các cổng mở có thể bị kẻ tấn công sử dụng để lấy dấu vân tay các dịch vụ phụ trợ của trang web PHP của bạn. Bằng cách sử dụng thông tin đó, kẻ tấn công có thể xâm phạm các dịch vụ phụ trợ hoặc chính các cổng đang mở bằng cách sử dụng khai thác.
5. Lưu trữ kém
Nói chung, lưu trữ PHP giá rẻ đi kèm với một mức giá cao về bảo mật. Các máy chủ lưu trữ kém cắt giảm các hoạt động bảo mật để làm cho dịch vụ rẻ hơn. Vì vậy, một khi sự lây nhiễm bắt đầu lây lan trên các máy chủ như vậy, nó có thể xâm phạm nhiều trang web bao gồm cả trang web PHP của bạn, mặc dù, nó không được nhắm mục tiêu trực tiếp.
Mã PHP dễ bị tổn thương
6. PHP SQL Injection
Việc chèn SQL trong PHP chủ yếu là do thiếu thông tin đầu vào của người dùng chưa được kiểm soát. Do các tiêu chuẩn mã hóa kém, đầu vào không được vệ sinh đã đến trực tiếp máy chủ cơ sở dữ liệu và được thực thi. Một số nguyên nhân chính của SQLi trong các trang PHP tùy chỉnh là:
- Thiếu bộ lọc cho các ký tự khoảng trắng.
- Sử dụng dấu ngoặc kép để phân tách các chuỗi.
- Chuyển thông tin đầu vào của người dùng chưa được kiểm soát vào Cơ sở dữ liệu.
- Triển khai mã hóa Unicode không đúng cách.
- Trộn lẫn mã với dữ liệu.
- Xử lý loại không phù hợp.
7. PHP Cross-Site Scripting
XSS là một nguyên nhân phổ biến khác của các trang web PHP tùy chỉnh bị tấn công sau khi đưa vào SQL. Cả hai cuộc tấn công này đều phổ biến trên web đến mức hàng năm chúng đều nằm trong top 10 của OWASP. XSS cũng được gây ra do thiếu quy trình xử lý đầu vào của người dùng. Trong các trang web PHP và nói chung, các cuộc tấn công XSS chủ yếu có ba loại:
- XSS được lưu trữ: Loại XSS này dựa vào việc quản trị viên web nhấp vào một liên kết cụ thể, sau đó tải một tập lệnh độc hại để lấy cắp cookie.
- XSS được phản ánh: Đây là một XSS khá nghiêm trọng và thường có thể được tìm thấy trong các trang web PHP có diễn đàn, thảo luận, v.v. Mã độc hại từ loại XSS này được lưu trữ trên máy chủ và được thực thi mỗi khi người dùng truy cập trang PHP đó.
- XSS dựa trên DOM: Loại XSS này có thể là một trong hai loại được đưa ra ở trên. Tuy nhiên, việc phát hiện loại XSS này khá khó và thậm chí có thể thoát ra sau khi kiểm tra mã.
Các trang web dễ bị tấn công bởi XSS thường được nhắm mục tiêu để tấn công chuyển hướng trang web PHP hoặc ăn cắp cookie quản trị viên.
8. Truy vấn yêu cầu chéo trang web trong PHP
Các cuộc tấn công CSRF nhằm đánh lừa người dùng trang PHP thực hiện các hành động không mong muốn. Nếu các trang web PHP tùy chỉnh của bạn cho phép đăng ký, thì CSRF có thể cho phép mọi người xóa tài khoản ngẫu nhiên hoặc thực hiện các hành động khác. Mặc dù tác động của các hành động không được kẻ tấn công nhìn thấy trực tiếp, nhưng CSRF có thể xóa người dùng của các trang web PHP, do đó làm giảm lưu lượng truy cập trang web.
9. Bao gồm tệp cục bộ PHP
Lỗ hổng bao gồm tệp xảy ra khi kẻ tấn công có thể truy cập tệp bên ngoài tệp gốc ‘ www ' danh mục. Thủ phạm chính của lỗ hổng này là các tập lệnh được mã hóa 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 các tệp cấu hình và mật khẩu nhạy cảm của trang PHP tùy chỉnh của bạn. Những kẻ tấn công có thể sử dụng thông tin thu được từ các tệp này để đăng nhập bằng quyền quản trị viên, dẫn đến việc trang web PHP bị tấn công.
Zero-Day Flaws bằng PHP
10. Chủ đề hoặc plugin lỗi
Các plugin hoặc chủ đề được mã hóa kém trong PHP là các lỗ hổng bảo mật nằm ngay trên máy chủ của bạn chỉ chờ bị khai thác. Đã có những trường hợp khi những kẻ tấn công nhắm mục tiêu cụ thể vào các plugin có lỗi để tiến hành các cuộc tấn công hàng loạt vào các trang web PHP. Nếu trang web PHP của bạn bị tấn công, đó có thể là một plugin hoặc chủ đề được mã hóa kém.
11. Gói PHP thỏa hiệp
Cũng có khả năng là các thư viện và gói PHP dễ bị tấn công. Điều tương tự cũng có thể xảy ra với bất kỳ ngôn ngữ nào khác. Gần đây, trình quản lý gói PHP PEAR đã bị xâm nhập bởi những kẻ tấn công. Những kẻ tấn công đã thay thế mã gốc bằng mã được chèn vào của chúng, được tải xuống bởi những người dùng không nghi ngờ. Gói này sau đó được họ sử dụng trên các trang web của họ để tìm kiếm và tải xuống các thư viện miễn phí được viết bằng ngôn ngữ lập trình PHP. Mặc dù những trường hợp như vậy là rất hiếm, nhưng không thể bỏ qua hoàn toàn khả năng trang web PHP tùy chỉnh bị tấn công do lỗi zero-day.
Tấn công Kỹ thuật Xã hội
12. Lừa đảo
Quản trị viên của trang PHP tùy chỉnh của bạn gần đây có nhận được thư từ hoàng tử Nigeria không? Các cuộc tấn công như thế này được thiết kế để lừa quản trị viên web cung cấp thông tin nhạy cảm của trang web PHP dẫn đến trang web PHP bị tấn công. Do đó, để giữ an toàn trước các email lừa đảo qua bộ lọc đến miền trang web PHP!
13. Điều chỉnh
Điều chỉnh chỉ là một biến thể khác của các cuộc tấn công lừa đảo. Theo cuộc tấn công này, kẻ tấn công đầu tiên xâm nhập tài khoản người dùng cấp thấp và sau đó sử dụng nó để nâng cao đặc quyền. Việc điều chỉnh đã được các nhà nghiên cứu của chúng tôi nhìn thấy trong một trong những nghiên cứu điển hình và thường được sử dụng để tránh bị phát hiện. Hậu quả của việc điều chỉnh có thể khác nhau, từ ăn cắp thông tin đến một trang web PHP bị tấn công.
Trang web PHP tùy chỉnh bị tấn công:Bảo mật trang web
Đặt Quyền chính xác
PHP có ba chức năng sau để kiểm tra quyền đối với tệp:
- is_readable (): Hàm này trả về giá trị boolean là true nếu người dùng được phép đọc tệp PHP.
- is_wworthy (): Hàm này trả về giá trị boolean là true nếu người dùng được phép ghi vào tệp PHP.
- is_executable (): Hàm này trả về giá trị boolean là true nếu người dùng được phép thực thi tệp PHP.
Tương tự, hàm chmod () của PHP có thể được sử dụng để chỉnh sửa quyền đối với tệp. Đơn giản chỉ cần nhập tên tệp cùng với quyền. tức là “chmod ($ RandomFile, 0644);”. Trong hình ảnh dưới đây là danh sách đầy đủ các quyền đối với tệp và những gì nó thực hiện. Hơn nữa, hãy đảm bảo thêm ‘0’ trước quyền tệp để chỉ định trình thông dịch PHP rằng đầu vào là hệ bát phân.
Đặt Mật khẩu Bảo mật
Đảm bảo rằng mật khẩu của bạn đến trang PHP tùy chỉnh của bạn là một mật khẩu an toàn. Làm cho nó kết hợp tốt giữa các con số, bảng chữ cái và ký hiệu. Ngoài ra, trước khi đặt mật khẩu, bạn nên xem qua các từ điển mật khẩu phổ biến như Rockyou.txt và kiểm tra xem mật khẩu bạn đang đặt có không xuất hiện ở đó hay không. Trong trường hợp người dùng Linux, lệnh Grep có thể hữu ích để tìm kiếm trong các tệp lớn như vậy. Đơn giản chỉ cần tìm kiếm, grep -i ‘* YourNewpass *’ rockou.txt. Ngoài ra, để tránh rắc rối khi tạo mật khẩu mới, các công cụ trực tuyến khác cũng có thể được sử dụng để lấy mật khẩu an toàn, dài và ngẫu nhiên.
Tắt lập chỉ mục thư mục
Để tắt lập chỉ mục trong một thư mục cụ thể, hãy nối đoạn mã sau vào tệp .htaccess của nó (trong trường hợp không có .htaccess, hãy tạo một mã):
Tùy chọn -Chỉ số
Sử dụng Lưu trữ Bảo mật
Nói chung trong khi tìm kiếm dịch vụ lưu trữ, hãy đảm bảo rằng dịch vụ đó cung cấp tường lửa hoặc giải pháp bảo mật như Astra Security thực hiện với các đối tác lưu trữ tích hợp của mình. Hơn nữa, hãy đảm bảo mạng con cách ly trang web của bạn với các trang web khác đang chạy trên cùng một máy chủ.
Kiểm tra mã PHP
Khi trang web PHP tùy chỉnh đã được tạo, việc xây dựng một trang khác từ đầu sẽ không khả thi về mặt kinh tế. Do đó, kiểm tra mã là cách tốt nhất để bắt các lỗ hổng trong trang web PHP trước khi những kẻ tấn công làm. Astra Security có một cộng đồng tin tặc tuyệt vời để kiểm tra và tăng cường bảo mật cho trang web của bạn.