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 相关文章推荐
用cookies来跟踪识别用户
Oct 09 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 PHP
php操作mysqli(示例代码)
Oct 28 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
php jsonp单引号转义
Nov 23 PHP
php身份证号码检查类实例
Jun 18 PHP
php 猴子摘桃的算法
Jun 20 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP开发之用微信远程遥控服务器
Jan 25 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
PHP智能识别收货地址信息实例
Jan 05 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+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
利用Python中的pandas库对cdn日志进行分析详解
2017/03/07 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
"序列点" 是什么
2016/07/29 面试题
销售代表求职自荐信
2013/10/01 职场文书
年度考核自我鉴定
2013/11/09 职场文书
大学军训自我鉴定
2013/12/15 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
教师网络培训心得体会
2016/01/09 职场文书
python 模块重载的五种方法
2021/04/24 Python
使用CSS设置滚动条样式
2022/01/18 HTML / CSS
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers