关于在浏览器中执行*.exe文件的深入探讨(z)

原创 2004年07月20日 18:06:00

关于在浏览器中执行*.exe文件的深入探讨
2000-10-14  动网先锋 

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主机上可以经常见到。现在,我们也可以在自己的.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:" -->)
你不会成功的,如果死机不要怨我。
 

关于无边框EXE程序窗口嵌入IE浏览器WebBrowser右键属性窗口无法点击响应问题的解决

好久没写博客了,今天有空写点。最近遇到个问题,就是我有一个Delphi写的exe程序,主窗口没有边框(Style=bsNone),标题和边框都是自己画的,然后我嵌了一个TWebBrowser浏览器,一...
  • huzgd
  • huzgd
  • 2015年12月29日 15:32
  • 1958

EXE文件的加载过程

一个microsoft的.exe程序文件的启动过程 2009-06-16 14:54 2101人阅读 评论(0) 收藏 举报 microsoftmfcwindowsshelldll数据...
  • H002399
  • H002399
  • 2015年06月05日 13:00
  • 1563

Firefox中利用javascript调用本地程序

Firefox中利用javascript调用本地程序 2007-08-30 16:03 2577人阅读 评论(3) 收藏 举报 javascriptfirefoxfuncti...
  • qq5132834
  • qq5132834
  • 2014年05月31日 12:34
  • 1283

如何在centos环境下运行.exe文件

首先要了解一下Wine: Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OS...
  • Martin_chen2
  • Martin_chen2
  • 2017年05月09日 10:51
  • 3192

在网页中执行本地exe程序的两种方式

一、有时候,需要在 网页上去执行本地的一个EXE文件,如果用javascript ,一般浏览器,由于安全问题,都会禁止掉这个特性。但经过测试,目前在ie,firefox中仍然可以用JS来实现,但在ch...
  • awhip9
  • awhip9
  • 2016年11月28日 11:08
  • 1796

如何在Ubuntu安装EXE文件

http://blog.163.com/yuanwangshu_321/blog/static/3250107120091101410935 转载原文部分 下载及安装   若你使用 De...
  • lijia11080117
  • lijia11080117
  • 2016年09月04日 17:16
  • 4418

在网页中执行本地exe程序的两种方式

一、有时候,需要在 网页上去执行本地的一个EXE文件,如果用javascript ,一般浏览器,由于安全问题,都会禁止掉这个特性。但经过测试,目前在ie,firefox中仍然可以用JS来实现,但在ch...
  • bushy0401
  • bushy0401
  • 2013年12月19日 16:37
  • 18539

用jsp调用exe文件

以下内容当时是看过好几个参考资料才整理出来,但是当时没写记录,师妹问到,才给她写教程,所以不记得看谁的了,声明不是本人自己研究出来,但做了整理! 1、把myeclipse工程export 成...
  • tjusxh
  • tjusxh
  • 2016年08月09日 15:05
  • 1409

C#如何调用外部exe程序

http://blog.csdn.net/cyamazing/article/details/52849106 1.在主界面添加调用外部exe程序的Button,双击此Button进入代...
  • liang890319
  • liang890319
  • 2017年06月22日 09:08
  • 6011

教你如何利用php.exe运行php文件

在windows环境下我们可以在命令行中利用php.exe来运行php文件。下面我们来介绍2种使用php.exe的方法。   第一种,我们可以利用php命令加上php文件+路径来执行具体的php文件...
  • chclvzxx
  • chclvzxx
  • 2016年06月09日 13:07
  • 4057
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于在浏览器中执行*.exe文件的深入探讨(z)
举报原因:
原因补充:

(最多只允许输入30个字)