Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 📁 File Upload Vulnerability – Khi tính năng tiện lợi trở thành cửa hậu bảo mật


    File Upload là chức năng gần như không thể thiếu trong các ứng dụng web:
    upload avatar, tài liệu, ảnh, CV, báo cáo…

    Tuy nhiên, nếu kiểm soát không chặt chẽ, File Upload có thể trở thành lỗ hổng nghiêm trọng, cho phép attacker:
    • Upload webshell
    • Thực thi mã từ xa (RCE)
    • Chiếm quyền server
    • Phát tán malware

    🔍 File Upload Vulnerability là gì?


    Là lỗ hổng xảy ra khi ứng dụng không kiểm tra hoặc kiểm tra không đầy đủ file do người dùng tải lên.

    ➡️ Attacker có thể upload:
    • File chứa mã độc
    • File giả mạo định dạng
    • File có thể thực thi trên server

    ⚠️ Hậu quả thực tế
    • RCE (Remote Code Execution)
    • Deface website
    • Lấy database
    • Leo thang đặc quyền
    • Pivot sang hệ thống nội bộ
    Rất nhiều cuộc tấn công web thực tế bắt đầu từ một tính năng upload tưởng như vô hại.
    🧠 Kỹ thuật tấn công File Upload phổ biến

    1️⃣ Upload webshell trực tiếp
    • PHP, ASP, JSP…
    • Server cho phép thực thi file upload
    📌 Ví dụ nguy hiểm: shell.php
    2️⃣ Bypass kiểm tra đuôi file
    • Đổi tên file: shell.php.jpg shell.phtml shell.phar
    • Lợi dụng regex yếu

    3️⃣ Fake MIME-Type
    • Header:
    Content-Type: image/jpeg nhưng nội dung là mã thực thi.
    4️⃣ Upload file có payload nhúng
    • Ảnh chứa PHP code
    • Document chứa macro độc hại

    5️⃣ Path Traversal khi upload
    • Ghi đè file hệ thống: ../../../../var/www/html/shell.php

    6️⃣ Upload file lớn để DoS
    • Không giới hạn dung lượng upload
    • Gây đầy ổ đĩa

    🛡 Cách phòng chống File Upload Vulnerability

    ✅ 1. Whitelist định dạng file
    • Chỉ cho phép các định dạng cần thiết
    • Không dùng blacklist

    📌 Ví dụ: .jpg .png .pdf
    ✅ 2. Kiểm tra nội dung file (Magic Bytes)
    • Không chỉ dựa vào đuôi file
    • Xác minh chữ ký file thật sự

    ✅ 3. Đổi tên file khi lưu
    • Không dùng tên gốc do user cung cấp
    • Dùng UUID hoặc hash

    ✅ 4. Lưu file ngoài web root
    • Không cho truy cập trực tiếp qua URL
    • Dùng server trung gian để đọc file

    ✅ 5. Vô hiệu hóa quyền thực thi
    • Thư mục upload: chmod 644
    • Không cho execute

    ✅ 6. Giới hạn kích thước & số lượng file
    • Ngăn DoS
    • Kiểm soát tài nguyên

    ✅ 7. Quét malware
    • Antivirus
    • YARA rule
    • Sandbox

    ✅ 8. Logging & Monitoring
    • Ghi log upload
    • Phát hiện hành vi bất thường

    🔐 File Upload trong góc nhìn Pentester

    Pentester thường kiểm tra:
    • Server có cho thực thi file upload không
    • Có bypass MIME/type không
    • Có path traversal không
    • Có upload được file đa định dạng không

    🎯 Kết luận

    File Upload không nguy hiểm — cấu hình sai mới nguy hiểm.

    Một chức năng upload an toàn cần:
    • Kiểm soát đầu vào
    • Kiểm soát quyền
    • Kiểm soát vị trí lưu trữ
    “Một webshell nhỏ có thể đánh sập cả hệ thống.”

    Click image for larger version

Name:	insufileuplod.webp
Views:	11
Size:	14.2 KB
ID:	438683
Working...
X