快速业务通道

深入分析代理猎手

作者 佚名 来源 代理服务器 浏览 发布时间 2013-07-10
手从而通过验证的方法。而在验证有限制的代理是LOG如下:

-----
HTTP/1.1 404 ERROR
.......
-----
进一步的研究表明,仅发出
"HTTP/1.1 404"
的字符传就可以欺骗从而通过验证,猎手显示 ”要密码“ :)
---
2.8版的猎手中还增加的对socks的验证, 但结果同上:)
---
  至此,我们应该可以从分析的结果中找到代理的实现方法了,剩下就是通过程序来证明之。 但还有两个方面值得注意:

  1。在上面的第一个log中,我附带了16进制的转换,这很重要!!早先我就是没有仔细查看它,走了很长的弯路。请注意字符传之间的分格符,"0x0d 0x0a" 也就是c 中的”\n";行了吗?且慢,最重要的就是最后的8bits!!!!!!!!! "0x0d 0x0a 0x0d 0x0a" 连续的两个"\n\n",当初我就是没有看到它, 始终得不到正确的答案。(在程序通不过测试后,我只好手动的找寻答案不行,最后再看了一边log,才发现问题所在,就象 linux 中 mail 命令以一个回车加上一个点代表信笺的结束一样,send代理命令是以连续的两个回车结束. 下面是代理猎手的gnuC 实现,注意,本程序只是解释了代理猎手的实现过程,没有多IP 的扫描功能。

------------------------------cut here -----------------------------------
   /* this codez describe how to search a PROXY server
   *
   * by
   *
   * zer9
   * ====
   * zer9@21cn.com
   *
   * test on slackware 2.0.33
   * cc proxyht.c -o proxyht.c
   */
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/socket.h>
#include <signal.h>
#define DefaultProxyPort 8080 //default proxy port 8080
#define MSG1 "GET http://www.maxtor.com HTTP/1.1\n" //1 --change (1 ,2)
#define MSG2 "Host: www.maxtor.com\n" //2 to search
#define MSG3 "Accept: */*\n" // other sit e #define MSG4 "Pragma: no-cache\n"
#define MSG5 "User-Agent: ProxyHT 0.01\n\n" #define KEYWORD "Maxtor Corp" // this is
keyword #define TIMEOUT 30
void alarm_handler(int w)
{
alarm(0);
printf("Time Out!\n");
}
int main(int argc,char *argv[])
{
struct in_addr Target;
struct hostent *he;
struct sockaddr_in sin;
int s,ProxyPort;
char recvbuf1[5000];
char recvbuf2[10000];
if(argc==2)
ProxyPort=DefaultProxyPort;
else
if(argc==3)
ProxyPort=atoi(argv[2]);
else
{
printf("ProxyHT 0.01 by zer9 mail:zer9@21cn.com\n");
printf("usage: %s [proxy_port]\n",argv[0]);
return 0;
}
if((he=gethostbyname(argv[1]))!=NULL)
bcopy(he->h_addr,(char *)&Target.s_addr,he->h_length);
else
Target.s_addr=inet_addr(argv[1]);
if(Target.s_addr==-1)
{
perror("gethostbyname");
return -1;
}
printf("ProxyHT 0.01 by zer9 mail:
zer9@21cn.com\n");
if((s=socket(AF_INET,SOCK_STREAM,0))<0)
{
perror("socket");
return -1;
}
sin.sin_family=AF_INET;
sin.sin_port=htons(ProxyPort);
sin.sin_addr.s_addr=Target.s_addr;
if(connect(s,(struct sockaddr*)&sin,sizeof(sin))<0)
{
perror("connect");
return -1;
}
bzero(recvbuf1,sizeof(recvbuf1));
bzero(recvbuf2,sizeof(recvbuf2));
printf("%s start verifying... waiting a while please\n",argv[1]);
signal(SIGALRM,alarm_handler);
send(s,MSG1,strlen(MSG1),0);
send(s,MSG2,strlen(MSG2),0);
send(s,MSG3,strlen(MSG3),0);
send(s,MSG4,strlen(MSG4),0);
send(s,MSG5,strlen(MSG5),0);
1alarm(TIMEOUT);
recv(s,recvbuf1,sizeof(recvbuf1),0);
recv(s,recvbuf2,sizeof(rec

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号