Web服務(wù)器安全指南(3)_Windows教程
PERL解釋器的漏洞:
Netscape Communications Server中無法識(shí)別CGI-BIN下的擴(kuò)展名及其應(yīng)用關(guān)系,如.pl文件是PERL的代碼程序自動(dòng)調(diào)用的解釋文件,即使現(xiàn)在也只能把perl.exe文件存放在CGI-BIN目錄之下。執(zhí)行如:/cgi-bin/perl.exe?&my_script.pl。但是這就
給任何人都有執(zhí)行PERL的可能,當(dāng)有些人在其瀏覽器的URL中加上如:/cgi-bin/perl.exe?&-e+unlink+%3C*%3E時(shí),有可能造成刪除服務(wù)器當(dāng)前目錄下文件的危險(xiǎn)。但是,其他如:O′Reilly WebSite或Purveyor都不存在這種漏洞。
CGI執(zhí)行批處理文件的漏洞:
文件test.bat的內(nèi)容如下:
@echo off
echo Content-type: text/plain
echo
echo Hello World!
如果客戶瀏覽器的URL為:/cgi-bin/test.bat?&dir,則執(zhí)行調(diào)用命令解釋器完成DIR列表。這就讓訪問者有執(zhí)行其他命令可能性。
(2)O′Reilly WebSite server for Windows NT/95
在WebSite1.1B以前的版本中使用批處理文件存在著與Netscape同樣的漏洞,但是,新版關(guān)閉了.bat在CGI中的作用。支持PERL,新版將VB和C作為CGI開發(fā)工具。
(3)Microsoft′s IIS Web Server
1996年3月5日前的IIS在NT下的BUG嚴(yán)重,可以任意使用command命令。但之后已修補(bǔ)了該漏洞,你可檢查你的可執(zhí)行文件的建立日期。IIS3.0還存在一些安全BUG,主要是CGI-BIN下的覆給權(quán)利。另外,許多Web服務(wù)器本身都存在一些安全上的漏洞,都是在版本升級(jí)過程中被不斷更新了,在此就不一一列舉了。
三. 從CGI編程角度考慮安全。
1.采用編譯語言比解釋語言會(huì)更安全些,并且CGI程序應(yīng)放在獨(dú)立于HTML存放目錄之外的CGI-BIN下,這是為了防止一些非法訪問者從瀏覽器端取得解釋性語言的原代碼后從中尋找漏洞。
2.在用C來編寫CGI程序時(shí)應(yīng)盡量少用popen()、system()、所有涉及/bin/sh的SHELL命令以及在PERL中的system()、exec()、open()、eval()等exec或eval之類命令。
- 相關(guān)鏈接:
- 教程說明:
Windows教程-Web服務(wù)器安全指南(3)
。