https传输过程嗅探

C1->浏览器告知服务器自身的信息
length = 165  a5
16 03 01 00 A0 01 00 00 9C 03 03 5E 1C 37 CD 40 [           ^ 7 @]
B6 4A 9A 1A BC 43 85 2D 91 6E 24 D1 CB 98 D2 67 [ J   C - n$    g]
30 7B B9 34 F6 34 14 51 89 62 26 00 00 16 C0 2B [0{ 4 4 Q b&    +]
C0 2F C0 0A C0 09 C0 13 C0 14 00 33 00 39 00 2F [ /         3 9 /]
00 35 00 0A 01 00 00 5D FF 01 00 01 00 00 0A 00 [ 5     ]        ]
08 00 06 00 17 00 18 00 19 00 0B 00 02 01 00 00 [                ]
23 00 00 33 74 00 00 00 10 00 17 00 15 02 68 32 [#  3t         h2]
08 73 70 64 79 2F 33 2E 31 08 68 74 74 70 2F 31 [ spdy/3.1 http/1]
2E 31 00 05 00 05 01 00 00 00 00 00 0D 00 16 00 [.1              ]
14 04 01 05 01 06 01 02 01 04 03 05 03 06 03 02 [                ]
03 04 02 02 02 [     ]
S1->服务器下发证书、公钥和加密算法
length = 706  2c2
16 03 01 00 4A 02 00 00 46 03 01 5A 27 B5 7C 7F [    J   F  Z' |]
22 90 0E 44 C7 1B 5E C2 9C C7 36 7D 98 4D 2B BE ["  D  ^   6} M+ ]
C6 22 A1 77 D2 05 C1 F6 DE 40 E3 20 DD 67 0B 73 [ " w     @   g s]
DB 42 F0 6E 0C BA 1C 10 8C 91 92 89 9D 71 BC 2D [ B n         q -]
BF 42 3F D4 5A EB 0A C4 F5 F6 F9 FB 00 35 00 16 [ B? Z        5  ]
03 01 02 65 0B 00 02 61 00 02 5E 00 02 5B 30 82 [   e   a  ^  [0 ]
02 57 30 82 01 C0 02 09 00 F4 8B D0 DD AC D8 6F [ W0            o]
34 30 0D 06 09 2A 86 48 86 F7 0D 01 01 05 05 00 [40   * H        ]
30 70 31 0B 30 09 06 03 55 04 06 13 02 43 4E 31 [0p1 0   U    CN1]
0B 30 09 06 03 55 04 08 13 02 53 48 31 0B 30 09 [ 0   U    SH1 0 ]
06 03 55 04 07 13 02 53 48 31 0C 30 0A 06 03 55 [  U    SH1 0   U]
04 0A 13 03 4E 42 45 31 0B 30 09 06 03 55 04 0B [    NBE1 0   U  ]
13 02 52 44 31 0E 30 0C 06 03 55 04 03 13 05 6C [  RD1 0   U    l]
69 75 79 69 31 1C 30 1A 06 09 2A 86 48 86 F7 0D [iuyi1 0   * H   ]
01 09 01 16 0D 61 64 6D 69 6E 40 6E 62 65 2E 63 [     admin@nbe.c]
6F 6D 30 1E 17 0D 31 37 31 32 30 36 30 32 35 30 [om0   1712060250]
34 38 5A 17 0D 31 38 31 32 30 36 30 32 35 30 34 [48Z  18120602504]
38 5A 30 70 31 0B 30 09 06 03 55 04 06 13 02 43 [8Z0p1 0   U    C]
4E 31 0B 30 09 06 03 55 04 08 13 02 53 48 31 0B [N1 0   U    SH1 ]
30 09 06 03 55 04 07 13 02 53 48 31 0C 30 0A 06 [0   U    SH1 0  ]
03 55 04 0A 13 03 4E 42 45 31 0B 30 09 06 03 55 [ U    NBE1 0   U]
04 0B 13 02 52 44 31 0E 30 0C 06 03 55 04 03 13 [    RD1 0   U   ]
05 6C 69 75 79 69 31 1C 30 1A 06 09 2A 86 48 86 [ liuyi1 0   * H ]
F7 0D 01 09 01 16 0D 61 64 6D 69 6E 40 6E 62 65 [       admin@nbe]
2E 63 6F 6D 30 81 9F 30 0D 06 09 2A 86 48 86 F7 [.com0  0   * H  ]
0D 01 01 01 05 00 03 81 8D 00 30 81 89 02 81 81 [          0     ]
00 A7 46 00 8F 11 C0 C4 3D A8 88 56 40 2B 7F 99 [  F     =  V@+ ]
CC 21 6E 5B C4 53 D9 4E 0A DC 10 1E A3 64 83 F2 [ !n[ S N     d  ]
B6 33 A5 62 D3 5D 7A E3 38 DD FD 51 58 6F AE D4 [ 3 b ]z 8  QXo  ]
8D F5 32 30 2C 4E 0F 2E 92 2F EE A3 98 07 2D CA [  20,N . /    - ]
8A 07 05 F3 1C 6B FC EE 35 E3 E2 77 B0 60 55 07 [     k  5  w `U ]
6B 81 F7 99 3A FA A3 AF 19 4C 27 10 02 28 D5 7D [k   :    L'  ( }]
67 8B A8 E9 04 22 CB 95 56 D9 9B B7 6A 15 45 ED [g    "  V   j E ]
54 19 13 15 E8 DA 99 25 06 21 07 95 A7 6C B5 D1 [T      % !   l  ]
59 02 03 01 00 01 30 0D 06 09 2A 86 48 86 F7 0D [Y     0   * H   ]
01 01 05 05 00 03 81 81 00 68 61 4B A2 EC 7B CC [         haK  { ]
0E 04 78 19 F4 B0 DE 09 86 9F D8 B0 2E DE AD C2 [  x         .   ]
AF 76 12 79 80 0E F3 A3 50 01 D3 87 8C 4D 89 1D [ v y    P    M  ]
AD 1B 60 C3 4F 15 13 A3 C9 1B AB AA 72 29 45 77 [  ` O       r)Ew]
49 FC 79 06 C5 79 D6 5D F1 09 46 5F 3F C3 AF ED [I y  y ]  F_?   ]
F1 24 1A 7C BA 1E 5B 1C FE AB B0 E7 8F 49 26 23 [ $ |  [      I&#]
C5 32 6F 17 53 8E 49 71 BF 54 FD AA 3B 03 AE EC [ 2o S Iq T  ;   ]
C8 D8 90 12 AE C3 21 6D BE 24 B9 1D E6 DE 06 81 [      !m $      ]
EA 70 91 CF 58 73 60 D2 14 16 03 01 00 04 0E 00 [ p  Xs`         ]
00 00 [  ]
C2->浏览器用公钥加密传输密钥,上送给服务器
length = 198  c6
16 03 01 00 86 10 00 00 82 00 80 30 04 3F FB AF [           0 ?  ]
54 7B 01 CE EC 7E 60 EC 48 62 14 4E DF 78 EC 90 [T{   ~` Hb N x  ]
E3 15 68 20 C6 E5 68 D5 2C B1 16 05 D7 3E F5 C8 [  h   h ,    >  ]
55 F8 41 BD 54 C5 B5 C9 36 21 B8 EE E0 F7 66 E7 [U A T   6!    f ]
44 FA A8 95 5F 27 DB AB A8 81 45 36 11 D4 22 F2 [D   _'    E6  " ]
05 05 60 5A 7D 28 C8 1E 01 92 F5 A1 A1 BB 7C D7 [  `Z}(        | ]
43 2C DE D9 F1 74 6B C7 97 85 DA C0 6D 16 B5 97 [C,   tk     m   ]
68 0A 7E 63 EF 05 94 E7 3B E7 75 17 D2 2D D7 55 [h ~c    ; u  - U]
14 D9 42 96 3D 1E 1D DD EE 7D 90 14 03 01 00 01 [  B =    }      ]
01 16 03 01 00 30 CD 3B 22 66 59 E0 F6 68 87 D4 [     0 ;"fY  h  ]
01 86 13 4D 7E 07 60 55 22 1C FB BC F7 C6 14 32 [   M~ `U"      2]
00 94 A9 42 FC 82 D3 FA 63 49 06 56 75 7F 89 CF [   B    cI Vu  ]
F9 F2 EC 91 82 2B [     +]
S2->服务器用私钥解开传输密钥,并给回应给浏览器
length = 59  3b
14 03 01 00 01 01 16 03 01 00 30 C4 D9 08 B1 08 [          0     ]
28 EC D5 64 55 00 E6 32 72 A7 3C B0 85 47 D4 E1 [(  dU  2r <  G  ]
20 1F CD 71 D1 1C 24 44 19 77 94 F1 7C B9 E0 58 [   q  $D w  |  X]
D8 8F 2A D1 29 DD 77 F6 F0 24 F2 [  * ) w  $ ]
C2->用传输密钥加密信息,和服务器通信
length = 490  1ea
17 03 01 00 20 13 7C 08 03 8A 88 EC 4E 92 2D 73 [      |     N -s]
39 A6 06 46 9F 29 7C 0A AA 06 67 8B 2F 0B BF 98 [9  F )|   g /   ]
8C 95 C3 EF 16 17 03 01 01 C0 2D 04 CA E0 F9 A4 [          -     ]
4D DB 77 49 5B 7A E8 B9 E2 E7 24 EA D6 07 33 35 [M wI[z    $   35]
B4 9F EE 16 54 C0 06 AF FC 0A B1 25 F9 AE 8D B1 [    T      %    ]
61 C2 5E 9F 3A 8A 55 25 51 18 39 88 68 4F 25 05 [a ^ : U%Q 9 hO% ]
33 EB 1E 14 7B 73 57 B5 1D 1F 04 17 28 15 82 56 [3   {sW     (  V]
FF 9B 2E 3D 9E 9C 49 2D 93 66 E1 D1 A2 7B D2 22 [  .=  I- f   { "]
C7 54 08 FE B3 E4 93 AC 36 78 B0 8E 34 54 48 73 [ T      6x  4THs]
72 9C 43 83 9B A6 06 3F 9B CA 97 10 FB 1F 20 A9 [r C    ?        ]
51 B1 F4 05 23 68 5B DF 06 C5 5D C8 7D D3 21 80 [Q   #h[   ] } ! ]
29 BD 36 CC 11 73 D7 CE 4D 03 86 78 DF E5 65 66 [) 6  s  M  x  ef]
0A 53 D5 A0 47 EA AC A7 60 59 BD 41 8C 99 A5 E8 [ S  G   `Y A    ]
3B D5 56 91 75 D7 B1 C4 0E 5F 61 B7 29 6E 62 86 [; V u    _a )nb ]
F3 89 90 0F 86 A9 18 92 2E 94 E8 20 AA 3D 13 D1 [        .    =  ]
EE 2C 59 03 D3 0E 22 02 F7 67 77 64 AB C1 31 82 [ ,Y   "  gwd  1 ]
33 D5 27 85 77 BC 1D 5D 8C 31 1F 6E 0B 43 7F E8 [3 ' w  ] 1 n C ]
E0 CD 95 7E 98 DA 50 1F 75 9C 9B 68 8B E5 77 6E [   ~  P u  h  wn]
F5 2B B2 5D 47 04 67 9F FE 7D 6A E0 73 0D C6 A7 [ + ]G g  }j s   ]
52 4D 2E D7 9F 26 D6 48 97 E6 B9 22 1D E3 7C A4 [RM.  & H   "  | ]
3C D7 BB 56 AF 29 2A FE 24 01 96 01 34 0F CF E9 [<  V )* $   4   ]
E7 EF 9A 31 0A 90 CB A6 D4 79 CC 30 88 B2 F4 3D [   1     y 0   =]
69 DA D1 F4 0D 8F 38 40 C1 48 5F 34 35 55 91 FA [i     8@ H_45U  ]
FD D5 DE 4A 12 EB 66 D1 C9 7C B0 7C 1D F6 1F 45 [   J  f  | |   E]
CA C3 7E 0C BE DB 92 37 9D D0 98 83 89 D3 24 1F [  ~    7      $ ]
31 88 7E 8C 2D 29 0F D1 B3 D5 C6 6D 0E 6D 83 1A [1 ~ -)     m m  ]
B2 0E 2E DF A1 D5 A2 6A 5B 80 A5 39 03 92 AD 89 [  .    j[  9    ]
DE 7B E5 2F F6 85 B4 D1 98 1D 80 F6 7B 55 51 1A [ { /        {UQ ]
B6 72 21 B5 05 0C 22 58 10 7A B9 4C F4 FC 6C 82 [ r!   "X z L  l ]
67 FB E9 CE 33 65 AF 92 75 D4 DA D0 7A 11 91 AB [g   3e  u   z   ]
CC 0A 50 E8 C3 62 2D BB DD 60 [  P  b-  `]
S2->用传输密钥加密信息,回应给浏览器  (是不是压缩了?)
length = 213  d5
17 03 01 00 D0 3D 9F DD F5 C4 C2 11 E8 89 49 C7 [     =        I ]
2E CF CF 73 74 36 D8 F2 01 F7 A6 FF 53 44 56 0A [.  st6      SDV ]
72 6F A5 C5 96 0B FC AC CA B8 E3 D9 78 CE 28 3B [ro          x (;]
49 3D 31 53 4C 3B 5E E0 C1 D8 6A A6 CA CB D5 0B [I=1SL;^   j     ]
E8 06 5B B4 99 38 59 EC D8 6E 39 88 32 FC FA 1B [  [  8Y  n9 2   ]
71 70 1D 41 E6 57 D5 41 CF E8 24 D1 6F CC E0 43 [qp A W A  $ o  C]
04 19 67 A4 D8 E4 4E 38 57 84 1D 3A 8F F3 84 E7 [  g   N8W  :    ]
2D CD 1A 0B 5C D2 DB 3B 81 5D 89 C6 1F 53 BE 28 [-   \  ; ]   S (]
C3 22 A8 60 26 25 8B 88 9F 43 F5 65 7D 92 B2 02 [ " `&%   C e}   ]
FF 4D 22 F4 F5 31 FD 3D FA 69 EB 2B 8A 4C 96 9C [ M"  1 = i + L  ]
0B C1 DE E4 F1 C8 DD 1B 75 86 58 EE 06 99 9F C1 [        u X     ]
16 6F 41 88 CC 80 47 58 B4 12 06 85 D5 7C 25 47 [ oA   GX     |%G]
08 AE 78 0D F0 7C D6 B3 7D 4C 90 98 02 85 5E 9B [  x  |  }L    ^ ]
6F F3 D0 94 FA [o    ]

 

 

#include <stdio.h>
#include <Winsock2.h>
#pragma comment(lib, "ws2_32.lib")

#define  HEX_LINE  16
void print_hex(char *data, int len)
{
	printf("length = %d  %x\n",len,len);
	int i,j;
	char *p = data;
	char vision[HEX_LINE+1];
	int seg;
	for(i=0;i<len;i+=HEX_LINE)
	{
		seg = i+HEX_LINE > len ? len - i : HEX_LINE;
		memset(vision,0,sizeof(vision));
		memcpy(vision,p+i,seg);
		for(j=0;j<seg;j++){
			printf("%02X ",(unsigned char)vision[j]);
			if(vision[j]<0x20) vision[j] = ' ';
		}

		printf("[%s]\n",vision);
	}

}


int main()
{
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;
	
	wVersionRequested = MAKEWORD( 1, 1 );
	
	err = WSAStartup( wVersionRequested, &wsaData );
	if ( err != 0 ) {
		return 0;
	}
	
	if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) != 1 ) {
		WSACleanup( );
		return 0; 
	}
	SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
	
	SOCKADDR_IN addrSrv;
	addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
	addrSrv.sin_family=AF_INET;
	addrSrv.sin_port=htons(8080);
	
	bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
	
	listen(sockSrv,5);
	
	SOCKADDR_IN addrClient;
	int len=sizeof(SOCKADDR);
	
	SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
	SOCKADDR_IN addrSrvClient;
	addrSrvClient.sin_addr.S_un.S_addr=inet_addr("172.28.250.184");
	addrSrvClient.sin_family=AF_INET;
	addrSrvClient.sin_port=htons(1443);
	connect(sockClient,(SOCKADDR*)&addrSrvClient,sizeof(SOCKADDR));
	
	
	
	SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
	
	
	char recvBuf[1500];
	int recvLen = recv(sockConn,recvBuf,1500,0);
	printf("C1->浏览器告知服务器自身的信息\n");
	print_hex(recvBuf,recvLen);
	send(sockClient,recvBuf,recvLen,0);
	recvLen = recv(sockClient,recvBuf,1500,0);
	printf("S1->服务器下发证书、公钥和加密算法\n");
	print_hex(recvBuf,recvLen);
	send(sockConn,recvBuf,recvLen,0);
	
	
	//2.接收对称密钥
	printf("C2->浏览器用公钥加密传输密钥,上送给服务器\n");
	recvLen = recv(sockConn,recvBuf,1500,0);
	print_hex(recvBuf,recvLen);
	send(sockClient,recvBuf,recvLen,0);
	recvLen = recv(sockClient,recvBuf,1500,0);
	printf("S2->服务器用私钥解开传输密钥,并给回应给浏览器\n");
	print_hex(recvBuf,recvLen);
	send(sockConn,recvBuf,recvLen,0);
	
	//3.数据传输
	printf("C2->用传输密钥加密信息,和服务器通信\n");
	recvLen = recv(sockConn,recvBuf,1500,0);
	print_hex(recvBuf,recvLen);
	send(sockClient,recvBuf,recvLen,0);
	recvLen = recv(sockClient,recvBuf,1500,0);
	printf("S2->用传输密钥加密信息,回应给浏览器\n");
	print_hex(recvBuf,recvLen);
	send(sockConn,recvBuf,recvLen,0);
	
	closesocket(sockConn);
	closesocket(sockClient);
	return 0;
}

 

posted on 2017-12-06 17:29  阮減显  阅读(1016)  评论(0编辑  收藏  举报

导航