php文件包含漏洞分析 您所在的位置:网站首页 php文件包含漏洞函数嘛 php文件包含漏洞分析

php文件包含漏洞分析

#php文件包含漏洞分析| 来源: 网络整理| 查看: 265

文件包含漏洞定义 什么是文件包含?

文件包含漏洞常出现在PHP语言中。

 PHP为了提高代码复用性,提供了文件包含函数 include() 、 require()、include_once()和require_once()函数,被包含的文件内容会被当做代码来执行。

 就像造轮子一样:把重复使用的一段代码,单独写到一个文件里,再用文件包含函数来包含这个文件。

 这样就造成一个特征,就是任意后缀名的文件被包含过来就被视为php代码。利用这一特点可以对php系统进行攻击。

php文件包含会用到php伪协议 什么是伪协议?

php伪协议是php支持的协议和封装协议,类似于 fopen()、 copy()、 file_exists() 和 filesize() 的文件系统函数。是php内置的协议可以直接调用。

常见的伪协议 • file:// — 访问本地文件系统 • http:// — 访问 HTTP(s) 网址 • ftp:// — 访问 FTP(s) URLs • php:// — 访问各个输入/输出流(I/O streams) • zlib:// — 压缩流 • data:// — 数据(RFC 2397) • glob:// — 查找匹配的文件路径模式 • phar:// — PHP 归档 • ssh2:// — 安全外壳协议 2 • rar:// — RAR • ogg:// — 音频流 • expect:// — 处理交互式的流

实战分析

php文件包含主要出现位置:

include(),require(),include_once(),require_once()

前两者是本地文件包含,后两者是远程文件包含。

利用分析 简单探测

可以先读取…/…/…/…/…/…/…/…/…/…/etc/passwd之类的文件,探测是否能读取到文件 在这里插入图片描述

攻击利用一

如上传1.png 文件其中图片马,直接访问不解析。 利用php://filter协议 如/upload//include.php?file=upload/1.png 解析其中问php代码

简单的一句话木马,post请求,请求参数为cmd

#使用data协议配合base64会更好使用 ?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA/Pg==

在这里插入图片描述

expect协议

这个较为少见,但是一旦配置不当可以直接命令执行。 ?file=php://input

请求包body中填入参数

在这里插入图片描述

说明

 本文章仅作技术交流使用,请勿攻击他人。您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行测试。

参考文章

https://www.php.net/manual/zh/wrappers.php http://www.xbhp.cn/news/85575.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有