≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

SQL Server口令 sql server安全性

人气:549 时间:2019-04-20

这篇文章主要为大家详细介绍了SQL Server口令 sql server安全性,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

如果你细心跟踪一下SQL Server数据库服务器的登录过程,你会发现口令计算其实是非常脆弱的,SQL Server数据库的口令脆弱体现两方面:
1、网络登陆时候的口令加密算法 

2、数据库存储的口令加密算法。 

下面就分别讲述: 
1、网络登陆时候的口令加密算法 
SQL Server网络加密的口令一直都非常脆弱,网上有很多写出来的对照表,但是都没有具体的算法处理,实际上跟踪一下SQL Server的登陆过程,就很容易获取其解密的算法:好吧,我们还是演示一下汇编流程: 

登录类型的TDS包跳转到4126a4处执行: 
004DE72E:根据接收到的大小字段生成对应大小的缓冲区进行下一步的拷贝 
004DE748从接收到的TDS BUF偏移8处拷贝出LOGIN的信息 
004DE762:call sub_54E4D0:将新拷贝的缓冲压入进行参数检查的处理 
依次处理TDS包中的信息,各个字段气候都应该有各个域的长度,偏移0X24处与长度进行比较。 
下面这段汇编代码就是实现对网络加密密码解密的算法:  

代码如下:


.text:0065C880 mov cl, [edi]  
.text:0065C882 mov dl, cl  
.text:0065C884 xor cl, 5  
.text:0065C887 xor dl, 0AFh  
.text:0065C88A shr dl, 4  
.text:0065C88D shl cl, 4  
.text:0065C890 or dl, cl  
.text:0065C892 mov [edi], dl  
.text:0065C894 inc edi  
.text:0065C895 dec eax  
.text:0065C896 jnz short loc_65C880  
.text:0065C898 jmp loc_4DE7E6 

很容易就将其换成为C代码,可以看出其加密及其简单,和明文没什么区别,大家可以在SNIFFER中嵌入这段代码对嗅叹到的TDS登陆包进行解密,其实0XA5不是特定的SQL Server密码字段的分界符号,只是由于加密算法会自动把ASC的双字节表示的0x0加密成0xa5而已,但是如果允许双字节口令,这个就不是判断其分界的主要原因了。  

代码如下:


void sqlpasswd(char * enp,char* dnp)  
{  
int i;  
unsigned char a1;  
unsigned char a2;  
for(i=0;i<128;i++)  
{  
if(enp[i]==0)  
break;  
a1 = enp[i]^5;  
a1 = a1 << 4;  
a2 = enp[i]^0xaf;  
a2 = a2 >> 4;  
dnp[i]=a1|a2;  
}  
dnp[i]=0;  
dnp[i+1]=0;  
wprintf(L"passwd:%s\n",(const wchar_t *)dnp);  
} 
 
12下一页阅读全文

本文来自:http://www.q1010.com/179/7207-0.html

注:关于SQL Server口令 sql server安全性的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL Server

您可能感兴趣的文章

  • sqlserver 复制表 复制数据库存储过程的方法
  • sqlserver 游标的简单示例
  • 关于Select Where In 的排序问题
  • 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
  • 三分钟学会Sql Server的复制功能
  • mssql SA帐号的改名和删除
  • SQL Server下几个危险的扩展存储过程
  • SQL Server常用管理命令小结
  • 列出SQL Server中具有默认值的所有字段的语句
  • sqlserver只有MDF文件恢复数据库的方法
上一篇:解决SQL Server虚拟内存不足情况
下一篇:用SQL语句实现随机查询数据并不显示错误数据的方法
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。