TungNT (Blue)

tungnt.blue@gmail.com

User Tools

Site Tools


development:security:upload-file

Khi thực hiện upload file trên các hệ thống web, có nhiều lỗi bảo mật có thể xảy ra nếu không có các biện pháp bảo vệ thích hợp. Dưới đây là một số lỗi bảo mật phổ biến và phương pháp phòng chống:

Lỗi bảo mật phổ biến khi upload file

Upload file không kiểm tra định dạng

Hacker có thể upload các file có định dạng không mong muốn như .php, .jsp, .exe để thực hiện mã độc.

Upload file có kích thước quá lớn

Có thể gây quá tải cho hệ thống, dẫn đến từ chối dịch vụ (DoS).

Lưu trữ file ở vị trí không an toàn

Lưu trữ file ở các thư mục có thể truy cập công khai, tạo điều kiện cho hacker thực hiện tấn công.

Không kiểm tra nội dung file

File có thể chứa mã độc hoặc các nội dung không an toàn khác.

Đặt tên file không an toàn

Đặt tên file với các ký tự đặc biệt có thể dẫn đến tấn công Path Traversal hoặc Remote Code Execution.

Một số ví dụ bị hack khi upload file

Có nhiều trường hợp đã xảy ra khi hacker lợi dụng lỗ hổng bảo mật trong quá trình upload file để tấn công hệ thống. Dưới đây là một số ví dụ nổi bật:

WordPress Plugin Vulnerabilities

Nhiều plugin của WordPress đã từng bị phát hiện lỗ hổng liên quan đến việc upload file, như:

  • TimThumb: Một plugin phổ biến bị lỗ hổng upload file từ xa, cho phép hacker upload và thực thi mã độc trên máy chủ.
  • WP Statistics: Plugin này từng có lỗ hổng cho phép upload file với phần mở rộng .php, dẫn đến khả năng thực thi mã độc.

Vulnerability in Content Management Systems (CMS)

Drupal: Năm 2018, lỗ hổng trong hệ thống upload file của Drupal đã bị khai thác để upload và thực thi mã độc, từ đó chiếm quyền kiểm soát hệ thống.

Exploits in Online File Sharing Services

Dropbox: Năm 2011, lỗ hổng trong hệ thống của Dropbox cho phép hacker upload file với mã độc, gây nguy hại cho người dùng tải xuống.

Government Websites

US Voter Database: Năm 2017, một lỗ hổng upload file trong hệ thống đăng ký cử tri của một số bang ở Mỹ cho phép hacker upload mã độc để truy cập dữ liệu cá nhân của cử tri.

E-commerce Platforms

Magento: Năm 2016, lỗ hổng trong nền tảng e-commerce Magento cho phép hacker upload file mã độc, từ đó chiếm quyền kiểm soát cửa hàng trực tuyến.

Forum and Social Networking Sites

vBulletin: Năm 2019, lỗ hổng trong phần mềm forum vBulletin cho phép upload file mã độc, từ đó chiếm quyền kiểm soát diễn đàn.

Minh Họa - Khai Thác Lỗ Hổng Upload File

Bước 1: Tìm Lỗ Hổng

Hacker sẽ tìm kiếm các trang web hoặc ứng dụng web có chức năng upload file nhưng không có kiểm tra chặt chẽ về định dạng file, MIME type, hoặc phần mở rộng file.

Bước 2: Chuẩn Bị File Độc Hại

Hacker tạo một file chứa mã độc, ví dụ file .php với nội dung:

<?php
// File độc hại PHP
system($_GET['cmd']);
?>

Bước 3: Upload File Độc Hại

Hacker sử dụng chức năng upload file của trang web để upload file PHP độc hại này.

Bước 4: Thực Thi Mã Độc

Nếu file được upload thành công và lưu trữ tại vị trí có thể truy cập công khai, hacker sẽ truy cập vào file thông qua URL, ví dụ: http://example.com/uploads/malicious.php?cmd=whoami

Lệnh whoami sẽ được thực thi trên máy chủ, và kết quả sẽ được trả về cho hacker, cho phép họ biết được thông tin về hệ thống.

Phương pháp phòng chống

Kiểm tra định dạng file

Chỉ cho phép upload các định dạng file cần thiết và an toàn (ví dụ: .jpg, .png, .pdf).

Giới hạn kích thước file

Đặt giới hạn kích thước file tối đa mà hệ thống có thể chấp nhận để tránh quá tải.

Lưu trữ file ở vị trí an toàn

Lưu trữ file ở thư mục không công khai, có quyền truy cập hạn chế.

Kiểm tra nội dung file

Sử dụng các công cụ kiểm tra mã độc hoặc nội dung không an toàn trong file trước khi lưu trữ.

Đổi tên file upload

Đổi tên file trước khi lưu trữ để tránh các vấn đề liên quan đến ký tự đặc biệt và xung đột tên.

Sử dụng công cụ bảo mật

Sử dụng các công cụ bảo mật như tường lửa ứng dụng web (WAF) để giám sát và ngăn chặn các tấn công từ phía upload file.

Kiểm tra MIME type

Kiểm tra MIME type của file để đảm bảo file có định dạng hợp lệ trước khi cho phép upload.

Kiểm tra metadata

Loại bỏ các metadata không cần thiết hoặc nguy hiểm có thể có trong file.

Kiểm tra phần mở rộng kép

Phát hiện và ngăn chặn các file có phần mở rộng kép như file.php.jpg.

Hạn Chế Quyền Truy Cập

Hạn chế quyền truy cập của thư mục chứa file upload, chỉ cho phép quyền ghi (write) và không cho phép thực thi (execute).

development/security/upload-file.txt · Last modified: 2024/08/06 07:04 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki