Hex Artifact Content

Artifact 870d0bb3113b931250106e3652d8cffd423386df3853002433912657d44ab2e5:


0000: 23 20 47 72 6f 75 70 2c 4e 61 6d 65 2c 43 6f 6e  # Group,Name,Con
0010: 73 74 72 61 69 6e 74 73 2c 53 65 74 75 70 2c 42  straints,Setup,B
0020: 6f 64 79 2c 43 6c 65 61 6e 75 70 2c 4d 61 74 63  ody,Cleanup,Matc
0030: 68 2c 52 65 73 75 6c 74 2c 4f 75 74 70 75 74 2c  h,Result,Output,
0040: 45 72 72 6f 72 20 4f 75 74 70 75 74 2c 52 65 74  Error Output,Ret
0050: 75 72 6e 20 43 6f 64 65 73 0a 63 6f 6d 6d 61 6e  urn Codes.comman
0060: 64 2c 70 61 63 6b 61 67 65 20 70 72 65 66 65 72  d,package prefer
0070: 20 6c 61 74 65 73 74 2c 2c 2c 2c 2c 2c 2c 2c 2c   latest,,,,,,,,,
0080: 0a 63 6f 6d 6d 61 6e 64 2c 70 61 63 6b 61 67 65  .command,package
0090: 20 72 65 71 75 69 72 65 20 74 6c 73 2c 2c 2c 2c   require tls,,,,
00a0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 70 61  ,,,,,.command,pa
00b0: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 68 74  ckage require ht
00c0: 74 70 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c  tp,,,,,,,,,.,,,,
00d0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
00e0: 20 43 6f 6e 73 74 72 61 69 6e 74 73 2c 2c 2c 2c   Constraints,,,,
00f0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 73 65  ,,,,,.command,se
0100: 74 20 64 69 72 20 5b 66 69 6c 65 20 6a 6f 69 6e  t dir [file join
0110: 20 5b 70 77 64 5d 20 5b 66 69 6c 65 20 64 69 72   [pwd] [file dir
0120: 6e 61 6d 65 20 5b 69 6e 66 6f 20 73 63 72 69 70  name [info scrip
0130: 74 5d 5d 5d 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f  t]]],,,,,,,,,.co
0140: 6d 6d 61 6e 64 2c 73 6f 75 72 63 65 20 5b 66 69  mmand,source [fi
0150: 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 63 6f 6d  le join $dir com
0160: 6d 6f 6e 2e 74 63 6c 5d 2c 2c 2c 2c 2c 2c 2c 2c  mon.tcl],,,,,,,,
0170: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
0180: 6d 61 6e 64 2c 23 20 48 65 6c 70 65 72 20 66 75  mand,# Helper fu
0190: 6e 63 74 69 6f 6e 73 2c 2c 2c 2c 2c 2c 2c 2c 2c  nctions,,,,,,,,,
01a0: 0a 63 6f 6d 6d 61 6e 64 2c 73 65 74 20 3a 3a 63  .command,set ::c
01b0: 61 66 69 6c 65 20 5b 66 69 6c 65 20 6a 6f 69 6e  afile [file join
01c0: 20 24 64 69 72 20 63 65 72 74 73 20 63 61 63 65   $dir certs cace
01d0: 72 74 2e 70 65 6d 5d 2c 2c 2c 2c 2c 2c 2c 2c 2c  rt.pem],,,,,,,,,
01e0: 0a 63 6f 6d 6d 61 6e 64 2c 73 65 74 20 3a 3a 65  .command,set ::e
01f0: 6e 76 28 53 53 4c 5f 43 45 52 54 5f 46 49 4c 45  nv(SSL_CERT_FILE
0200: 29 20 24 3a 3a 63 61 66 69 6c 65 2c 2c 2c 2c 2c  ) $::cafile,,,,,
0210: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 3a 3a 68  ,,,,.command,::h
0220: 74 74 70 3a 3a 72 65 67 69 73 74 65 72 20 68 74  ttp::register ht
0230: 74 70 73 20 34 34 33 20 5b 6c 69 73 74 20 3a 3a  tps 443 [list ::
0240: 74 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 63 61 66  tls::socket -caf
0250: 69 6c 65 20 24 3a 3a 63 61 66 69 6c 65 5d 2c 2c  ile $::cafile],,
0260: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
0270: 22 70 72 6f 63 20 67 65 74 5f 75 72 6c 20 7b 75  "proc get_url {u
0280: 72 6c 7d 20 7b 0a 20 20 20 20 73 65 74 20 74 6f  rl} {.    set to
0290: 6b 65 6e 20 5b 3a 3a 68 74 74 70 3a 3a 67 65 74  ken [::http::get
02a0: 75 72 6c 20 24 75 72 6c 5d 0a 20 20 20 20 73 65  url $url].    se
02b0: 74 20 62 6f 64 79 20 5b 3a 3a 68 74 74 70 3a 3a  t body [::http::
02c0: 64 61 74 61 20 24 74 6f 6b 65 6e 5d 0a 20 20 20  data $token].   
02d0: 20 3a 3a 68 74 74 70 3a 3a 63 6c 65 61 6e 75 70   ::http::cleanup
02e0: 20 24 74 6f 6b 65 6e 0a 20 20 20 20 72 65 74 75   $token.    retu
02f0: 72 6e 20 24 62 6f 64 79 0a 7d 0a 22 2c 2c 2c 2c  rn $body.}.",,,,
0300: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 70  ,,,,,.command,"p
0310: 72 6f 63 20 67 65 74 5f 64 61 74 61 20 7b 75 72  roc get_data {ur
0320: 6c 7d 20 7b 0a 20 20 20 20 73 65 74 20 74 6f 6b  l} {.    set tok
0330: 65 6e 20 5b 3a 3a 68 74 74 70 3a 3a 67 65 74 75  en [::http::getu
0340: 72 6c 20 24 75 72 6c 5d 0a 20 20 20 20 73 65 74  rl $url].    set
0350: 20 62 6f 64 79 20 5b 3a 3a 68 74 74 70 3a 3a 64   body [::http::d
0360: 61 74 61 20 24 74 6f 6b 65 6e 5d 0a 20 20 20 20  ata $token].    
0370: 3a 3a 68 74 74 70 3a 3a 63 6c 65 61 6e 75 70 20  ::http::cleanup 
0380: 24 74 6f 6b 65 6e 0a 20 20 20 20 73 65 74 20 70  $token.    set p
0390: 61 74 74 65 72 6e 20 7b 3c 62 6f 64 79 2e 2a 3f  attern {<body.*?
03a0: 3e 28 2e 2a 3f 29 3c 2f 62 6f 64 79 3e 7d 0a 20  >(.*?)</body>}. 
03b0: 20 20 20 73 65 74 20 64 61 74 61 20 22 22 22 22     set data """"
03c0: 0a 20 20 20 20 72 65 67 65 78 70 20 2d 6e 6f 63  .    regexp -noc
03d0: 61 73 65 20 24 70 61 74 74 65 72 6e 20 24 62 6f  ase $pattern $bo
03e0: 64 79 20 6d 61 74 63 68 20 64 61 74 61 0a 20 20  dy match data.  
03f0: 20 20 72 65 74 75 72 6e 20 24 64 61 74 61 0a 7d    return $data.}
0400: 0a 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c  .",,,,,,,,,.,,,,
0410: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
0420: 20 62 72 6f 77 73 65 72 6c 65 61 6b 73 2e 63 6f   browserleaks.co
0430: 6d 20 54 65 73 74 73 2c 2c 2c 2c 2c 2c 2c 2c 2c  m Tests,,,,,,,,,
0440: 0a 42 72 6f 77 73 65 72 4c 65 61 6b 73 2c 54 4c  .BrowserLeaks,TL
0450: 53 20 31 2e 33 2c 4f 70 65 6e 53 53 4c 33 2e 32  S 1.3,OpenSSL3.2
0460: 2c 2c 67 65 74 5f 75 72 6c 20 68 74 74 70 73 3a  ,,get_url https:
0470: 2f 2f 74 6c 73 31 33 2e 62 72 6f 77 73 65 72 6c  //tls13.browserl
0480: 65 61 6b 73 2e 63 6f 6d 2c 2c 2c 54 4c 53 20 31  eaks.com,,,TLS 1
0490: 2e 33 2c 2c 2c 0a 42 72 6f 77 73 65 72 4c 65 61  .3,,,.BrowserLea
04a0: 6b 73 2c 54 4c 53 20 31 2e 32 2c 4f 70 65 6e 53  ks,TLS 1.2,OpenS
04b0: 53 4c 33 2e 32 2c 2c 67 65 74 5f 75 72 6c 20 68  SL3.2,,get_url h
04c0: 74 74 70 73 3a 2f 2f 74 6c 73 31 32 2e 62 72 6f  ttps://tls12.bro
04d0: 77 73 65 72 6c 65 61 6b 73 2e 63 6f 6d 2c 2c 2c  wserleaks.com,,,
04e0: 54 4c 53 20 31 2e 32 2c 2c 2c 0a 42 72 6f 77 73  TLS 1.2,,,.Brows
04f0: 65 72 4c 65 61 6b 73 2c 54 4c 53 20 31 2e 31 2c  erLeaks,TLS 1.1,
0500: 4f 70 65 6e 53 53 4c 33 2e 32 2c 2c 67 65 74 5f  OpenSSL3.2,,get_
0510: 75 72 6c 20 68 74 74 70 73 3a 2f 2f 74 6c 73 31  url https://tls1
0520: 31 2e 62 72 6f 77 73 65 72 6c 65 61 6b 73 2e 63  1.browserleaks.c
0530: 6f 6d 2c 2c 2c 66 61 69 6c 65 64 20 74 6f 20 75  om,,,failed to u
0540: 73 65 20 73 6f 63 6b 65 74 2c 2c 2c 31 0a 42 72  se socket,,,1.Br
0550: 6f 77 73 65 72 4c 65 61 6b 73 2c 54 4c 53 20 31  owserLeaks,TLS 1
0560: 2e 30 2c 4f 70 65 6e 53 53 4c 33 2e 32 2c 2c 67  .0,OpenSSL3.2,,g
0570: 65 74 5f 75 72 6c 20 68 74 74 70 73 3a 2f 2f 74  et_url https://t
0580: 6c 73 31 30 2e 62 72 6f 77 73 65 72 6c 65 61 6b  ls10.browserleak
0590: 73 2e 63 6f 6d 2c 2c 2c 66 61 69 6c 65 64 20 74  s.com,,,failed t
05a0: 6f 20 75 73 65 20 73 6f 63 6b 65 74 2c 2c 2c 31  o use socket,,,1
05b0: 0a 42 72 6f 77 73 65 72 4c 65 61 6b 73 2c 4a 41  .BrowserLeaks,JA
05c0: 34 20 52 61 77 20 46 69 6e 67 65 72 70 72 69 6e  4 Raw Fingerprin
05d0: 74 2c 4f 70 65 6e 53 53 4c 33 2e 32 2c 2c 67 65  t,OpenSSL3.2,,ge
05e0: 74 5f 64 61 74 61 20 68 74 74 70 73 3a 2f 2f 74  t_data https://t
05f0: 6c 73 2e 62 72 6f 77 73 65 72 6c 65 61 6b 73 2e  ls.browserleaks.
0600: 63 6f 6d 2f 69 66 72 61 6d 65 2f 6a 61 34 2c 2c  com/iframe/ja4,,
0610: 67 6c 6f 62 2c 74 2a 2c 2c 2c 0a 42 72 6f 77 73  glob,t*,,,.Brows
0620: 65 72 4c 65 61 6b 73 2c 22 4a 41 34 20 52 61 77  erLeaks,"JA4 Raw
0630: 20 46 69 6e 67 65 72 70 72 69 6e 74 2c 20 4f 72   Fingerprint, Or
0640: 69 67 69 6e 61 6c 20 4f 72 64 65 72 22 2c 4f 70  iginal Order",Op
0650: 65 6e 53 53 4c 33 2e 32 2c 2c 67 65 74 5f 64 61  enSSL3.2,,get_da
0660: 74 61 20 68 74 74 70 73 3a 2f 2f 74 6c 73 2e 62  ta https://tls.b
0670: 72 6f 77 73 65 72 6c 65 61 6b 73 2e 63 6f 6d 2f  rowserleaks.com/
0680: 69 66 72 61 6d 65 2f 6a 61 34 5f 6f 2c 2c 67 6c  iframe/ja4_o,,gl
0690: 6f 62 2c 74 2a 2c 2c 2c 0a 42 72 6f 77 73 65 72  ob,t*,,,.Browser
06a0: 4c 65 61 6b 73 2c 4a 41 33 20 52 61 77 20 46 69  Leaks,JA3 Raw Fi
06b0: 6e 67 65 72 70 72 69 6e 74 2c 4f 70 65 6e 53 53  ngerprint,OpenSS
06c0: 4c 33 2e 32 2c 2c 67 65 74 5f 64 61 74 61 20 68  L3.2,,get_data h
06d0: 74 74 70 73 3a 2f 2f 74 6c 73 2e 62 72 6f 77 73  ttps://tls.brows
06e0: 65 72 6c 65 61 6b 73 2e 63 6f 6d 2f 69 66 72 61  erleaks.com/ifra
06f0: 6d 65 2f 6a 61 33 2c 2c 67 6c 6f 62 2c 2a 2c 2c  me/ja3,,glob,*,,
0700: 2c 0a 42 72 6f 77 73 65 72 4c 65 61 6b 73 2c 22  ,.BrowserLeaks,"
0710: 4a 41 33 20 52 61 77 20 46 69 6e 67 65 72 70 72  JA3 Raw Fingerpr
0720: 69 6e 74 2c 20 4f 72 69 67 69 6e 61 6c 20 4f 72  int, Original Or
0730: 64 65 72 22 2c 4f 70 65 6e 53 53 4c 33 2e 32 2c  der",OpenSSL3.2,
0740: 2c 67 65 74 5f 64 61 74 61 20 68 74 74 70 73 3a  ,get_data https:
0750: 2f 2f 74 6c 73 2e 62 72 6f 77 73 65 72 6c 65 61  //tls.browserlea
0760: 6b 73 2e 63 6f 6d 2f 69 66 72 61 6d 65 2f 6a 61  ks.com/iframe/ja
0770: 33 5f 6e 2c 2c 67 6c 6f 62 2c 2a 2c 2c 2c 0a 42  3_n,,glob,*,,,.B
0780: 72 6f 77 73 65 72 4c 65 61 6b 73 2c 45 6e 63 72  rowserLeaks,Encr
0790: 79 70 74 65 64 20 43 6c 69 65 6e 74 20 48 65 6c  ypted Client Hel
07a0: 6c 6f 2c 4f 70 65 6e 53 53 4c 33 2e 32 2c 2c 67  lo,OpenSSL3.2,,g
07b0: 65 74 5f 64 61 74 61 20 68 74 74 70 73 3a 2f 2f  et_data https://
07c0: 74 6c 73 2e 62 72 6f 77 73 65 72 6c 65 61 6b 73  tls.browserleaks
07d0: 2e 63 6f 6d 2f 69 66 72 61 6d 65 2f 65 63 68 2c  .com/iframe/ech,
07e0: 2c 67 6c 6f 62 2c 20 2a 46 61 6c 73 65 2a 2c 2c  ,glob, *False*,,
07f0: 2c 0a                                            ,.