php本地及远程文件包含漏洞

在php程序中包含有file inclusion的时候,php要开启一下两个功能:

allow_url_fopen on
allow_url_include on

但是开启这两个功能之后伴随的是url漏洞,例如:

http://192.168.2.109/DVWA-1.9/vulnerabilities/fi/?page=include.php

这个连接是正常的连接,但是如果在page后面访问的如果是C:\XXX文件,这样就是php的一个漏洞,如何去防御这种注入

有很多人说把allow_url_fopen on 以及allow_url_include on关闭,但是,关闭之后php很多功能模块无法使用,现在最好的解决方法是用Suhosin。

Suhosin是php的一个扩展模块,能够加强php脚本语言的安全性。

有关Suhosin的详细信息请参见:http://www.shenqhy.com/using-the-php-suhosin-protect-your-environment-install-suhosin.html

linux下php安装Suhosin

1、安装编译工具
yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils  patch perl
2、安装suhosin
cd /usr/local/src  #进入软件包存放目录
wget http://download.suhosin.org/suhosin-0.9.33.tgz  #下载
tar zxvf suhosin-0.9.33.tgz  #解压
cd suhosin-0.9.33  #进入安装目录
/usr/local/php5/bin/phpize  #用phpize生成configure配置文件
./configure  --with-php-config=/usr/local/php5/bin/php-config  #配置
make  #编译
make install  #安装
安装完成之后,出现下面的界面,记住以下路径,后面会用到。
/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/  #suhosin模块路径
3、配置php支持suhosin
vi /usr/local/php5/etc/php.ini  #编辑配置文件,在最后一行添加以下内容
extension="suhosin.so"
4、测试
vi /usr/local/nginx/html/phpinfo.php   #编辑
<?php
phpinfo();
?>
:wq! #保存退出
service php-fpm restart  #重启php-fpm
service nginx restart  #重启nginx

至此可以用phpinfo查看php中关于SUhosin信息。

参见:http://www.osyunwei.com/archives/5313.html

时间: 2024-10-12 15:02:35

php本地及远程文件包含漏洞的相关文章

记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)

题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag in ffffllllaaaagggg 再回过头来观察source.php明显是一道代码审计的问题,其中存在4个限制条件 $_REQUEST['file']需要在白名单内,白名单内只有source.php和hint.php $_REQUEST['file']不为空 $_REQUEST['file']必

【转载】PHP本地文件包含和远程文件包含漏洞

远程文件包含(Remote File Inclusion),简称RFI,与其对应的是本地文件包含(Local File Inclusion,LFI),它们都是通过PHP的包含函数即:require(),require_once(),include()和include_once()来使用. 一般情况下,用户通过包含函数将具有特定功能的函数或类包含到当前脚本中,是没有什么问题的.但是有时候,为了方便,需要动态的包含文件,这就会留下一些攻击漏洞. 通常情况下,LFI攻击威胁不大,因为本地服务器上的文件

DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)

原文地址:https://www.cnblogs.com/yuzly/p/11332644.html

phpmyadmin4.8.1远程文件包含漏洞

phpmyadmin index.php中 (1)是一个非空字符串: (2)不能以 index 开头: (3)不能在黑名单数组 $target_blacklist 中: (4)要满足 checkPageValidity() 函数 checkpagevalidity函数 查看白名单 第一个返回true的地方 page参数需要在白名单中. 第二个返回true的地方 mb_strops函数:stroup(s1,s2) 查找s2在s1中第一次出现的位置 mb_substr(s1,s2,s3) 是截取在字

PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的一种攻击手段.本文对PHP文件包含漏洞的形成.利用技巧及防范进行了详细的分析,并通过一个真实案例演示了如何利用PHP文件包含漏洞对目标网站进行渗透测试,最终成功获取到网站的WebShell. 1. PHP文件包含漏洞介绍 首先,我们来介绍下何为文件包含漏洞.严格来说,文件包含漏洞是“代码注入”的一种

PHP文件包含漏洞利用

PHP文件包含漏洞利用 一.PHP配置在文件包含中的运用 文件包含漏洞即 当程序员在包含文件的过程中引入了外部提交的数据参与包含的过程所产生的漏洞,这个漏洞是目前Web攻击中最利用率最高的一个漏洞,攻击者 可以轻松获取服务器的访问权限(即拿到webshell).而文件包含通常又有本地文件包含(Local File Inclusion)和远程文件包含(Remote File Inclusion)之分.allow_url_fopen和allow_url_include是决定包含属于本地文件包含(LF

DVWA篇四:文件包含漏洞

1      测试环境介绍 测试环境为OWASP环境中的DVWA模块 2      测试说明 2.1  什么时远程文件包含漏洞 什么才是"远程文件包含漏洞"?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. 涉及到的危险函数:include(),require()和include_once(),require_once() Include:包含并运行指定文件,当包含外部文件

网站安全(7) —— PHP文件包含漏洞介绍

其原理就是注入一段用户能控制的脚本或代码,并让服务端执行.文件包含漏洞可能出现在JSP.PHP. ASP等语言中,原理都是一样的,本文只介绍PHP文件包含漏洞. 要想成功利用文件包含漏洞进行攻击,需要满足以下两个条件: 1. Web应用采用include()等文件包含函数通过动态变量的方式引入需要包含的文件 (文件包含函数还有 include_once().require().require_once()) 2. 用户能够控制该动态变量 现在来看一段简单的文件包含代码: ? 1 2 3 <?ph

PHP文件包含漏洞

php的函数引入文件是,由于传入的文件没有经过合理的校验,从而操作了预想之外的文件,就可以导致意外的文件泄露,甚至导致恶意代码的注入. 基本的代码: If($_GET['func']) { Include $_GET['func'] } Else { Include 'default.php' } 本意运行的是http://127.0.0.1/index.php?func=add.php,结果在后面默认运行了default.php 如果黑客运行自己上传的图片马,那么包含一句话木马,我们是不是就绕