Lỗ hổng tải lên tệp php

Kết thúc nội dung Thử nghiệm thâm nhập Bước 3 – Chọc ngoáy lỗ hổng kiểm soát truy cập trong quy trình nhiều bước, tôi tạm gác lại câu chuyện liên quan đến Ủy quyền/Kiểm soát truy cập. Kỳ này tôi sẽ chuyển hướng sang một chủ đề khác cũng không mất phần ác độc là lỗ hổng tải lên tệp [tạm dịch là các lỗ hổng liên quan đến hoạt động tải tệp lên]

Thực tế, khi sử dụng từ “không kém phần ác độc”, tôi đã sử dụng phương án giảm thiểu. Với các lỗ hổng tải lên tệp, hậu quả trong một số trường hợp khai thác dạng lỗi này có thể sẽ gây ra tai nạn cho nhân “tay trắng”

#1. Lỗ hổng tải lên tệp có thể nguy hiểm đến đâu?

Nói một cách ngắn gọn, lỗ hổng tải lên tệp có thể xuất hiện khi máy chủ web cho phép người dùng tải tệp lên hệ thống tệp của máy chủ mà không phát triển khai báo các bước kiểm tra phù hợp [ví dụ kiểm tra tên, loại, nội dung, kích thước

Hoạt động tấn công khai thác với các lỗ hổng tải lên tệp có thể mô tả sơ lược như sau

  • Kẻ tấn công tuồn hàng độc hại lên máy chủ;
  • Kẻ tấn công kích hoạt các hàng con đã đưa lên máy chủ hoạt động để khai thác [phần này tôi sẽ diễn giải rõ hơn trong Mục 2]
Khai thác lỗ hổng tải lên tệp

Nguồn. portwigger. bọc lưới

Nhìn chung, hậu quả của lỗ hổng tải lên tệp sẽ phụ thuộc vào việc hệ thống thất bại trong quá trình kiểm tra giám sát yếu tố nào [tên/nội dung/kích thước/loại…] và hệ thống có những giải pháp giải pháp gì để kiểm tra thiệt hại khi . Một số dạng hậu quả phổ biến có thể bao gồm

  • Với trường hợp tên tệp [tên tệp], kẻ tấn công có thể ghi đè vào các tệp hệ thống quan trọng;
  • Với kích thước tệp trường hợp [kích thước tệp], kẻ tấn công có thể sử dụng hết dung lượng ổ đĩa [không gian đĩa] của hệ thống từ đó kích hoạt dạng tấn công từ chối dịch vụ – DOS;
  • Và trong kịch bản thú vị nhất, hệ thống không thể kiểm tra được loại tệp [loại tệp] dẫn đến việc cho phép kẻ tấn công tuồn các loại độc hại [ví dụ như. php,. jsp] vào và thực thi như mã. Với tệp mã phía máy chủ có thể hoạt động như web shell này, kẻ tấn công có thể toàn quyền kiểm tra máy chủ

Lưu ý

  • Web shell có thể hiểu là script độc hại cho phép kẻ tấn công thực thi [từ xa] các tùy chọn lệnh trên máy chủ web thông qua việc gửi yêu cầu HTTP đến điểm cuối phù hợp;
  • Thông báo giới thiệu thêm về shell tôi có trình bày trong nội dung Giải mã Kali Linux – Phần 4. Ép Xung đột tốc độ thao tác Dòng lệnh với Bash và nhập môn học Bash Script

Thực tế, khả năng có thể là một hệ thống thả nổi thả nổi không có giải pháp để kiểm tra Ngăn chặn các lỗ hổng tải lên tệp là rất thấp. Tình trạng dễ bắt gặp hơn là khi hệ thống có triển khai giải pháp bảo vệ nhưng vì lý do gì đó vẫn tồn tại trong vấn đề cho phép kẻ tấn công bỏ qua các phương án bảo vệ, ví dụ như

  • Hệ thống sử dụng danh sách đen để ngăn chặn việc tuồn một số loại tệp nhất định vào hệ thống nhưng không đủ hoặc thiếu chặt chẽ để kiểm tra các con hàng độc lạ hoặc phần mở rộng tệp có phần mở rộng thiếu tính chất;
  • Hệ thống có tiến trình kiểm tra loại tệp nhưng dựa trên các thuộc tính có thể bị kẻ tấn công thao tác với công cụ phù hợp [ví dụ Burp Suite Repeater];
  • Hệ thống triển khai giải pháp kiểm tra giám sát cmn tiêu chuẩn trên một phần của hệ thống nhưng “quên” hoặc triển khai giải pháp yếu hơn ở một phần khác. Và giữa 2 con đường để lựa chọn, kẻ tấn công tỏ ra dại dột mà đâm đầu vào chỗ khó

#2. Quá trình xử lý yêu cầu đối với tệp tĩnh – cơ sở để ăn “lỗ hổng tải tệp lên”

Dù phần lớn trang web hiện tại có mức độ động rất cao [tạm hiểu là trang web thu thập tài nguyên từ đâu đó về để phục vụ cho yêu cầu của người dùng, chứ không phân tích đường dẫn yêu cầu rồi truy xuất thông tin tương ứng từ một tệp/thư mục . Hiểu rõ cơ chế xử lý yêu cầu đối với tệp tĩnh là nền tảng cơ bản để bạn có thể đánh đòn công suất chuẩn xác vào điểm yếu của mục tiêu, tránh tình trạng đánh mất cơ hội, phóng sai vị trí tiếc nuối đầy tiếc nuối

Với yêu cầu đám đối với các tệp tĩnh này, hệ thống sẽ phân tích đường dẫn yêu cầu để xác định phần mở rộng của tệp trước khi đối chiếu với thông tin thiết lập trên hệ thống [ví dụ MIME/Media type] để sau đó khai thác một số kịch bản như

  • Loại tệp không thể thực thi [ví dụ như hình ảnh hoặc trang HTML]. Máy chủ sẽ cung cấp phản hồi vô nội dung và gửi cho máy khách;
  • Loại tệp thực thi [ví dụ php]. Nếu máy chủ được cấu hình cho phép chạy loại tệp này, dựa trên tiêu đề và tham số của yêu cầu HTTP, con hàng này sẽ chỉ định các biến [biến số] tương ứng rồi chạy tập lệnh. Kết quả xử lý [có thể bao gồm thêm các bước xử lý phía máy chủ khác] sau đó được đưa vào phản hồi để trả cho khách hàng;
  • Loại tệp thực thi. Nếu server được cấu hình không cho phép chạy, con hàng này sẽ phát sinh lỗi hoặc trả về phản hồi cho client dưới dạng văn bản thuần túy. Tình trạng này vẫn có thể nguy hiểm nếu hệ thống tồn tại tại các thiết lập không phù hợp làm rò rỉ thông tin

Lưu ý

  • Loại nội dung trong tiêu đề phản hồi sẽ có thể chọn loại tệp mà máy chủ đã xác định. Thông báo này có thể dựa trên thiết lập của mã ứng dụng hoặc kết quả đối chiếu với loại MIME. từ đây, bạn sẽ có thể có các điều chỉnh phù hợp để tăng tỷ lệ thành công trong quá trình tấn công;
  • Bạn có thể bơi vào các loại MIME phổ biến – HTTP. MDN [mozilla. org] hoặc Loại phương tiện [iana. org] để xem thêm thông tin về đám MIME/Media type;
Loại MIME

#3. Chắc chắn lỗ hổng upload file dễ hay khó?

Về cơ bản, để ngăn chặn các lỗ hổng tải lên tệp, bạn chỉ cần đừng mắc sai lầm trong quá trình phát triển khai ra các biện pháp kiểm soát [nhưng mà nói thì lúc nào cũng dễ làm hơn]. ] và đặc biệt lưu ý các vấn đề

  • Kiểm tra phần mở rộng tệp dựa trên danh sách trắng [lưu ý, danh sách trắng chứ không phải danh sách đen] để không phải lo lắng vì lỡ quên một [hoặc một số] có thể loại phần mở rộng tệp độc hại khác;
  • Soi kỹ tên tệp coi có đám chuỗi mờ ám [ví dụ kiểu “…/”] Hỗ trợ ngăn chặn trò chơi truyền tải [tôi sẽ sắp xếp giới thiệu chiêu này trong một nội dung khác];
  • Đổi tên tệp đã tải lên để ngăn chặn khả năng ghi đè vào tệp hiện có trên hệ thống;
  • Chỉ cho phép tải tệp lên hệ thống tệp vĩnh viễn của máy chủ sau khi quá trình kiểm tra khảo sát các loại thuốc đã hoàn thành tốt đẹp;
  • Sử dụng các khung xử lý tệp tải lên tiêu chuẩn đã được kiểm tra thử nghiệm thay vì chơi hàng “nhà tự trồng” [trừ trường hợp bạn bắt buộc phải làm thế]

Đến đây tôi xin kết thúc màn giới thiệu bắt đầu với các lỗ hổng tải lên tệp. Trong các kỳ tiếp theo, tôi sẽ lần lượt demo minh họa một số đường cơ bản để khai thác các vấn đề phổ biến của dạng lỗ hổng này, bao gồm

Chủ Đề