PHP默认安装产生系统漏洞


Posted in PHP onOctober 09, 2006

这一个漏洞在 packetstorm 被发表,我把它翻成中文,加上自己的一些注解,希望对在 NT 上执行
PHP 的朋友有一些帮助。

当你下载 PHP 後,在它内含的安装文件中帮助了 PHP 在 NT + Apache Web Server 的安装方式
,其中的安装帮助会要你将底下这几行设置加到 apache 的 httpd.conf 设置文件中,而这个安装文
件将导引你将你的系统门户大开。

这几行命令为:

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

我们进一步的解释这三行设置,这些设置命令要求 Apache 将 /php/ 这个虚拟目录直接映射到 c:/php/
目录下,所以当你使用: 

"http://www.example.com/php/"

链接网页的时候,实际上 Web Server 是直接存取到 c:/php/ 这个目录,这时候你会看到 "Access Denied"
的错误信息,但是当你改用:

"http://www.example.com/php/php.exe"

命令来连接的时候,你会发现服务器回送了 "No input file specified." 这行字,这行字是由 php.exe
所进行的回送,表示你刚刚在这台 server 上执行了 php 执行文件。

如果你的服务器是使用 php 里所教你的安装方法来作设置的,这时候你可能有了以下的危机。

[** 漏洞 1 **]

我们可以利用这个漏洞来读取这台服务器上的任何一个文件,甚至可以跨磁盘读取,只要使用下列方式连接:

"http://www.example.com/php/php.exe?c:\winnt\repair\sam"

PHP 会将文件 "c:\winnt\repair\sam" 丢给浏览器,并把它显示出来,而这个文件正是 Windows NT 
保存密码的所在,

"http://www.example.com/php/php.exe?d:\winnt\repair\sam"

PHP 会把在 D: 磁盘中相同的文件传出。
而有了这个 SAM 文件,黑客可以用以破解出你在这台机器上所设置的密码。

[** 漏洞 2 **]

如果你指定了在 php 目录下的文件,你的 Web 服务器会尝试执行这个文件,并且传会错误信息,所以当你
使用了:

"http://www.example.com/php/php4ts.dll"

这个错误会导致 Web Server 传回 "couldn<|>t create child process: 22693: C:/php/php4ts.dll"
这个信息,因而漏了你安装 PHP 的真实目录

PS. 经过我的测试,第二个漏洞在 PHP V4.11 上执行时将回传回 "Internal Server Error" 的错误,
并不回漏目录结构,但是在 PHP V4.11 中,第一个漏洞仍然有效。

简易解决法∶使用较长且不易判定之虚拟目录来放置 PHP 执行文件,例如∶

ScriptAlias /php-mY-sCrIpT/ "c:/php411/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php-mY-sCrIpT/php.exe"

这样入侵者将不易得知 PHP 的存放目录,而降低了被入侵的机会。
在更改过 httpd.conf 後记得要将 Apache Service 重新启动∶

NET STOP APACHE
NET START APACHE

[END]

PHP 相关文章推荐
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
php简单图像创建入门实例
Jun 10 PHP
php判断表是否存在的方法
Jun 18 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
Mar 25 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
把PHP安装为Apache DSO
Oct 09 #PHP
PHP4中实现动态代理
Oct 09 #PHP
phpmyadmin操作流程
Oct 09 #PHP
一个用于MySQL的PHP XML类
Oct 09 #PHP
ASP知识讲座四
Oct 09 #PHP
php.ini中文版
Oct 09 #PHP
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 #PHP
You might like
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
JS求平均值的小例子
2013/11/29 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
Python中的自省(反射)详解
2015/06/02 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python实现最常见加密方式详解
2019/07/13 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Python和Anaconda和Pycharm安装教程图文详解
2020/02/04 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
外企C语言笔试题
2013/11/10 面试题
大学迎新晚会主持词
2014/03/24 职场文书
金融与证券专业求职信
2014/06/22 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
小学生运动会报道稿
2014/09/12 职场文书
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python