知识大全 远程文件包含漏洞
Posted 文件
篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 远程文件包含漏洞相关的知识,希望对你有一定的参考价值。
PHP网络开发详解:远程文件包含漏洞 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
——此文章摘自《完全手册PHP网络开发详解》定价 ¥ 特价 ¥ 详细>>//track linktech cn/?m_id=dangdang&a_id=A &l= &l_type = width= height= border= nosave>由于PHP支持使用相同的函数对本地文件和远程文件进行操作 因此 一些恶意用户通过强行使网站上的PHP代码包含自己的文件来实现执行自己脚本的目的 以下代码实现了根据浏览器地址栏参数的文件名称包含不同文件的功能 <?php $file_name = $_GET[ filename ]; //获得当前文件名 include( $file_name ); //包含文件 //一些其他操作 ?>
这时 通过在地址栏上指定不同的文件名就可以实现包含不同文件并执行的功能 例如 通过在浏览器上访问//localhost/test php?filename=myinc php就可以在代码中包含并执行myinc php文件
由于上面的代码没有进行任何错误处理 在浏览器上不加参数运行 所以将得到以下运行结果 Warning: include( php) [function include]: failed to open stream: No such file or directory in C:\\Program Files\\xampp\\htdocs\\Bugs\\test php on line Warning: include() [function include]: Failed opening php for inclusion (include_path= ;C:\\Program Files\\xampp\\php\\pear\\ ) in C:\\Program Files\\xampp\\htdocs\\Bugs\\test php on line
访问者通过读取这段错误信息 可以得知当前的操作是一个文件包含操作 这时 可以在自己的服务器上放置一个相应的脚本程序 需要注意的是PHP在获取远程文件时获得的是远程服务器的最终输出结果 而不是文件本身 该脚本程序位于 服务器上 文件名为hello txt 脚本代码如下所示 <?php echo hello world! ; ?>
这时 通过在浏览器中访问//localhost/test php?filename=// /hello txt就可以运行hello txt中的脚本了
为了解决这个问题 一种方法是完善程序的错误信息 使访问者无法知道当前脚本正在包含参数中指定的文件 修改后的代码如下所示 <?php $file_name = $_GET[ filename ]; //获得当前文件名 if(!@include( $file_name php )) //包含文件 die( 页面在浏览过程中出现错误 ); //一些其他操作 ?>
修改后 如果在被包含的文件无法找到时将出现 页面在浏览过程中出现错误 的错误信息 访问者将无法获得当前页面的具体操作信息
第二种方法可以更加有效地防止远程文件包含攻击 方法是替换地址栏参数中的斜线 / 这样 在地址栏参数中输入远程文件地址时 程序将无法正确地获得参数 修改后的代码如下所示 <?php $file_name = str_replace( / $_GET[ filename ]); //获得当前文件名 if(!@include( $file_name php )) //包含文件 die( 页面在浏览过程中出现错误 ); //一些其他操作 ?>
cha138/Article/program/PHP/201311/21455相关参考
知识大全 web上存漏洞及原理分析、防范方法(文件名检测漏洞)
我们通过前篇<web上存漏洞及原理分析防范方法(安全文件上存方法)>已经知道后端获取服务器变量很多来自客户端传入的跟普通的getpost没有什么不同下面我们看看常见出现漏洞代码检测文件
PHP网络开发详解:文件上传漏洞 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
MySQL不安全临时文件建立漏洞 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 受影响系统
知识大全 web上存漏洞及原理分析、防范方法(安全文件上存方法)
cha138/Article/program/PHP/201311/20937
PHP下载远程文件类(支持断点续传) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP下载远
//: publicstaticboolIsExist(stringuri) &
用Java多线程实现无阻塞读取远程文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我是不怎么
PHP获取远程文件大小的3种解决方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!以下是对PHP中
functionremote($urls$name=$path=$dir=/images/)if(!is_array($urls)orcount($urls)==)returnfalse;dmkdir
关于浙大远程教育学位如何获得的问题我就在读浙大远程,跟你说下要求哈1、平均成绩要达到75分以上;2、通过学位英语或者英语四级(要在读期间考出的才算);3、论文达到中等以上(含中等);另外需要学位的同学