關(guān)于在瀏覽器中執(zhí)行*.exe文件的深入探討
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
關(guān)鍵詞:ASP
一:真的能在瀏覽器中執(zhí)行命令文件嗎? 答案是肯定的。(哇,酷耶!可以......)不過先別高興,只能執(zhí)行服務(wù)器端的,而且是必須經(jīng)過授權(quán)的。否則服務(wù)器想黑你就太容易了。誰敢看我我就格式化誰。(真希望可以,老是黑客黑服務(wù)器,也該服務(wù)器黑別人了。哈哈?。? 二:他是如何實現(xiàn)的。是靠asp文件嗎? 在服務(wù)器端執(zhí)行文件是靠SSI來實現(xiàn)的,SSI時服務(wù)器端包含的意思(不是SSL),我們經(jīng)常使用的#include 就是服務(wù)器端包含的指令之一。不過,這次要介紹的就是---------#exec。就是他可以實現(xiàn)服務(wù)器端執(zhí)行指令。 不過,這次他不能用于.asp的文件。而只能用.stm、.shtm 和 .shtml這些擴展名。(很熟悉吧)而能解釋執(zhí)行他們的就是Ssinc.dll。所以,你寫好的代碼必須保存成.stm等格式才能確保服務(wù)器能執(zhí)行。 三:如何執(zhí)行呢? 終于開始討論實質(zhì)性問題了。 它的語法是: <!-- #exec CommandType = CommandDescription --> CommandType是參數(shù),他有兩個可選類型: 1.CGI 運行一個應(yīng)用程序。如 CGI 腳本、ASP 或 ISAPI 應(yīng)用程序。 CommandDescription 參數(shù)是一個字符串。此字符串包含應(yīng)用程序的虛擬路徑, 后跟一個問號以及傳送給應(yīng)用程序的任一參數(shù),參數(shù)之間由加號分隔 (+)。 他可是#exec命令最有用的參數(shù),也是#exec命令存在的大部分理由。他可以處理已授權(quán)的CGI腳本,或Isapi應(yīng)用程序。微軟為了向下兼容一些早期的ISAPI應(yīng)用程序,而創(chuàng)建了該項命令。我們知道,微軟早期的WEB應(yīng)用程序都是靠ISAPI解釋的,而且也兼容CGI程序。你現(xiàn)在也可以在你的WEB根目錄中找到CGI-BIN的目錄。 我們可以用一下例子說明。 <!-- #exec cgi= "/CGI-BIN/chat.exe?user+passw " --> 這種命令我們在一些UNIX主機上可以經(jīng)常見到?,F(xiàn)在,我們也可以在自己的.shtml中運用他了。當然,如果服務(wù)器允許的話。 還有一種類型的程序: <!-- #exec cgi= "/CGI-BIN/login.dll?name " --> 這種命令方式將啟動一個進程外的程序來解釋并動態(tài)輸出信息到網(wǎng)頁上。這種方式不常見。但你仍然可以在一些網(wǎng)站中見到。 2.CMD參數(shù)。 他可是#exec命令中最可怕的參數(shù),也是#exec命令禁止使用的大部分理由。他也是我們一些網(wǎng)友實現(xiàn)最終幻想的利器??上АR玫轿覀兓孟氲恼袛?shù)有些困難(如de...,fo....)。也幾乎是不可能的。 一下是微軟關(guān)于CMD參數(shù)的說明,你一定要讀明白在試! CMD 運行 shell 命令。 CommandDescription 參數(shù)是一個字符串,其中包含 shell 命令程序的完整物理路徑,后跟由空格分隔的任何命令行參數(shù)。如果沒有指定全路經(jīng), Web 服務(wù)器將搜索系統(tǒng)路徑。默認情況下,該指令是被禁用的,這是因為它會對 Web 站點造成安全方面的危險;例如,用戶可能使用 format 命令格式化您的硬盤。 我本人建議關(guān)閉,因為現(xiàn)在微軟也不推薦用這個命令。 不過,如果你是服務(wù)器的管理員,可以試一試。 你可以新建一個test.shtml的文件。 然后在首行設(shè)置一個命令。 <!--#exec cmd= "c:\winnt\system32\help.exe " --> 'NT中的一個幫助文件(沒有危險)。 或試一試! <!--#exec cmd= "c:\windows\command\mem.exe " --> 'window98下的顯示內(nèi)存的一個命令。(沒有危險) 然后你在該虛擬目錄中將其權(quán)限設(shè)為腳本,或可執(zhí)行。 最后,你可以在瀏覽器中輸入該地址http://localhost/xxx/test.shtml 如果你看到瀏覽器中顯示了他們的屏幕輸入信息。那么,恭喜你。你試成功了。 四:最終幻想?。ㄗ詈貌灰?。如果出了問題與本人無關(guān)!本人也不解答相應(yīng)的問題) 如果我們想執(zhí)行多的命令呢?那么閉上眼,往下看吧 首先,你打開注冊表編輯器(記住要先備份),然后找 KEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet \Services \W3SVC4 '也可能是w3svc \Parameters 選擇新建一個Dword值 SSIEnableCmdDirective 它的兩個值為0,1。下面是微軟的說明。 服務(wù)器端的 #exec cmd 命令包括可執(zhí)行外殼命令。安全意識強的站點希望通過將此值設(shè)置為 0 來關(guān)閉 #exec cmd 命令,并以此作為外加的安全防范,尤其是在允許不受信任的使用者將文件放置到服務(wù)器時更是如此。默認狀態(tài)下,注冊表中不存在此值;要允許該命令執(zhí)行外殼命令,必須先創(chuàng)建此值并將值設(shè)置為 1 。 還可以在添一個Dwordd值 AllowSpecialCharsInShell 它的兩個值為0,1。下面是微軟的說明。 范圍: 0, 1 默認值: 0 (禁用) 本值控制在運行批處理文件( .bat 和 .cmd 文件)時,是否允許在命令行使用 [ | ( , ; % < > ] 等 Cmd.exe 特殊字符。這些特殊字符可能引發(fā)嚴重的安全隱患。 如果該項值設(shè)置為 1,心懷叵測的用戶可以在服務(wù)器上隨意執(zhí)行命令。因此,強力推薦用戶保留其默認設(shè)置 0。默認情況下,這些特殊字符不能傳遞到腳本映射 CGI 程序。如果設(shè)置為 1,除了管道符號 | 和標準 I/O 重定向符( < 和 > )之外(這兩類字符在命令處理器中具有特殊含義),這些特殊字符都能夠傳遞到腳本映射 CGI 程序。 哈哈,下面我就不詳述了。 不過你要執(zhí)行一些你希望的命令可不是這么簡單 (如: <!--#exec cmd= "c:\winnt\system32\format.com /y a: " --> ) 你不會成功的,如果死機不要怨我。 該文章在 2011/4/22 14:43:15 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |