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 HTML代码串 截取实现代码
Jun 29 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
php中的比较运算符详解
Oct 28 PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
PHP实现的简单网络硬盘
Jul 29 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
Mar 12 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 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+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
PHP.vs.JAVA
2016/04/29 PHP
PHP 8新特性简介
2020/08/18 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
JavaScript自定义超时API代码实例
2020/04/30 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
python中redis的安装和使用
2016/12/04 Python
Python格式化日期时间操作示例
2018/06/28 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
pygame实现弹球游戏
2020/04/14 Python
python变量的作用域是什么
2020/05/26 Python
python代码能做成软件吗
2020/07/24 Python
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
汽车专业毕业生推荐信
2013/11/12 职场文书
室内设计专业学生的自我评价分享
2013/11/27 职场文书
教师党性分析材料
2014/02/04 职场文书
活动策划邀请函
2014/02/06 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
学校德育工作总结2015
2015/05/11 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
信用卡工作证明范本
2015/06/19 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书