在實戰中檔案包含漏洞配合PHP的偽協議可以發揮重大的作用,比如讀取檔案原始碼,任意命令執行或者開啟后門獲取webshell等,常用的偽協議有
- php://filter 讀取檔案原始碼
- php://input 任意代碼執行
- data://text/plain 任意代碼執行
- zip:// 配合檔案上傳開啟后門
下面拿ctf.show WEB模塊的第3關舉個栗子,這一關存在檔案包含漏洞
php://filter
php://filter 協議可以對打開的資料流進行篩選和過濾,常用于讀取檔案原始碼
使用檔案包含函式包含檔案時,檔案中的代碼會被執行,如果想要讀取檔案原始碼,可以使用base64對檔案內容進行編碼,編碼后的檔案內容不會被執行,而是展示在頁面中,我們將頁面中的內容使用base64解碼,就可以獲取檔案的原始碼了
使用base64對index.php檔案進行編碼,可以看到頁面中展示了編碼后的檔案內容
?url=php://filter/read=convert.base64-encode/resource=index.php

接下來我們將編碼后的檔案內容進行base64解密,可以得到檔案原始碼

php://input
php://input 可以訪問請求的原始資料,配合檔案包含漏洞可以將post請求體中的內容當做檔案內容執行,從而實作任意代碼執行,需要注意的是,當enctype=multipart/form-data時,php:/input將會無效
?url=php://input -- GET請求引數中使用php://input協議
<?php system('ls'); ?> -- post請求體中的內容會被當做檔案內容執行


data://
協議格式: data:資源型別;編碼,內容
data://協議通過執行資源型別,使后面的內容當做檔案內容來執行,從而造成任意代碼執行
?url=data://text/plain,<?php system('id') ?>

zip://
ziip://協議用來讀取壓縮包中的檔案,可以配合檔案上傳開啟后門,獲取webshell
將shell.txt壓縮成zip,再將后綴名改為jpg上傳至服務器,再通過zip偽協議訪問壓縮包里的檔案,從而鏈接木馬
?url=zip://shell.jpg
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295093.html
標籤:其他
上一篇:ctfshow-WEB-web3
下一篇:ctfshow-WEB-web2
