Computer >> Máy Tính >  >> Lập trình >> HTML

Bao gồm tệp và thực thi mã tùy ý là gì?

Bao gồm tệp và thực thi mã tùy ý: Đầu tháng này, một trang web bán vé máy bay được xây dựng trên nền tảng WordPress đã bị tấn công khiến dữ liệu cá nhân của hàng trăm nghìn người truy cập bị lộ. Trong một bài đăng trước đó về lý do tại sao tin tặc tấn công, chúng tôi đã thảo luận tất cả các lý do tại sao tin tặc tấn công bao gồm đánh cắp dữ liệu, gửi email spam, thậm chí họ có thể sử dụng kỹ thuật SEO mũ đen để xếp hạng sản phẩm của chính họ (được khuyến nghị đọc - Hack dược) , v.v.

Tìm hiểu cách tin tặc tấn công trang web là chìa khóa để ngăn chặn chúng, đó là lý do tại sao chúng tôi đã liệt kê các cuộc tấn công hack phổ biến nhất được thực hiện trên các trang web WordPress trong một bài viết trước đó.

Khi chúng ta nói về các cuộc tấn công hack thông thường, bạn rất có thể nghĩ đến các cuộc tấn công vũ phu. Nhưng bạn có biết rằng việc bao gồm tệp và thực thi mã tùy ý cũng là một trong những cách tấn công hack phổ biến nhất được thực hiện trên các trang web WordPress. Trong bài đăng này, chúng tôi sẽ đi sâu hơn một chút về các cuộc tấn công này với quan điểm là hiểu chúng một cách chi tiết.

Để hiểu cách thức hoạt động của các cuộc tấn công này, điều đầu tiên bạn phải biết là nó liên quan đến các tệp PHP. Chắc hẳn bạn đang thắc mắc tại sao? Đó là vì cả hai cuộc tấn công Bao gồm tệp và Thực thi mã tùy ý đều liên quan đến việc sử dụng tệp PHP.

Nhưng tệp PHP là gì? Hãy nghĩ về một tủ bếp. Bên trong tủ có một số đồ như đường, muối, gia vị, đồ dùng,… Mỗi đồ dùng này đều có mục đích phục vụ trong bếp. Tệp PHP là một tủ và các mã bên trong tệp là các mục cho phép thực thi các chức năng nhất định mà tin tặc mong muốn. Đây là lý do tại sao tin tặc thích tải lên tệp PHP hơn bất kỳ tệp nào khác như tệp JPEG hoặc PDF. Các tệp JPEG và PDF không thực thi được, tức là tin tặc không thể sử dụng các tệp này để thực thi bất kỳ chức năng nào. Người ta chỉ có thể đọc (tức là xem) chúng. Chúng không thể được sử dụng để thực hiện bất kỳ thay đổi nào đối với một trang web bị tấn công.

Một tin tặc đã tải lên một tệp PHP trên máy chủ trang web của bạn có thể sử dụng tệp đó để thực hiện bất kỳ điều gì trên trang web của bạn. Và đây là lý do tại sao các tệp PHP được sử dụng để chạy các cuộc tấn công Bao gồm tệp và Thực thi mã tùy ý.

Tấn công bao gồm tệp là gì?

Cách tốt nhất để hiểu một cuộc tấn công trang web phức tạp như thế này là lấy ví dụ về một kịch bản thực tế. Giả sử bạn điều hành một trang web cho tổ chức của mình và trang web đó có tên là college.com. Bạn cho phép một vài sinh viên truy cập vào trang web để họ có thể đăng những bức ảnh được chụp trong một sự kiện đại học gần đây. Ai đó lạm dụng quyền truy cập bạn đã cấp và tải lên tệp PHP độc hại (có tên là hack.php) vào trang web. Mục đích là giành quyền kiểm soát các trang web của trường đại học. Khi sinh viên tải lên tệp PHP độc hại, theo mặc định, tệp này được lưu trữ trong thư mục Tải lên. Bất kỳ ai biết cấu trúc cơ bản của WordPress biết tệp đã tải lên đi đâu.

Bao gồm tệp và thực thi mã tùy ý là gì?
Bất kỳ tải lên nào không phải là chủ đề hoặc plugin được lưu trữ trong thư mục Tải lên. Bất kỳ ai biết cấu trúc của WordPress đều biết thư mục Tải lên có thể được tìm thấy ở đâu. Đối với những người chưa biết, đây là nơi chứa thư mục Tải lên. Mở Trình quản lý tệp từ cPanel của Lưu trữ web, sau đó đi tới Public_html> wp-content> uploads.

Tệp hoạt động giống như một cánh cửa cho phép tin tặc tương tác với tệp từ xa. Lưu ý rằng hacker vẫn không có quyền kiểm soát trang web, họ chỉ có một cửa sổ để liên lạc. Để dễ hiểu, hãy tưởng tượng một người A muốn đến một quốc gia mà anh ta không được phép. Vì vậy, anh ta cử một đặc vụ, người B. Người A là hacker, quốc gia là viết tắt của trang web trường đại học và người B là tệp hack.php.

Tệp PHP được tải lên trang web của trường đại học —-> Tệp được lưu trữ trong máy chủ của trang web

Người B chỉ được đào tạo một vài thứ và chỉ có thể làm được bấy nhiêu. Vì vậy người A cần hướng dẫn anh ta những việc cần làm tiếp theo. Tương tự như vậy, tệp PHP tạo một cửa sổ giao tiếp và sau đó chờ thêm lệnh từ tin tặc.

Giả sử rằng hack.php được tạo theo cách cho phép tải nhiều tệp hơn vào trang web. Tin tặc tạo một tệp (có tên là control.php) mà anh ta sẽ tải lên bằng cách sử dụng hack.php đã có trong máy chủ trang web. Tệp mới - control.php sẽ cho phép hacker có toàn quyền truy cập vào trang web. Anh ta sử dụng cửa sổ được cung cấp bởi tệp hack.php để tải tệp control.php lên trang web. Quá trình tải lên tệp control.php này bằng cách sử dụng tệp (hack.php) đã có trên máy chủ trang web được gọi là Bao gồm tệp cục bộ .

Một ví dụ tuyệt vời về Thực thi tệp cục bộ là lỗ hổng được quan sát thấy trên plugin WordPress Easy Forms cho MailChimp (v 6.0.5.5). Sử dụng plugin MailChimp, chủ sở hữu trang web có thể thêm các loại biểu mẫu khác nhau vào trang web WordPress của họ. Một lỗ hổng đã cho phép tin tặc tải tệp PHP lên máy chủ trang web bằng biểu mẫu MailChimp. Sau khi tệp được lưu trữ trên máy chủ của trang web, tin tặc có thể giao tiếp với chúng và thực thi các mã cho phép chúng kiểm soát máy chủ hoặc làm hỏng trang web theo nhiều cách.

Đây là một tình huống:Trang web của trường đại học đã được cài đặt tường lửa và do đó tin tặc không thể tải lên control.php. Mặc dù anh ấy không thể tải lên một tệp riêng biệt khác nhưng anh ấy có thể 'bao gồm' một tệp. Nó có nghĩa là anh ta có thể chèn một tệp trong tệp hack.php đã có trên máy chủ trang web của trường đại học. Nếu tin tặc có thể tải lên tệp control.php, máy chủ trang web sẽ đọc tệp và thực thi mã bên trong để cho phép tin tặc làm bất cứ điều gì anh ta muốn. Nhưng vì không thể tải tệp lên, anh ấy sẽ phải tìm các cách khác để làm cho máy chủ đọc tệp control.php. Một đường dẫn do tin tặc tạo ra có sẵn trên mạng và máy chủ của trang web trường đại học có thể đọc được đường dẫn đó. Do đó, hacker tạo ra một đường dẫn và cung cấp chúng trực tuyến để máy chủ trang web của trường đại học có thể đọc được. Sau đó, máy chủ bắt đầu thực thi mã có được từ đường dẫn và vì mã được viết theo cách cho phép tin tặc kiểm soát toàn bộ trang web, nên giờ đây, cuộc tấn công sẽ kiểm soát trang web của trường đại học. Quá trình làm cho máy chủ đọc tệp từ xa được gọi là Bao gồm tệp từ xa.

Bao gồm tệp và thực thi mã tùy ý là gì?
Một ví dụ minh họa cách cuộc tấn công TimThumb diễn ra

Trường hợp lỗ hổng TimThumb là một ví dụ phổ biến về Bao gồm tệp từ xa. TimThumb là một plugin WordPress cho phép chỉnh sửa hình ảnh dễ dàng trên trang web WordPress. Nó cho phép mọi người sử dụng hình ảnh được mua từ các trang web chia sẻ hình ảnh như imgur.com và flickr.com. TimThumb công nhận imgur là một trang hợp lệ (hoặc nằm trong danh sách trắng). Tin tặc lợi dụng tiêu chí này tạo ra các tệp có URL đề cập đến một trang web hợp lệ như https://www.imgur.com.badsite.com. Khi họ tải lên một tệp độc hại có URL như URL mà chúng tôi đã đề cập ở trên, plugin sẽ bị đánh lừa tin rằng tệp đến từ một trang web hợp lệ. Và nó cho phép tải tệp độc hại lên máy chủ của trang web. Toàn bộ quá trình bao gồm một tệp độc hại từ bên ngoài máy chủ trang web bằng cách lợi dụng lỗ hổng trong một plugin là Bao gồm tệp từ xa. Sau khi tệp PHP độc hại được lưu trữ trong máy chủ trang web, tin tặc có thể giao tiếp với tệp đó để thực hiện các hành động mong muốn của chúng.

Tấn công thực thi mã tùy ý là gì?

Bây giờ chúng ta đã biết Bao gồm tệp từ xa và cục bộ là gì, hãy tiếp tục và thử tìm hiểu Thực thi mã tùy ý là gì. Bao gồm tệp và bao gồm mã tùy ý có liên quan đến nhau. Trong mọi trường hợp Bao gồm tệp, mục đích của tin tặc là thực thi một mã tùy ý trên trang web. Hãy quay trở lại ví dụ về Local File Inclusion trong đó hacker đã tải lên một hack.php trong trang web của trường đại học và sau đó tải lên control.php với sự trợ giúp của hack.php. Cụm từ Thực thi mã tùy ý là mô tả khả năng của tin tặc có thể thực thi bất kỳ lệnh nào mà anh ta chọn trên một trang web bị tấn công. Khi các tệp PHP (hack.php và control.php) được đưa lên máy chủ trang web, hacker có thể thực thi bất kỳ mã nào mà anh ta muốn. Quá trình thực thi bất kỳ mã nào từ các tệp anh ấy đã tải lên được gọi là Thực thi mã tùy ý.
Hack rất phức tạp. Trong bài đăng này, chúng tôi đã cố gắng giải thích điều đó thật đơn giản nhưng nếu có phần nào đó không hợp lý với bạn, chúng tôi mong người đọc viết thư cho chúng tôi. Trong bài đăng tiếp theo, chúng ta sẽ thảo luận về một cuộc tấn công hack phổ biến khác trên một trang web WordPress có tên là Cross-Site Scripting (XSS). Hãy xem.