明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

PHP默認(rèn)安裝產(chǎn)生系統(tǒng)漏洞

[摘要]這一個漏洞在 packetstorm 被發(fā)表,我把它翻成中文,加上自己的一些注解,希望對在 NT 上執(zhí)行PHP 的朋友有一些幫助。當(dāng)你下載 PHP 後,在它內(nèi)含的安裝文件中幫助了 PHP 在 NT + Apache Web Server 的安裝方式,其中的安裝幫助會要你將底下這幾行設(shè)置加到 apa...

這一個漏洞在 packetstorm 被發(fā)表,我把它翻成中文,加上自己的一些注解,希望對在 NT 上執(zhí)行
PHP 的朋友有一些幫助。

當(dāng)你下載 PHP 後,在它內(nèi)含的安裝文件中幫助了 PHP 在 NT + Apache Web Server 的安裝方式
,其中的安裝幫助會要你將底下這幾行設(shè)置加到 apache 的 httpd.conf 設(shè)置文件中,而這個安裝文
件將導(dǎo)引你將你的系統(tǒng)門戶大開。

這幾行命令為:

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

我們進(jìn)一步的解釋這三行設(shè)置,這些設(shè)置命令要求 Apache 將 /php/ 這個虛擬目錄直接映射到 c:/php/
目錄下,所以當(dāng)你使用: 

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

鏈接網(wǎng)頁的時候,實際上 Web Server 是直接存取到 c:/php/ 這個目錄,這時候你會看到 "Access Denied"
的錯誤信息,但是當(dāng)你改用:

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

命令來連接的時候,你會發(fā)現(xiàn)服務(wù)器回送了 "No input file specified." 這行字,這行字是由 php.exe
所進(jìn)行的回送,表示你剛剛在這臺 server 上執(zhí)行了 php 執(zhí)行文件。

如果你的服務(wù)器是使用 php 里所教你的安裝方法來作設(shè)置的,這時候你可能有了以下的危機(jī)。

[** 漏洞 1 **]

我們可以利用這個漏洞來讀取這臺服務(wù)器上的任何一個文件,甚至可以跨磁盤讀取,只要使用下列方式連接:

"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 文件,黑客可以用以破解出你在這臺機(jī)器上所設(shè)置的密碼。

[** 漏洞 2 **]

如果你指定了在 php 目錄下的文件,你的 Web 服務(wù)器會嘗試執(zhí)行這個文件,并且傳會錯誤信息,所以當(dāng)你
使用了:

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

這個錯誤會導(dǎo)致 Web Server 傳回 "couldn< >t create child process: 22693: C:/php/php4ts.dll"
這個信息,因而漏了你安裝 PHP 的真實目錄

PS. 經(jīng)過我的測試,第二個漏洞在 PHP V4.11 上執(zhí)行時將回傳回 "Internal Server Error" 的錯誤,
并不回漏目錄結(jié)構(gòu),但是在 PHP V4.11 中,第一個漏洞仍然有效。

簡易解決法∶使用較長且不易判定之虛擬目錄來放置 PHP 執(zhí)行文件,例如∶

ScriptAlias /php-mY-sCrIpT/ "c:/php411/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php-mY-sCrIpT/php.exe"

這樣入侵者將不易得知 PHP 的存放目錄,而降低了被入侵的機(jī)會。
在更改過 httpd.conf 後記得要將 Apache Service 重新啟動∶

NET STOP APACHE
NET START APACHE

[END]