全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1957
推到 Plurk!
推到 Facebook!

在瀏覽器中執行*.exe文件的深入探討

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-26 12:34:50 IP:61.221.xxx.xxx 未訂閱
此為轉貼資料 關於在瀏覽器中執行*.exe文件的深入探討! 一:真的能在瀏覽器中執行命令文件嗎? 答案是肯定的。(哇,酷耶!可以......)不過先別高興,只能執行伺服器端的,而且是必須經過授權的。否則伺服器想黑你就太容易了。誰敢看我我就格式化誰。(真希望可以,老是黑客黑伺服器,也該伺服器黑別人了。哈哈!) 二:他是如何實現的。是靠asp文件嗎? 在伺服器端執行文件是靠SSI來實現的,SSI時伺服器端包含的意思(不是SSL),我們經常使用的#include 就是伺服器端包含的指令之一。不過,這次要介紹的就是---------#exec。就是他可以實現伺服器端執行指令。 不過,這次他不能用於.asp的文件。而只能用.stm、.shtm 和 .shtml這些副檔名。(很熟悉吧)而能解釋執行他們的就是Ssinc.dll。所以,你寫好的代碼必須保存成.stm等格式才能確保伺服器能執行。 三:如何執行呢? 終於開始討論實質性問題了。 它的語法是:《!-- #exec CommandType = CommandDescription --》 CommandType是參數,他有兩個可選類型: 1.CGI 運行一個應用程式。如 CGI 腳本、ASP 或 ISAPI 應用程式。 CommandDescription 參數是一個字串。此字串包含應用程式的虛擬路徑, 後跟一個問號以及傳送給應用程式的任一參數,參數之間由加號分隔 ( )。 他可是#exec命令最有用的參數,也是#exec命令存在的大部分理由。他可以處理已授權的CGI腳本,或Isapi應用程式。微軟?了向下相容一些早期的ISAPI應用程式,而創建了該項命令。我們知道,微軟早期的WEB應用程式都是靠ISAPI解釋的,而且也相容CGI程式。你現在也可以在你的WEB根目錄中找到CGI-BIN的目錄。 我們可以用一下例子說明。 《!-- #exec cgi="/CGI-BIN/chat.exe?user passw" --》 這種命令我們在一些UNIX主機上可以經常見到。現在,我們也可以在自己的.shtml中運用他了。當然,如果伺服器允許的話。 還有一種類型的程式: 《!-- #exec cgi="/CGI-BIN/login.dll?name" --》 這種命令方式將?動一個進程外的程式來解釋並動態輸出資訊到網頁上。這種方式不常見。但你仍然可以在一些網站中見到。 2.CMD參數。 他可是#exec命令中最可怕的參數,也是#exec命令禁止使用的大部分理由。他也是我們一些網友實現最終幻想的利器。可惜。要得到我們幻想的招數有些困難(如de...,fo....)。也幾乎是不可能的。 一下是微軟關於CMD參數的說明,你一定要讀明白在試! CMD 運行 shell 命令。 CommandDescription 參數是一個字串,其中包含 shell 命令程式的完整物理路徑,後跟由空格分隔的任何命令行參數。如果沒有指定全路經, Web 伺服器將搜索系統路徑。默認情況下,該指令是被禁用的,這是因?它會對 Web 站點造成安全方面的危險;例如,用戶可能使用 format 命令格式化您的硬碟。 我本人建議關閉,因?現在微軟也不推薦用這個命令。 不過,如果你是伺服器的管理員,可以試一試。 你可以新建一個test.shtml的文件。 然後在首行設置一個命令。 《!--#exec cmd="c:\winnt\system32\help.exe" --》 'NT中的一個幫助文件(沒有危險)。 或試一試! 《!--#exec cmd="c:\windows\command\mem.exe" --》 'window98下的顯示記憶體的一個命令。(沒有危險) 然後你在該虛擬目錄中將其許可權設?腳本,或可執行。 最後,你可以在瀏覽器中輸入該地址http://localhost/xxx/test.shtml 如果你看到瀏覽器中顯示了他們的螢幕輸入資訊。那?,恭喜你。你試成功了。 四:最終幻想!(最好不要試。如果出了問題與本人無關!本人也不解答相應的問題) 如果我們想執行多的命令呢?那?閉上眼,往下看吧 首先,你打開註冊表編輯器(記住要先備份),然後找 KEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet \Services \W3SVC4 '也可能是w3svc \Parameters 選擇新建一個Dword值 SSIEnableCmdDirective 它的兩個值?0,1。下面是微軟的說明。 伺服器端的 #exec cmd 命令包括可執行外殼命令。安全意識強的站點希望通過將此值設置? 0 來關閉 #exec cmd 命令,並以此作?外加的安全防範,尤其是在允許不受信任的使用者將文件放置到伺服器時更是如此。默認狀態下,註冊表中不存在此值;要允許該命令執行外殼命令,必須先創建此值並將值設置? 1 。 還可以在添一個Dwordd值 AllowSpecialCharsInShell 它的兩個值?0,1。下面是微軟的說明。 範圍: 0, 1 預設值: 0 (禁用) 本值控制在運行批次檔案( .bat 和 .cmd 文件)時,是否允許在命令行使用 [ | ( , ; % 《 》 ] 等 Cmd.exe 特殊字元。這些特殊字元可能引發嚴重的安全隱患。 如果該項值設置? 1,心懷叵測的用戶可以在伺服器上隨意執行命令。因此,強力推薦用戶保留其默認設置 0。默認情況下,這些特殊字元不能傳遞到腳本映射 CGI 程式。如果設置? 1,除了管道符號 | 和標準 I/O 重定向符(《 和 》)之外(這兩類字元在命令處理器中具有特殊含義),這些特殊字元都能夠傳遞到腳本映射 CGI 程式。 哈哈,下面我就不詳述了。 不過你要執行一些你希望的命令可不是這?簡單 (如:《!--#exec cmd="c:\winnt\system32\format.com /y a:" --》) 你不會成功的,如果死機不要怨我。
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-04-26 22:32:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!