當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

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

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

更新時間:2019-11-11 文章作者:未知 信息來源:網絡 閱讀次數:

from chinaasp.com

一:真的能在瀏覽器中執行命令文件嗎?
答案是肯定的。(哇,酷耶!可以......)不過先別高興,只能執行服務器端的,而且是必須經過授權的。否則服務
器想黑你就太容易了。誰敢看我我就格式化誰。(真希望可以,老是黑客黑服務器,也該服務器黑別人了。哈哈。

二:他是如何實現的。是靠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主機上可以經常見到,F在,我們也可以在自己的.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:" -->)
你不會成功的,如果死機不要怨我。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
亚洲嫩草影院久久精品