配合php伪协议利用文件包含漏洞

文章来源:

https://blog.csdn.net/zpy1998zpy/article/details/80598768?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

 

php支持多种封装协议,这些协议常被CTF出题中与文件包含漏洞结合,这里做个小总结。实验用的是DVWA平台,low级别,phpstudy中的设置为5.4.45版本,

设置allow_url_fopen和allow_url_include都为On.

index.php
配合php伪协议利用文件包含漏洞

 

 
index.php同级目录下有mytest001.txt ,

mytest002.txt ,

配合php伪协议利用文件包含漏洞

 

 


mytest003.zip(其中包含mytest003.txt).
配合php伪协议利用文件包含漏洞

 

 



有个小失误,应该写成test003的。



再说明一下,include()函数对文件后缀名无要求,而对其中的语法有要求,即使后缀名为txt,jpg也会被当做php文件解析,只要文件内是<?php  ?>形式就可以执行,但是如果不是php语法的形式,即使后缀为php,也无法执行。
一,php://  访问输入输出流,有两个常用的子协议
1,php://filter  设计用来过滤筛选文件

用法

非php语法文件include失败,直接输出源码内容。
配合php伪协议利用文件包含漏洞

 

 



php语法文件include成功,直接运行
配合php伪协议利用文件包含漏洞

 

 



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

配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 

 



若采用rot13编码,对php文件中的<?是无效的,仍会被认为是php文件去执行,但其中的内容是乱码的,是没有输出效果的。

配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 

 




2,php://input      (注意,如果不允许使用次协议,可用类似功能的data协议代替,第5点有写!!!!)

这个协议的利用方法是 将要执行的语法php代码写在post中提交,不用键与值的形式,只写代码即可。
配合php伪协议利用文件包含漏洞

 

 


如果可以自己构造代码,就可以看到更重要的信息:

配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 


二,file:// 与php:filter类似,访问本地文件,但是只能传入绝对路径
配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 

 



三,phar://  可以查找指定压缩包内的文件
1,传入绝对路径

配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 

 



2,传入相对路径,即同级目录下的文件

配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 

 



四,zip://  用法与phar类似,不过有两点要注意

1,只能传入绝对路径。

2,要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23
配合php伪协议利用文件包含漏洞

 

 



五,data  与input 类似,都是用户可以控制传入的php代码
1,直接写入代码

data: text/plain,<?php 执行内容 ?>

配合php伪协议利用文件包含漏洞

 

 
2,使用base64编码

data:text/plain;(注意是分号不是逗号,与前面不同)base64,编码后的php代码
配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 

 



有一点要注意的问题,base64编码后的加号和等号要手动的url编码,否则无法识别。

 配合php伪协议利用文件包含漏洞

 

 




同样的,给了自己写代码的权利,就可看到更多东西
配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 

 



六,http协议

include中也可以传入外部链接,采用http://,具体怎么利用以后再来填坑。
配合php伪协议利用文件包含漏洞

 

 配合php伪协议利用文件包含漏洞

 

 



 

最后来总结一下,

php://filter  file:// 可以访问本地的文件

zip://  phar://  可以访问本地压缩文件

php://input  data:  可以自己写入php代码

 

关于allow_url_fopen和allow_url_include的设置和用法这里有个总结:

配合php伪协议利用文件包含漏洞

 

 




 

参考:http://www.freebuf.com/column/148886.html
————————————————
版权声明:本文为CSDN博主「安~然」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zpy1998zpy/article/details/80598768

配合php伪协议利用文件包含漏洞

上一篇:Netty-技术专区-基础入门介绍


下一篇:php常用接口