- 热门文章:
- · 把数据库查询信息直接生成网页嵌入EXCEL表的格式,并可导出成EXCEL文件
- · 通过MS SQL 数据库SA帐号增加新用户至administrators组
- · 用ASP实现Access数据库查询
- · SQL Server数据库模糊查询的ASP实现
- · 利用ASP技术开发基于WWW的数据库检索程序
- · 如何在ASP中连接MySQL数据库
- · 使用ASP实现基于WEB的数据库资料系统
- · 显式地释放你的ADO对象
- · ASP怎样实现通过传真机把传真直接保存进数据库?!
- · Access2000数据库80万记录通用快速分页类
- · SQL注入天书之ASP注入漏洞全接触(3)
- · SQL注入天书之ASP注入漏洞全接触(2)
上一篇:数据库导出xml、htm、csv、sql >>
找到了,解密SQL2000的存储过程
然后调用
exec sp_decrypt @objectName
(@objectName就是加密过的存储过程名)
暴露无遗!
此程序不破坏原有存储过程!
呵呵呵,真好玩!
create PROCEDURE sp_decrypt (@objectName varchar(50))
AS
begin
begin transaction --add by playyuer
declare @objectname1 varchar(100)
declare @sql1 nvarchar(4000),@sql2 nvarchar(4000),@sql3 nvarchar(4000),@sql4 nvarchar(4000),@sql5 nvarchar(4000),@sql6 nvarchar(4000),@sql7 nvarchar(4000),@sql8 nvarchar(4000),@sql9 nvarchar(4000),@sql10 nvarchar(4000)
DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare @i int , @t bigint
declare @m int,@n int,@q int
set @m=(SELECT max(colid) FROM syscomments WHERE id = object_id(@objectName))
set @n=1
--get encrypted data
create table #temp(colid int,ctext varbinary(8000))
insert #temp SELECT colid,ctext FROM syscomments WHERE id = object_id(@objectName)
set @sql1=@#ALTER PROCEDURE @#+ @objectName +@# WITH ENCRYPTION AS @#
--set @sql1=@#ALTER PROCEDURE @#+ @objectName +@# WITH ENCRYPTION AS @#
set @q=len(@sql1)
set @sql1=@sql1+REPLICATE(@#-@#,4000-@q)
select @sql2=REPLICATE(@#-@#,4000),@sql3=REPLICATE(@#-@#,4000),@sql4=REPLICATE(@#-@#,4000),@sql5=REPLICATE(@#-@#,4000),@sql6=REPLICATE(@#-@#,4000),@sql7=REPLICATE(@#-@#,4000),@sql8=REPLICATE(@#-@#,4000),@sql9=REPLICATE(@#-@#,4000),@sql10=REPLICATE(@#-@#,4000)
exec(@sql1+@sql2+@sql3+@sql4+@sql5+@sql6+@sql7+@sql8+@sql9+@sql10)
while @n<=@m
begin
SET @OrigSpText1=(SELECT ctext FROM #temp WHERE colid=@n)
set @objectname1=@objectName+@#_t@#
SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n)
if @n=1
begin
SET @OrigSpText2=@#CREATE PROCEDURE @#+ @objectName +@# WITH ENCRYPTION AS @#--
set @q=4000-len(@OrigSpText2)
set @OrigSpText2=@OrigSpText2+REPLICATE(@#-@#,@q)
end
else
begin
SET @OrigSpText2=REPLICATE(@#-@#, 4000)
end
--start counter
SET @i=1
--fill temporary variable
SET @resultsp = replicate(N@#A@#, (datalength(@OrigSpText1) / 2))
--loop
WHILE @i<=datalength(@OrigSpText1)/2
BEGIN
--reverse encryption (XOR original+bogus+bogus encrypted)
SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
(UNICODE(substring(@OrigSpText2, @i, 1)) ^
UNICODE(substring(@OrigSpText3, @i, 1)))))
SET @i=@i+1
END
--drop original SP
--EXECUTE (@#drop PROCEDURE @#+ @objectName)
--remove encryption
--preserve case
SET @resultsp=REPLACE((@resultsp),@#WITH ENCRYPTION@#, @#@#)
SET @resultsp=REPLACE((@resultsp),@#With Encryption@#, @#@#)
SET @resultsp=REPLACE((@resultsp),@#with encryption@#, @#@#)
IF CHARINDEX(@#WITH ENCRYPTION@#,UPPER(@resultsp) )>0
SET @resultsp=REPLACE(UPPER(@resultsp),@#WITH ENCRYPTION@#, @#@#)
--replace Stored procedure without enryption
print @resultsp
--execute( @resultsp)
set @n=@n+1
end
drop table #temp
end
rollback transaction --add by playyuer
GO
相关文章:
- · SQL注入天书之ASP注入漏洞全接触(1)
- · 编写通用的ASP防SQL注入攻击程序
- · Web程序中网页间数据传递方法小结
- · 一个功能齐全的DataGrid分页例子
- · DataList里套DataGrid,DataBind嘛搞?
- · ASP和SQL结合处理时间小解
- · DataGrid输出到Excel并进行格式化处理
- · Directory类创建文件夹、删除文件夹。
- · Repeater显示数据的例子,带分页
- · 删除Access数词库中的空记录
- · ASP上两个防止SQL注入式攻击Function
- · DataGrid 分页问题 -- 无法响应 PageIndexChanged 事件
- · ADO三大对象的属性、方法、事件及常数
- · Asp数据库访问代码自动产生工具-ASPRunner(适用初学者和为了提高开发效率的Developer)
- · Connection 对象
- · 如何在ado中使用connection 对象什么是connection对象?
- · 数据验证之特殊字符处理
- · 如何让DataGrid自动生成序号
- · 几个小时后,我学数据库,找到一些代码
- · DataGrid自定义分页存储过程
- · Asp 单页查询数据库!
- · 用WEB(ASP)方式实现SQL SERVER 数据库的备份和恢复
- · Asp备份与恢复SQL Server数据库
- · XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子
- · datagrid编辑、修改、删除、翻页例子
- · DataGrid脚眉显示合计
- · datagrid编辑、修改、删除、翻页例子
- · 把dataset作为一个xml文件传给客户端
- · OLEDB Resource(Session) Pooling (在Ado开发中使用连接池)
- · DataReader使用
- · asp + oracle 分页方法 (不用存储过程)
- · 关于DropDownList绑定数据的一点认识
- · 在ASP中处理数据库的NULL记录
- · 求解在SQL中使用了where列所遇到的问题
- · asp + sqlserver 分页方法(不用存储过程)
- · 用的ASP防SQL注入攻击程序
- · MySQL数据库基础教程
- · ASP和SQLServer时间处理方法Ⅰ
