美文网首页
文件包含漏洞实验详解

文件包含漏洞实验详解

作者: CSeroad | 来源:发表于2017-12-15 15:24 被阅读33次

参考《白帽子讲web安全》,实验心得:

想要成功利用文件包含的漏洞,需要满足两个条件

(1)include()等函数通过动态变量的方式引入需要包含的文件

(2)用户能够控制该动态变量

以DVWA的文件包含来做实验

实验环境:

DVWA,win10,wampserver2.4-x86,中国菜刀等

本地文件包含漏洞

当用户可以控制page参数时,我们可以进行查看我们任意想要查看的文件。即目录遍历。因为wamp的php.ini文件默认情况下allow_url_fopen=on

包含漏洞 漏洞探索 phpinfo

使用../../的方式来返回上层目录。当然也采用不同的编码来进行绕过一些限制。

文件包含的防护

当php采用了open_basedir,它用来限制特定目录php能打开的文件。

在php.ini中默认是没有打开的。

无设置

我们对其进行设置,任意文件包含就会失败

限制目录

如果是要限制一个指定的目录,最后一定要加上\

远程文件包含

默认情况下php.ini的配置选项allow_url_include=off,不能远程文件,我们手动设置为on,以方便我们的实验

www.baidu.com success

我们还可以利用文件包含漏洞执行任意命令,需要借助另一台服务器,我利用虚拟机的win7来让实验更加完美,虚拟机IP为192.168.15.156,我们新建一个文件hack.txt,代码为:

远程包含一句话木马

注:创建的文件后缀名一定是txt、jpg、rar,一定是非php文件后缀名的文件,进而getshell

然后我们控制page参数来访问我们构建的脚本

我们可看到在本机win10的dvwa下新建了一个文件sheller.php

sheller.php

访问sheller.php

成功利用

那么我们可以把hack.txt代码进行修改,和中国菜刀相结合

hack.txt文件

再次访问,并使用菜刀,成功利用。

生成shell.php 中国菜刀 成功

我们还有别的思路,都可以进行尝试

比如在hack.php文件里,写以下代码

系统命令 ipconfig IP地址

注意:$_POST和$_GET的传递方式不一样。

本地文件包含的利用技巧

1. php://input是可以访问请求原始数据的只读流。

可以读取到post没有解析的原始数据

2. php://filter读取包含漏洞脚本的源码

php://filter/read=convert.base64-encode/resource=[文件路径]

base64

读取index.php文件,再使用base64进行解码。

3. data URL schema将文件包含漏洞变成代码进行执行漏洞

data:text/plain,<?php system('ipconfig');?>

执行系统命令

4. 包含apache配置文件

首先利用burpsuite进行抓包访问,将想要执行的php代码插入其中,避免<、>等符号被过滤,随后访问access.log,执行代码。

(我使用的wampserver,access.log默认在wamp/logs/access.log)

burpsuite抓包 访问access.log success

5. file:// 协议查看任意文件

可查看任意文件

6. zip:// 协议

zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件。可以被php解析的子文件后缀名

还有其他一些协议的利用:

php://stdin 是只读的, php://stdout 和 php://stderr 是只写的,ftp://访问ftp

expect://协议执行任意linux的指令,使用http://localhost/include.php?page=expect://command

来执行任意linux指令

总结:

文件包含漏洞即是类似include函数在包含文件的时候,使用GET或POST请求方式,使得参数有可能被控制。

所以出现文件包含漏洞

如:

可用于代码审计

参考文献:

https://www.waitalone.cn/php-file-include.html

http://www.jb51.net/article/128429.htm

相关文章

  • 文件包含漏洞实验详解

    参考《白帽子讲web安全》,实验心得: 想要成功利用文件包含的漏洞,需要满足两个条件 (1)include()等函...

  • 文件包含漏洞详解

    http://tieba.baidu.com/p/2310282657 什么是”远程文件包含漏洞”?服务器通过ph...

  • php安全

    文件包含漏洞** 本地文件包含**能打开并包含本地文件的漏洞,被称为本地文件包含漏洞(LFI)%00截断,php内...

  • 网络安全之文件包含漏洞总结

    介绍 文件包含漏洞属于代码注入漏洞,为了减少重复代码的编写,引入了文件包含函数,通过文件包含函数将文件包含进来,直...

  • 文件包含漏洞

    定义:在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄...

  • 文件包含漏洞

    几乎所有的脚本语言中都会提供文件包含的功能,但文件包含漏洞在PHP Web Application中居多,在JSP...

  • 文件包含漏洞

    文件转载自https://blog.csdn.net/chence19871/article/details/51...

  • 文件包含漏洞

    文件包含漏洞 产生的原因:通过引入文件时,用户可控,没有严格的检验,或是被绕过,操作一些敏感文件,导致文件泄露和恶...

  • 文件包含漏洞

    文件包含 常见文件包含函数 利用条件 程序用include()等文件包含函数通过动态变量的范式引入需要包含的文件 ...

  • 文件包含漏洞

    当allow_url_open=on allow_url_include=on 就会造成文件包含漏洞 http:/...

网友评论

      本文标题:文件包含漏洞实验详解

      本文链接:https://www.haomeiwen.com/subject/pghdwxtx.html