php伪协议总结

0x01 首先放源码

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);
?>


0x02 分析

  • strstr过滤了一些php伪协议(大小写绕过)
  • 第三行,echo $_GET['hello'];也可以加以利用


0x03 解题过程

1、利用php://input伪协议(大小写绕过strstrt)

exp:在这里插入图片描述

图片一




2、利用php://filter伪协议(大小写绕过strstr)

exp:在这里插入图片描述

图片二

read=convert.base64-encode将代码转换成 b64编码,从而不会执行,可以显示在页面
拓展:还有许多转换的方法,在许多的地方都有妙用。

1、read=convert.base64-decode      
2、read=string.strip_tags
3、write=string.strip_tags
4、write=string.rot13
[参考链接:https://www.leavesongs.com/PENETRATION/php-filter-magic.html](https://www.leavesongs.com/PENETRATION/php-filter-magic.html)


3、利用data://协议

data://text/plain,<?php 代码?>
or
data://text/plain;base64, 代码(代码经过base64转码)

在这里插入图片描述

图片三




4、利用file://协议(前提是知道文件的绝对路径,不适用于查看文件的内容)
当然不觉得无聊的话也可以这样
在这里插入图片描述

图片四




5、利用echo $_GET['hello']来显示内容
在这里插入图片描述

图片五





在这里插入图片描述
图片六




最后再贴一张伪协议使用的条件
在这里插入图片描述

图片七




phar://  可以查找指定压缩包内的文件,相对路径和绝对路径均可
zip://  用法与phar类似,不过有两点要注意

- 只能传入绝对路径。
- 要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值