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注入点构造代码
Jun 14 PHP
PHP 函数语法介绍一
Jun 14 PHP
数据库查询记录php 多行多列显示
Aug 15 PHP
PHP 日志缩略名的创建函数代码
May 26 PHP
PHP中实现中文字符进制转换原理分析
Dec 06 PHP
php中rename函数用法分析
Nov 15 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
form自动提交实例讲解
Jul 10 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
PHP7 弃用功能
Mar 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
joomla内置的表单验证功能使用方法
2010/06/11 PHP
mac下安装nginx和php
2013/11/04 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
Python3实现Web网页图片下载
2016/01/28 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
python单例设计模式实现解析
2020/01/07 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
卫生安全检查制度
2014/02/04 职场文书
元旦获奖感言
2014/03/08 职场文书
办公室副主任职责范本
2014/03/08 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
文员岗位职责
2015/02/04 职场文书
自荐信怎么写
2015/03/04 职场文书
安全教育培训制度
2015/08/06 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python