Skip to content

Llam-a/File-upload-Vulnerability

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 

Repository files navigation

File-upload-Vulnerability

File Upload:

  • Lỗ hổng File Upload xảy ra khi máy chỉ web cho phép người dùng upload file lên hệ thống mà không xác thực đầy đủ những thứ như tên, loại, nội dung hoặc kích thước của chúng. Khi không có những hạn chế đối với file thì attacker có thể lợi dụng điều đó để thực thi các kịch bản tấn công, thậm chí là thực thi mã từ xa.

  • Web shell là một tập lệnh độc hại cho phép attacker thực hiện các lệnh tùy ý trên máy chủ web từ xa chỉ bằng cách gửi các yêu cấp HTTP đến đúng điểm cuối. Nếu có thể upload web shell thành công, bạn có toàn quyền kiểm soát máy chủ.

Nguyên nhân:

Lỗ hổng chạy Script file upload xảy ra khi thỏa mãn những điều kiện sau:

  • File upload được lưu vào public directory

  • Có thể upload các file script

Đối với uploader, khi tạo ra một ứng dụng phù hợp hai điều kiện trên thì sẽ trở thành nguyên nhân sinh ra lỗ hổng. Vì thế, việc không thỏa mãn ít nhất một trong hai điều kiện nêu trên trở thành đối sách giải quyết của lỗ hổng này.

Ảnh hưởng:

Ảnh hưởng của lỗ hổng file upload phụ thuộc vào hai yếu tố chính:

  • phần của file mà trang web không thể xác định được đúng cách

  • Những hạn chế được áp dụng lên file sau khi đã upload thành công

Trường hợp kích thước của tệp nằm ngoài ngưỡng dự kiến có thể kích hoạt tấn công DoS, attacker có thể tấn công lấp đầy không gian đĩa có sẵn.

Trường file được upload không được xác thực đúng cách có thể cho phép attacker ghi đè các tệp quan trọng bằng cách tải lên tệp có cùng tên. Nếu máy chủ cũng dễ bị truy cập thư mục thì attacker có thể upload file vào những vị trí không xác định được.

Trường hợp tệ nhất, loại file không được xác định đúng cách và cấu hình máy chủ cho phép file được thực thi dưới dạng mã (như .php hay .jsp). Trong trường hợp này, attacker có thể upload file có chức năng như một web shell và có thể cho attacker có toàn quyền kiểm soát máy chủ.

Tóm lại, lỗ hổng file upload xảy ra có thể:

  • Làm lộ các thông tin nội bộ, chẳng hạn như đường dẫn của máy chủ

  • Là tiền đề dẫn đến các lỗ hổng khác

  • Khiến attacker chiếm quyền điều khiển hệ thống

Khai thác lỗ hổng File Upload:

Không lọc dữ liệu đầu vào:

Có thể tải lên bất kỳ file nào.

Chúng ta có thể up lên 1 file shell bất kỳ và khai thác trực tiếp. Có một lưu ý đặc biệt đó là file thực thi phải phù hợp với Web server đang sử dụng.Bạn có thể up 1 file .jsp với Apache nhưng nó sẽ không thực thi được.

image

Bypass Check Header:

Đoạn code sử dụng sẽ trông như thế này:

image

Để bypass qua filter này, hãy dùng burp suite sửa content type thành image/... Rồi sau đó forward là đuôc

Bypass Check the blacklisted:

Blacklist là danh sách những file bị cấm tải lên. Giả sử đoạn code đó sẽ trông như sau:

image

Bypass qua filter này có thể Upload file có đuôi .php3, .php4, .php5, .pHp, ...

Bypass Check the whitelisted:

Ngược lại với Blacklist thì Whitelist sẽ là danh sách những file được cho phép tải lên.Theo mình thấy thì đây là filter bypass khoai nhất.

image

Bypass check image giả hay thật:

Việc xác định định dạng file ngoài việc dựa vào extension, người ta còn dựa vào signature file. Việc xác định signature file sẽ dựa vào 8 bits đầu của file. Code của nó sẽ trông như thế này.

image

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors