欢迎来到福编程网,本站提供各种互联网专业知识!

PHP默认安装产生系统漏洞

发布时间:2006-10-09 作者: 来源:转载
这一个漏洞在packetstorm被发表,我把它翻成中文,加上自己的一些注解,希望对在NT上执行PHP的朋友有一些帮助。当你下载PHP後,在它内含的安装文件中帮助了PHP在NT+ApacheWebServer的安装方式,其中的安装帮助会要你将底下这几行设置加到apache的httpd.conf设

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

PHP的朋友有一些帮助。

当你下载PHP後,在它内含的安装文件中帮助了PHP在NT+ApacheWebServer的安装方式

,其中的安装帮助会要你将底下这几行设置加到apache的httpd.conf设置文件中,而这个安装文

件将导引你将你的系统门户大开。

这几行命令为:

ScriptAlias/php/"c:/php/"

AddTypeapplication/x-httpd-php.php

Actionapplication/x-httpd-php"/php/php.exe"

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

目录下,所以当你使用:

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

链接网页的时候,实际上WebServer是直接存取到c:/php/这个目录,这时候你会看到"AccessDenied"

的错误信息,但是当你改用:

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

命令来连接的时候,你会发现服务器回送了"Noinputfilespecified."这行字,这行字是由php.exe

所进行的回送,表示你刚刚在这台server上执行了php执行文件。

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

[**漏洞1**]

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

"http://www.example.com/php/php.exe?c:winntrepairsam"

PHP会将文件"c:winntrepairsam"丢给浏览器,并把它显示出来,而这个文件正是WindowsNT

保存密码的所在,

"http://www.example.com/php/php.exe?d:winntrepairsam"

PHP会把在D:磁盘中相同的文件传出。

而有了这个SAM文件,黑客可以用以破解出你在这台机器上所设置的密码。

[**漏洞2**]

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

使用了:

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

这个错误会导致WebServer传回"couldn<|>tcreatechildprocess:22693:C:/php/php4ts.dll"

这个信息,因而漏了你安装PHP的真实目录

PS.经过我的测试,第二个漏洞在PHPV4.11上执行时将回传回"InternalServerError"的错误,

并不回漏目录结构,但是在PHPV4.11中,第一个漏洞仍然有效。

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

ScriptAlias/php-mY-sCrIpT/"c:/php411/"

AddTypeapplication/x-httpd-php.php

Actionapplication/x-httpd-php"/php-mY-sCrIpT/php.exe"

这样入侵者将不易得知PHP的存放目录,而降低了被入侵的机会。

在更改过httpd.conf後记得要将ApacheService重新启动∶

NETSTOPAPACHE

NETSTARTAPACHE

[END]

相关推荐