文件包含漏洞
在web后台開發中,程序員往往為了提高效率以及讓代碼看起來更加簡潔,會使用'包含'函數功能,比如把一系列功能函數都寫進function.php中,之后當某個文件需要調用的時候,就直接在文件頭中寫上一句<?php include function.php?>就可以調用函數代碼。
但有些時候,因為網站功能需求,會讓前端用戶選擇需要包含的文件(或者在前端的功能中使用了'包含'功能),又由於開發人員沒有對要包含的這個文件進行安全考慮,就導致攻擊者可以通過修改包含文件的位置讓后台執行任意文件(代碼)
這種情況我們稱為'文件包含漏洞'
文件包含漏洞有'本地文件包含漏洞'和'遠程文件包含漏洞'兩種情況
本地文件包含
進入靶場
當我們選擇一個球員的時候,url會提交一個get請求
如果這個服務器架設在linux上我們就可以一直../../../../../到根目錄然后再進行對應固定配置文件
這樣就會把相應文件的內容暴露出來
在windows上會發滿一點,我就這樣輸出出來看看就好
遠程文件包含
遠程文件包含漏洞形式跟本地文件包含漏洞差不多,在遠程包含漏洞中,攻擊者可以通過訪問外部地址來加載遠程的代碼。
遠程包含漏洞的前提:如果使用的incldue和require,則需要php.ini配置入選
allow_url_fopen=on //默認打開
allow_url_include=on //默認關閉
本地文件包含需要攻擊者自己猜目錄還只能讀取配置文件
遠程文件包含就厲害了,攻擊者可以自己搭建站點。里面寫上惡意代碼
傳入后台,后台的包含函數就會加載攻擊者的惡意代碼
我們可以寫一個php的文件來自動寫入一個一句話木馬