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入门源程序
Oct 09 PHP
常用的php ADODB使用方法集锦
Mar 25 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 PHP
浅析PHP递归函数返回值使用方法
Feb 18 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
PHP技术开发微信公众平台
Jul 22 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
php微信开发之谷歌测距
Jun 14 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极大的增强功能和性能
2006/10/09 PHP
利用PHP制作简单的内容采集器的原理分析
2008/10/01 PHP
php 上传功能实例代码
2010/04/13 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
php微信开发之关注事件
2018/06/14 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
教你安装python Django(图文)
2013/11/04 Python
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
django 外键创建注意事项说明
2020/05/20 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
家居设计专业个人自荐信范文
2013/11/26 职场文书
违反学校规定检讨书
2014/01/18 职场文书
小学生环保标语
2014/06/13 职场文书
五四演讲稿范文
2014/09/03 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
Python实现byte转integer
2021/06/03 Python