[Hack] Remote File Inclusion

之前意外的發現一個web可以透過RFI的方式進入,但是我一直try都沒有辦法讓他include正確的外部phpinfo.php,結果在今天意外的看到一篇文章才了解到問題所在:


<?php
include($dir."/ attack.php");
?>

上例中“$dir”一般是一個在執行代碼前已經設定好的路徑,如果攻擊者能夠使得“$dir”沒有被設定的話,那麼他就可以改變這個路徑。但是攻擊者並不能做任何事情,因為他們只能在他們指定的路徑中訪問檔案“attack.php”。但是由於有了對遠程檔案的支援,攻擊者就可以做任何事情。例如,攻擊者可以在某台伺服器上放一個檔案“attack.php”,裡麵包含了惡意代碼,然後把“$dir”設定為“http://evilhost/”,這樣我們就可以在目標主機上執行上面的惡意代碼,將結果返回到客戶的瀏覽器中。

需要注意的是,攻擊伺服器(也就是evilhost)應該不能執行PHP代碼,否則攻擊代碼會在攻擊伺服器,而不是目標伺服器執行。

…取自Phate

所以可以了解的是,因為我之前是直接include到我的機器上,所以該phpinfo.php顯示的是我自己機器的資料,這樣是我無法接受的。於是改上傳到一個沒有能夠解析.php的空間上,用RFI直接include就可以了。

前提: 該server的php.ini要有開啟allow_url_fopen or allow_url_include,這樣RFI才會成功,要注意一下。

Leave a Reply

Your email address will not be published. Required fields are marked *