檔案包含漏洞原理
程式開發人員一般會把重複使用的函式寫到單個檔案中,需要使用某個函式時直接呼叫此檔案,而無需再次編寫,這種檔案呼叫的過程一般被稱為檔案包含。通過函式包含檔案時,由於沒有對包含的檔名進行有效的過濾處理,被攻擊者利用從而導致了包含了web根目錄以外的檔案進來,就會導致檔案資訊的洩露甚至注入了惡意**。
分類
本地檔案包含
被包含的檔案在本地伺服器中。
遠端檔案包含
被包含的檔案在第三方伺服器中。
檔案包含函式
a、include():只有**執行到該函式時才會包含檔案進來,發生錯誤時只給出
乙個警告並繼續向下執行。
b、include_once():和include()功能相同,區別在於當重複呼叫同一檔案時,程
序只呼叫一次。
c、require():只要程式執行就包含檔案進來,發生錯誤時會輸出錯誤結果並終止
執行。d、require_once():和require()功能相同,區別在於當重複呼叫同一檔案時,程式
只呼叫一次。
存在的風險讀取檔案、寫入檔案。
實戰
攻擊目標
系統:ubuntu16.04
ip:192.168.1.11
環境:apache2+php7.2+mysql5.7
應用:dvwa
讀取檔案
使用…/…/…/…/…/…/etc/shadow讀取本地賬戶資訊
2、寫入檔案
使用input寫入檔案
如何防禦
1、嚴格檢查變數是否已經初始化。
2、嚴格判斷包含中的引數是否外部可控。
3、基於白名單的包含檔案驗證,驗證被包含的檔案是否在白名單中。
4、盡量不要使用動態包含,可以在需要包含的頁面固定寫好,如:include("func.php")。
5、對所有輸入提交可能包含的檔案位址,包括伺服器本地檔案及遠端檔案,
進行嚴格的檢查,引數中不允許出現../之類的目錄跳轉符。
6、可以通過呼叫str_replace()函式實現相關敏感字元的過濾,
一定程度上防禦了遠端檔案包含。
檔案上傳漏洞全面滲透姿勢總結
返利 www.cpa5.cn 本文件只做技術交流,切勿進行違法犯罪操作,請做乙個好人,不給別人添麻煩 檔案上傳的場景真的隨處可見,不加防範小心,容易造成漏洞,造成資訊洩露,甚至更為嚴重的災難。再次宣告 大家在自己的搭建的環境裡面測試,不要給別人造成麻煩哈。檔案上傳漏洞是進行滲透是比較常見好利用的漏洞...
檔案上傳漏洞全面滲透姿勢總結
本文件只做技術交流,切勿進行違法犯罪操作,請做乙個好人,不給別人添麻煩 檔案上傳的場景真的隨處可見,不加防範小心,容易造成漏洞,造成資訊洩露,甚至更為嚴重的災難。再次宣告 大家在自己的搭建的環境裡面測試,不要給別人造成麻煩哈。檔案上傳漏洞是進行滲透是比較常見好利用的漏洞,利用它能夠直接上傳websh...
滲透測試 檔案上傳繞過思路
瀏覽器審查元素刪除檢測函式 上傳正常格式檔案通過burpsuite抓包修改為filename為指令碼 基於mime 上傳指令碼格式檔案,burpsuite 抓包修改檔案的content type 上傳正常格式檔案,burosuite抓包修改檔案的filename為指令碼格式 基於字尾 黑名單wind...