proxyscan

来源:互联网 发布:ubuntu qt creator 编辑:程序博客网 时间:2024/06/06 03:51
#include <stdio.h>#include <stdlib.h>#include <netinet/in.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <string.h>#define MAX 256#define SS struct sockaddrint main(int argc, char *argv[]) {        int socks, start, stop, i;        struct hostent *bounce;        struct sockaddr_in proxey;        char temp[MAX + 1];        char buffer[MAX + 1];        char connected[] = "200";        char conn[] = "GET http://";        int port;        char *target;        target = argv[3];        printf("\nProxy Port Scanner v1.2");        printf("\nby Stuart Manlove [LoG]\n\n");        if (argc < 5)                exit(printf("Usage: %s <proxy><port><target><start_port><stop_port>\n",                                argv[0]));        bounce = gethostbyname(argv[1]);        if (!bounce)                exit(printf("Domain lookup error\n"));        proxey.sin_family = AF_INET;        proxey.sin_addr.s_addr = *(long *) (bounce->h_addr);        start = atoi(argv[4]);        stop = atoi(argv[5]);        for (i = start; i <= stop; i++) {                proxey.sin_port = htons(atoi(argv[2]));                socks = socket(AF_INET, SOCK_STREAM, 0);                if (socks < 0)                        exit(printf("Socket error\n"));                port = i;                sprintf(temp, "%s%s:%d HTTP/1.0 \n\n", conn, target, port);                if ((connect(socks, (struct sockaddr *) &proxey, sizeof(proxey))) < 0)                        exit(printf("Connection error\n"));                write(socks, temp, strlen(temp));                if (read(socks, buffer, sizeof(buffer)) < 0)                        exit(printf("Read error"));                if (strcmp(buffer, connected) <= 0)                        printf("\nPort: %i open", &i);                printf("%s\n", buffer);                close(socks);        }        printf("\nScan finished\n");        return 0;}

通过给向代理服务器,发送http request 然后得到相应

HTTP 请求格式:GET http://www.baidu.com HTTP/1.0


HTTP请求格式:

GET / HTTP/1.1
Host: 
www.baidu.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive


HTTP响应格式:HTTP/1.1 200 OK
Date: Sat, 31 Dec 2005 23:59:59 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 122

<html>
<head>
<title>Wrox Homepage</title>
</head>
<body>
<!-- body goes here -->
</body>
</html>

原创粉丝点击