1# Copyright 2016 The Chromium Authors 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5# Fuzzer dictionary targetting HTTP/1.x responses. 6 7# Entries that are generally useful in headers 8":" 9"\x0A" 10"\x0D" 11"0" 12"50" 13"500" 14# Horizontal whitespace. Matters mostly in status line. 15" " 16"\x09" 17# Header continuation 18"\x0D\x0A\x09" 19# Used in a lot of individual headers 20";" 21"=" 22"," 23"\"" 24"-" 25 26# Status line components 27"HTTP" 28"/1.1" 29"/1.0" 30# More interesting status codes. Leading space so can be inserted into 31# other status lines. 32" 100" 33" 200" 34" 206" 35" 301" 36" 302" 37" 303" 38" 304" 39" 307" 40" 308" 41" 401" 42" 403" 43" 404" 44" 500" 45" 501" 46" 403" 47 48# Full status lines (Some with relevant following headers) 49"HTTP/1.1 200 OK\x0A\x0A" 50"HTTP/1.1 100 Continue\x0A\x0A" 51"HTTP/1.1 401 Unauthorized\x0AWWW-Authenticate: Basic realm=\"Middle-Earth\"\x0A\xA0" 52"HTTP/1.1 407 Proxy Authentication Required\x0AProxy-Authenticate: Digest realm=\"Middle-Earth\", nonce=\"aaaaaaaaaa\"\x0A\x0A" 53"HTTP/1.0 301 Moved Permanently\x0ALocation: /a\x0A\x0A" 54"HTTP/1.1 302 Found\x0ALocation: http://lost/\x0A\x0A" 55 56# Proxy authentication headers. Note that fuzzers don't support NTLM or 57# negotiate. 58"WWW-Authenticate:" 59"Proxy-Authenticate:" 60"Basic" 61"Digest" 62"realm" 63"nonce" 64 65"Connection:" 66"Proxy-Connection:" 67"Keep-Alive" 68"Close" 69"Upgrade" 70"\x0AConnection: Keep-Alive" 71"\x0AConnection: Close" 72"\x0AProxy-Connection: Keep-Alive" 73"\x0AProxy-Connection: Close" 74 75"Content-Length:" 76"Transfer-Encoding:" 77"chunked" 78"\x0AContent-Length: 0" 79"\x0AContent-Length: 500" 80"\x0ATransfer-Encoding: chunked\x0A\x0A5\x0A12345\x0A0\x0A\x0A" 81 82"Location:" 83"\x0ALocation: http://foo/" 84"\x0ALocation: http://bar/" 85"\x0ALocation: https://foo/" 86"\x0ALocation: https://bar/" 87 88"Accept-Ranges:" 89"bytes" 90"\x0AAccept-Ranges: bytes" 91 92"Content-Range:" 93 94"Age:" 95"\x0AAge: 0" 96"\x0AAge: 3153600000" 97 98"Cache-Control:" 99"max-age" 100"no-cache" 101"no-store" 102"must-revalidate" 103"\x0ACache-Control: max-age=3153600000" 104"\x0ACache-Control: max-age=0" 105"\x0ACache-Control: no-cache" 106"\x0ACache-Control: no-store" 107"\x0ACache-Control: must-revalidate" 108 109"Content-Disposition:" 110"attachment" 111"filename" 112 113"Content-Encoding:" 114"gzip" 115"deflate" 116"sdch" 117"br" 118"\x0AContent-Encoding: gzip" 119"\x0AContent-Encoding: deflate" 120"\x0AContent-Encoding: sdch" 121"\x0AContent-Encoding: br" 122 123"Date:" 124"Fri, 01 Apr, 2050 14:14:14 GMT" 125"Mon, 28 Mar, 2016 04:04:04 GMT" 126"\x0ADate: Fri, 01 Apr, 2050 14:14:14 GMT" 127"\x0ADate: Mon, 28 Mar, 2016 04:04:04 GMT" 128 129"Last-Modified:" 130"\x0ALast-Modified: Fri, 01 Apr, 2050 14:14:14 GMT" 131"\x0ALast-Modified: Mon, 28 Mar, 2016 04:04:04 GMT" 132 133"Expires:" 134"\x0AExpires: Fri, 01 Apr, 2050 14:14:14 GMT" 135"\x0AExpires: Mon, 28 Mar, 2016 04:04:04 GMT" 136 137"Set-Cookie:" 138"Expires" 139"Max-Age" 140"Domain" 141"Path" 142"Secure" 143"HttpOnly" 144"Priority" 145"Low" 146"Medium" 147"High" 148"SameSite" 149"Strict" 150"Lax" 151"\x0ASet-Cookie: foo=bar" 152"\x0ASet-Cookie: foo2=bar2;HttpOnly;Priority=Low;SameSite=Strict;Path=/" 153"\x0ASet-Cookie: foo=chicken;SameSite=Lax" 154 155"Strict-Transport-Security:" 156"includeSubDomains" 157 158"Vary:" 159"\x0AVary: Cookie" 160"\x0AVary: Age" 161 162"ETag:" 163"\x0AETag: jumboshrimp" 164 165 166# This part has been generated with testing/libfuzzer/dictionary_generator.py 167# using net_http_stream_parser_fuzzer binary and RFC 2616. 168"all" 169"code" 170"maximum" 171"Transfer-Encoding" 172"D.," 173"results" 174"follow" 175"(LZW)." 176"provided." 177"(which" 178"ISDN" 179"\"TE\"" 180"LF>" 181"FORCE" 182"calculate" 183"\"IETF" 184"UNIX," 185"ARPA" 186"\"OPTIONAL\"" 187"environment" 188"ENGINEERING" 189"program" 190"USENET" 191"TEXT" 192"Not" 193"Nov" 194"include" 195"resources" 196"(STD" 197"labels" 198"string" 199"returning" 200"HTTP/1.1;" 201"SP," 202"SP." 203"entries" 204"HTTP/1.1," 205"HTTP/1.1." 206"difference" 207"(URI):" 208"did" 209"[CRLF]" 210"EXPRESS" 211"list" 212"HTTP/1.0\"," 213"(RFC" 214"large" 215"ONLY" 216"Tag" 217"(LWS" 218"(URL)\"," 219"\"A\"..\"Z\">" 220"unexpected" 221"GET)" 222"direct" 223"Failed" 224"second" 225"Version" 226"\"A\"" 227"allowed." 228"GET," 229"tag." 230"implemented" 231"\"HTTP/1.0\"" 232"errors" 233"ISO-8859-4," 234"appear" 235"incompatible" 236"section" 237"CPU" 238"current" 239"waiting" 240"version" 241"above" 242"TTL" 243"new" 244"CRLF)" 245"public" 246"FTP" 247"NNTP." 248"WWW-" 249"never" 250"equals" 251"\"HTTP/1.1" 252"reported" 253"objects" 254"address" 255"active" 256"\"HEAD\"" 257"[" 258"\"POST\"" 259"HTTP." 260"change" 261"MA" 262"\"AS" 263"last-modified" 264"BACK)" 265"NOT" 266"NNTP" 267"named" 268"useful" 269"secure" 270"case." 271"detected." 272"\"HTTP\"" 273"private" 274"CERN/3.0" 275"CTE" 276"(CTE)" 277"Too" 278"CTL" 279"PUT," 280"user-agent" 281"PUT)" 282"POST" 283"select" 284"use" 285"TASK" 286"from" 287"exception." 288"working" 289"to" 290"positive" 291"two" 292"URI;" 293"properties" 294"few" 295"--THIS_STRING_SEPARATES" 296"POST," 297"call" 298"memory" 299"MUST," 300"scope" 301"type" 302"authorization" 303"more" 304"ISO-8859-9," 305"(GMT)," 306"(TE)" 307"name." 308"LF," 309"RFC-850" 310"warn" 311"bytes," 312"Found" 313"cases" 314"MHTML" 315"name:" 316"must" 317"Content" 318"ALL" 319"MHTML," 320"RIGHTS" 321"this" 322"NTP" 323"work" 324"--THIS_STRING_SEPARATES--" 325"Syntax" 326"can" 327"of" 328"following" 329"\"I" 330"closing" 331"root" 332"example" 333"requested," 334"J.," 335"type." 336"reserved" 337"stream" 338"process" 339"attribute" 340"allowed" 341"high" 342"currency" 343"numbers" 344"want" 345"type:" 346"native" 347"LF" 348"class," 349"end" 350"Missing" 351"HTTP-" 352"HTTP," 353"links" 354"1" 355"line." 356"2*N" 357"H." 358"1XX" 359"WARRANTIES," 360"HTTP:" 361"A" 362"badly" 363"HEAD" 364"may" 365"insecure" 366"after" 367"containing" 368"tracking" 369"wrong" 370"[SP" 371"ANSI," 372"date" 373"such" 374"data" 375"parallel" 376"repeat" 377"a" 378"FTP," 379"All" 380"short" 381"Y." 382"UA" 383"(2**N)," 384"element" 385"so" 386"cases." 387"File" 388"(LWS)" 389"\"DEFLATE" 390"order" 391"charset" 392"\"SHOULD" 393"don't" 394"MIC" 395"move" 396"vary" 397"satisfied" 398"CD-ROM," 399"HTTP-WG." 400"LINK," 401"pointer" 402"its" 403"digest" 404"before" 405"HTML" 406"(OK)" 407"Rules" 408"MAY," 409"fix" 410"ISO-3166" 411"actually" 412"407" 413"(GNU" 414"\"HTTP/1.1\"," 415"P.," 416"401" 417"MERCHANTABILITY" 418"DNS." 419"into" 420"\"HTTP" 421"it." 422"it," 423"return" 424"URL" 425"URI" 426"number" 427"Bad" 428"not" 429"However," 430"SSL" 431"name" 432"always" 433"expectation." 434"--" 435"ISO-639" 436"]URI," 437"found" 438"trailer" 439"mean" 440"breakdown" 441"From" 442"UTC" 443"(via" 444"(URI)" 445"UNLINK" 446"expect" 447"exceeded" 448"(MIC)" 449"event" 450"out" 451"is:" 452"E." 453"space" 454"\"MUST/MAY/SHOULD\"" 455"REQUIRED" 456"ALPHA" 457"HTTP/2.4" 458"4DIGIT" 459"increase" 460"L." 461"time." 462"PATCH," 463"supports" 464"2DIGIT" 465"K.," 466"(A," 467"This" 468"free" 469"\"B\"" 470"RFC" 471"base" 472"IMPLIED," 473"byte" 474"received." 475"generate" 476"text/plain" 477"ISO-8859-7," 478"\"HTTP/1.1\"" 479"Partial" 480"could" 481"transition" 482"DISCLAIMS" 483"times" 484"filter" 485"HTML\"," 486"length" 487"HEAD." 488"HEAD," 489"S.," 490"first" 491"origin" 492"\"E\"" 493"already" 494"UPALPHA" 495"3DIGIT" 496"Cache" 497"Please" 498"token." 499"one" 500"CHAR" 501"ISI" 502"another" 503"FITNESS" 504"message" 505"CSS1," 506"open" 507"size" 508"doesn't" 509"\"" 510"script" 511"unknown" 512"top" 513"header)" 514"system" 515"construct" 516"image/gif" 517"2" 518"ignored." 519"listed" 520"Date" 521"LOALPHA" 522"scheme" 523"store" 524"too" 525"M." 526"Success" 527"that" 528"completed" 529"OPTIONAL;" 530"R" 531"pragma" 532"(IANA" 533"WAIS" 534"F.," 535"than" 536"K." 537"target" 538"Content-Type:" 539"require" 540"Only" 541"HTTP/2.13," 542"headers" 543"See" 544"GMT." 545"HTTP/2.0," 546"were" 547"1)" 548"IS\"" 549"1*8ALPHA" 550"are" 551"and" 552"IRC/6.9," 553"false" 554"turned" 555"ANSI" 556"B" 557"(IANA)" 558"tables" 559"have" 560"MIME," 561"need" 562"HTTP/1.1.)" 563"null" 564"any" 565"contents" 566"data)" 567"(LZ77)" 568"(MIME" 569"mechanism" 570"internal" 571"(C)" 572"take" 573"which" 574"With" 575"UCI" 576"HTTP/0.9," 577"content-" 578"200" 579"begin" 580"multiple" 581"TCP/IP" 582"Content-Disposition" 583"206" 584"buffer" 585"object" 586"\"MUST\"," 587"regular" 588"entry" 589"The" 590"]" 591"model" 592"D." 593"US-ASCII" 594"L.," 595"(URL)" 596"If" 597"+" 598"\"MIME" 599"Note:" 600"particularly" 601"WA" 602"text" 603"supported" 604"\"C\"" 605"Unrecognized" 606"CRLF." 607"CRLF," 608"SP" 609"find" 610"MUST" 611"true," 612"cache." 613"upgrade" 614"cache)" 615"implementation" 616"(" 617"[RFC" 618"cache" 619"outside" 620"should" 621"failed" 622"only" 623"URL)." 624"LDAP)" 625"USA" 626"WARRANTIES" 627"(UA)" 628"get" 629"there" 630"HEREIN" 631"\"HTTP\"." 632"cannot" 633"shared" 634"THE" 635"BNF" 636"DIGIT," 637"closure" 638"PUT" 639"reading" 640"resource" 641"A.," 642"W." 643"16" 644"ISO-8859." 645"calling" 646"J." 647"INCLUDING" 648"common" 649"INTERNET" 650"release" 651"ISI/RR-98-463," 652"\"CONNECT\"" 653"where" 654"set" 655"IANA" 656"For" 657"\"F\"" 658"configured" 659"C" 660"this," 661"multipart" 662"close" 663"E.," 664"end." 665"detect" 666"GET" 667"WWW\"," 668"1*DIGIT" 669"BUT" 670"MIT" 671"3" 672"unable" 673"between" 674"probably" 675"boundary" 676"0)" 677"\"SHALL" 678"\"RECOMMENDED\"," 679"available" 680"we" 681"FOR" 682"missing" 683"importance" 684"fetchpriority" 685"screen" 686"connection." 687"PARTICULAR" 688"UNIX" 689"STD" 690"ISO-8859-1" 691"key" 692"(MIME)" 693"P." 694"\"HTTP/1.1\"." 695"HTTP/1.0)," 696"AND" 697"received" 698"WWW" 699"TRACE" 700"\"MAY\"," 701"many" 702"*TEXT" 703"Unsupported" 704"using:" 705"connection" 706"Unicode" 707"*OCTET" 708"exceeds" 709"(URN)" 710"safely" 711"ANY" 712"can't" 713"WARRANTY" 714"ISO-8859-8," 715"Content-Length" 716"consume" 717"simple" 718"header" 719"DNS)" 720"colon" 721"\"GET\"" 722"spans" 723"1*HEX" 724"table" 725"allocated" 726"BCP" 727"application/pdf" 728"LWS:" 729"save" 730"\"REQUIRED\"," 731"Wed," 732"C." 733"C," 734"encryption" 735"create" 736"(MHTML)\"," 737"been" 738"." 739"HTTP/12.3." 740"\"PUT\"" 741"context." 742"LWS," 743"basic" 744"expected" 745"prototype" 746"GMT," 747"empty" 748"define" 749"PNG,\"" 750"\"D\"" 751"with" 752"CA" 753"HEX" 754"N" 755"0*3DIGIT" 756"\"W/\"" 757"CR" 758"\"DELETE\"" 759"unnecessarily" 760"case" 761"exception" 762"(A" 763"(HTTP)" 764"value" 765"INFRINGE" 766"while" 767"\"GZIP" 768"\"SHALL\"," 769"error" 770"\"GMT\"" 771"(LWS)." 772"resident" 773"is" 774"thus" 775"it" 776"encountered" 777"parse" 778"MIME" 779"in" 780"SIGCOMM" 781"You" 782"if" 783"result" 784"binary" 785"different" 786"\"A" 787")" 788"CREATE" 789"expired" 790"1DIGIT" 791"same" 792"OPTIONS" 793"transfer-encoding" 794"BNF," 795"unrecognized" 796"units" 797"UST" 798"status" 799"\"%" 800"used" 801"http" 802"context" 803"I" 804"IP" 805"(O)." 806"allocation" 807"running" 808"*LWS" 809"user" 810"SMTP" 811"\"SHOULD\"," 812"stack" 813"task" 814"CR." 815"failing" 816"IETF" 817"M.," 818"Names" 819"In" 820"position" 821"the" 822"audio" 823"left" 824"US-ASCII." 825"MAY" 826"THAT" 827"being" 828"(OK)." 829"actions" 830"invalid" 831"HTTP/1.0)" 832"CRC." 833"previous" 834"adding" 835"TO" 836"<US-ASCII" 837"source" 838"ISO-8859-2," 839"\"OPTIONS\"" 840"location" 841"HTTP/1.0" 842"HTTP/1.1" 843"size," 844"has" 845"match" 846"build" 847"URI." 848"tests" 849"format" 850"read" 851"H.," 852"T" 853"using" 854"LIMITED" 855"OK" 856"text/html" 857"success" 858"ISO-8859-5," 859"B," 860"signal" 861"MIME:" 862"(HTCPCP/1.0)\"," 863"server" 864"ignore" 865"OF" 866"output" 867"page" 868"S." 869"because" 870"old" 871"sequence" 872"HT." 873"B.," 874"some" 875"back" 876"HT" 877"Last-Modified" 878"growth" 879"DEL" 880"specified" 881"unless" 882"H.F.," 883"HTTP/1.0." 884"(BNF)" 885"happens" 886"discarded" 887"PUT." 888"INDEX." 889"trace" 890"for" 891"avoid" 892"CR," 893"does" 894"CONNECT" 895"assuming" 896"be" 897"run" 898"GET." 899"deleted" 900"equivalent" 901"X3.4-1986" 902"<URL:" 903"O" 904"ISO-8859-1." 905"broken" 906"host" 907"HTTP/1.0," 908"LWS>" 909"INFORMATION" 910"X3.4-1986," 911"by" 912"ALPHA," 913"Location" 914"on" 915"DIGIT" 916"actual" 917"extension" 918"tracing" 919"R.," 920"\"UTF-8," 921"*<TEXT," 922"OR" 923"range" 924"3ALPHA" 925"URI," 926"value." 927"Message" 928"DELETE" 929"content-type" 930"or" 931"UC" 932"No" 933"ISO-" 934"image" 935"ACM" 936"HEX\"" 937"URL," 938"ISO-8859-6," 939"T.," 940"operator" 941"T/TCP" 942"file." 943"GET\"" 944"transfer" 945"support" 946"*" 947"long" 948"class" 949"start" 950"forward" 951"was" 952"function" 953"HT," 954"N." 955"HTTP/1.1\"," 956"OCTET" 957"but" 958"failure" 959"TE:" 960"IMPLIED" 961"CRLF" 962"DNS" 963"Error" 964"\"ZLIB" 965"line" 966"trying" 967"true" 968"GMT" 969"count" 970"default" 971"B." 972"ISO-8859-1," 973"up" 974"ISO-8859-1)" 975"SHOULD" 976"PURPOSE." 977"used." 978"WILL" 979">" 980"called" 981"delete" 982"DELETE," 983"storing" 984"USE" 985"image/jpeg" 986"defined" 987"LWS" 988"URL." 989"unsafe" 990"an" 991"To" 992"as" 993"warning" 994"exist" 995"at" 996"file" 997"NOT\"" 998"NOT," 999"W3C/MIT" 1000"ISO-8859-1:1987." 1001"SHTTP/1.3," 1002"no" 1003"when" 1004"A," 1005"virtual" 1006"A." 1007"details." 1008"application" 1009"valid" 1010"OPTIONAL" 1011"\"TRACE\"" 1012"test" 1013"MD5" 1014"you" 1015"TE" 1016"ISO-8859-3," 1017"requested" 1018"elements" 1019"C)" 1020"symbol" 1021"T." 1022"code)" 1023"variable" 1024"SOCIETY" 1025"\"MUST" 1026"TCP" 1027"ISO-10646\"," 1028"NOT\"," 1029"R." 1030"audio/basic" 1031"IANA." 1032"\"WAIS" 1033"persistent" 1034"Its" 1035"As" 1036"time" 1037"failures" 1038"\"ISO-8859-1\"" 1039"once" 1040 1041