# Copyright 2016 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Fuzzer dictionary targetting HTTP/1.x responses. # Entries that are generally useful in headers ":" "\x0A" "\x0D" "0" "50" "500" # Horizontal whitespace. Matters mostly in status line. " " "\x09" # Header continuation "\x0D\x0A\x09" # Used in a lot of individual headers ";" "=" "," "\"" "-" # Status line components "HTTP" "/1.1" "/1.0" # More interesting status codes. Leading space so can be inserted into # other status lines. " 100" " 200" " 206" " 301" " 302" " 303" " 304" " 307" " 308" " 401" " 403" " 404" " 500" " 501" " 403" # Full status lines (Some with relevant following headers) "HTTP/1.1 200 OK\x0A\x0A" "HTTP/1.1 100 Continue\x0A\x0A" "HTTP/1.1 401 Unauthorized\x0AWWW-Authenticate: Basic realm=\"Middle-Earth\"\x0A\xA0" "HTTP/1.1 407 Proxy Authentication Required\x0AProxy-Authenticate: Digest realm=\"Middle-Earth\", nonce=\"aaaaaaaaaa\"\x0A\x0A" "HTTP/1.0 301 Moved Permanently\x0ALocation: /a\x0A\x0A" "HTTP/1.1 302 Found\x0ALocation: http://lost/\x0A\x0A" # Proxy authentication headers. Note that fuzzers don't support NTLM or # negotiate. "WWW-Authenticate:" "Proxy-Authenticate:" "Basic" "Digest" "realm" "nonce" "Connection:" "Proxy-Connection:" "Keep-Alive" "Close" "Upgrade" "\x0AConnection: Keep-Alive" "\x0AConnection: Close" "\x0AProxy-Connection: Keep-Alive" "\x0AProxy-Connection: Close" "Content-Length:" "Transfer-Encoding:" "chunked" "\x0AContent-Length: 0" "\x0AContent-Length: 500" "\x0ATransfer-Encoding: chunked\x0A\x0A5\x0A12345\x0A0\x0A\x0A" "Location:" "\x0ALocation: http://foo/" "\x0ALocation: http://bar/" "\x0ALocation: https://foo/" "\x0ALocation: https://bar/" "Accept-Ranges:" "bytes" "\x0AAccept-Ranges: bytes" "Content-Range:" "Age:" "\x0AAge: 0" "\x0AAge: 3153600000" "Cache-Control:" "max-age" "no-cache" "no-store" "must-revalidate" "\x0ACache-Control: max-age=3153600000" "\x0ACache-Control: max-age=0" "\x0ACache-Control: no-cache" "\x0ACache-Control: no-store" "\x0ACache-Control: must-revalidate" "Content-Disposition:" "attachment" "filename" "Content-Encoding:" "gzip" "deflate" "sdch" "br" "\x0AContent-Encoding: gzip" "\x0AContent-Encoding: deflate" "\x0AContent-Encoding: sdch" "\x0AContent-Encoding: br" "Date:" "Fri, 01 Apr, 2050 14:14:14 GMT" "Mon, 28 Mar, 2016 04:04:04 GMT" "\x0ADate: Fri, 01 Apr, 2050 14:14:14 GMT" "\x0ADate: Mon, 28 Mar, 2016 04:04:04 GMT" "Last-Modified:" "\x0ALast-Modified: Fri, 01 Apr, 2050 14:14:14 GMT" "\x0ALast-Modified: Mon, 28 Mar, 2016 04:04:04 GMT" "Expires:" "\x0AExpires: Fri, 01 Apr, 2050 14:14:14 GMT" "\x0AExpires: Mon, 28 Mar, 2016 04:04:04 GMT" "Set-Cookie:" "Expires" "Max-Age" "Domain" "Path" "Secure" "HttpOnly" "Priority" "Low" "Medium" "High" "SameSite" "Strict" "Lax" "\x0ASet-Cookie: foo=bar" "\x0ASet-Cookie: foo2=bar2;HttpOnly;Priority=Low;SameSite=Strict;Path=/" "\x0ASet-Cookie: foo=chicken;SameSite=Lax" "Strict-Transport-Security:" "includeSubDomains" "Vary:" "\x0AVary: Cookie" "\x0AVary: Age" "ETag:" "\x0AETag: jumboshrimp" # This part has been generated with testing/libfuzzer/dictionary_generator.py # using net_url_request_fuzzer binary and RFC 3986. "all" "consider" "Transfer-Encoding" "D.," "prefix" "concept" "CR" "follow" "RFC-850" "(which" "ISDN" "\"TE\"" "increase" "number" "calculate" "\"IETF" "fixed-length" "\"OPTIONAL\"" "to" "Host" "program" "Western" "under" "Changing" "(STD" "digit" "returned" "returning" "very" "SP," "SP." "Validation" "(URI):" "Incomplete" "Origin" "--" "cause" "EXPRESS" "list" "large" "expired." "small" "(URL)\"," "range." "past" "second" "Version" "allowed." "tag." "implemented" "canonical" "even" "established" "errors" "incompatible" "section" "contributed" "while" "decoding" "version" "above" "TTL" "new" "increasing" "method" "WWW-" "never" "equals" "here" "ranges" "reported" "compressed" "active" "path" "strong" "Index" "changed" "DISCLAIMS" "prior" "amount" "published" "NOT" "error," "options" "via" "followed" "secure" "family" "\"HTTP\"" "Unspecified" "replace" "CERN/3.0" "CTE" "(CTE)" "TO" "Too" "CTL" "PUT," "total" "PUT)" "Security" "select" "languages" "TASK" "exception." "would" "contains" "negative" "User-Agent" "call" "MUST," "type" "until" "authorization" "more" "ISO-8859-9," "initiated" "composite" "LF," "line" "it" "warn" "American" "varying" "known" "Found" "MHTML" "must" "parse" "none" "1999" "work" "paragraph" "sent" "evolved" "root" "example" "requested," "history" "type." "(HTCPCP/1.0)\"," "accept" "currency" "minimum" "Compromise" "numbers" "want" "type:" "times" "simple" "LF" "information" "needs" "end" "goal" "verify" "far" "Pragma" "reject" "A" "badly" "HEAD" "description" "number." "insecure" "after" "variant" "confirmed" "reflect" "wrong" "law" "response" "types" "a" "All" "short" "attempt" "third" "menu." ")" "algorithms" "cases." "File" "\"DEFLATE" "order" "\"SHOULD" "help" "don't" "over" "vary" "satisfied" "CD-ROM," "held" "HTTP-WG." "through" "of," "existence" "its" "digest" "before" "difference" "20" "termed" "MAY," "fix" "ISO-3166" "actually" "407" "(GNU" "absence" "\"HTTP/1.1\"," "Sun," "MERCHANTABILITY" "408" "it." "them" "good" "return" "HTTP/2.4" "combination" "URL" "URI" "Due" "Bad" "they" "Control" "always" "decimal" "refresh" "expectation." "MAY" "token" "]URI," "[CRLF]" "found" "Content-Type" "ports" "trailer" "referred" "status" "weight" "series" "reduce" "(URI)" "expect" "max-age=0" "combining" "operation" "beyond" "Type" "event" "is:" "by" "E." "network" "Server:" "open" "\"MUST/MAY/SHOULD\"" "since" "request/response" "content" "message." "PATCH," "7" "2DIGIT" "available." "K.," "linear" "Extension" "University" "enclosing" "free" "reason" "base" "proxy" "POST" "beginning" "generate" "text/plain" "definition" "perform" "Partial" "created" "UPALPHA" "script" "\"GMT\"" "filter" "SSL" "expecting" "If-Modified-Since" "HEAD." "HEAD," "assign" "user" "major" "already" "Copyright" "encoding" "Cache" "Please" "token." "TCP" "content-range" "least" "another" "FITNESS" "invalid." "\"" "service" "image/gif" "top" "header)" "construct" "2" "ignored." "listed" "passed" "Delta" "LOALPHA" "scheme" "store" "too" "M." "immediate" "direct" "tokens" "part" "WAIS" "F.," "to:" "distance" "Code" "target" "Content-Type:" "zero," "likely" "WWW-Authenticate" "matter" "idle" "determined" "stale" "ISO-8859-8," "payload" "ANSI" "B" "seen" "HTTP/1.1.)" "null" "OPTIONS" "contents" "paths" "data." "data)" "zero" "depending" "Acceptable" "responsible" "(MIME" "also" "internal" "(C)" "build" "finding" "With" "UCI" "Names" "content-" "added" "headers." "Content-Disposition" "object" "\"MUST\"," "most" "regular" "ensure" "letter" "2*N" "services" "The" "Responses" "payload." "clear" "sometimes" "flow" "Client" "ISO-8859-3," "Its" "incomplete" "\"MIME" "Note:" "particularly" "labels" "\"C\"" "session" "Unrecognized" "find" "]" "implementation" "[RFC" "ranges." "BNF," "user-agent" "failed" "URL)." "LDAP)" "8" "US-ASCII" "do" "hit" "stop" "\"HTTP\"." "While" "Set" "rest" "report" "during" "body," "PUT" "(via" "public" "twice" "bad" "common" "release" "require" "set" "mandatory" "reference" "\"F\"" "MIME:" "depends" "individual" "result" "J." "close" "subject" "said" "headers" "WWW\"," "See" "BUT" "unable" "various" "probably" "0)" "0." "0," "discovery" "available" "we" "reasons." "terms" "missing" "Server" "(MIME)" "OPTIONAL;" "AND" "both" "protect" "Unexpected" "last" "reverse" "\"MAY\"," "*TEXT" "against" "connection" "became" "context" "exceeds" "however," "mean" "reached." "finds" "experimental" "load" "Redirect" "Content-Length" "alternate" "consume" "point" "reasons" "had" "header" "DNS)" "DNS." "B.," "(O)." "1.0" "throughout" "BCP" "[" "application/pdf" "\"REQUIRED\"," "C." "basis" "\"POST\"" "create" "acceptance" "(MHTML)\"," "Reason" "been" "." "much" "\"PUT\"" "basic" "expected" "text/html;" "empty" "HTTP/1.0" "concerning" "Flow" "N" "size," "\"W/\"" "reason." "MA" "\"DELETE\"" "unnecessarily" "exception" "handling" "Group," "particular," "technical" "near" "\"GZIP" "error" "(IANA)" "\"TRACE\"" "Accept-Language" "played" "is" "herein" "encountered" "E-mail" "MIME" "in" "accepted." "if" "containing" "\"A" "lengths" "make" "format" "\"I" "unrecognized" "widely" "9" "several" "higher" "\"%" "used" "temporary" "alert" "action" "purpose" "characters" "stack" "recent" "lower" "task" "database" "NNTP" "failing" "person" "client" "length." "entry" "the" "left" "protocol" "US-ASCII." "THAT" "bandwidth" "inactive" "(TE)" "Internet" "HTTP/1.0)" "HTTP/1.0." "previous" "tables" "unique" "case." "character" "Trailers" "source" "ISO-8859-2," "subjects" "WILL" "location" "0*3DIGIT" "input" "save" "remaining" "URI." "URI," "fact," "transfer-encoding" "possible" "required." "Assigned" "Length" "URI;" "integer" "bit" "Sat," "desire" "OK" "success" "ISO-8859-5," "OF" "signal" "INFRINGE" "H.F.," "specific" "X3.4-1986" "security" "OR" "S." "right" "old" "often" "deal" "people" "successfully" "some" "back" "HT" "Last-Modified" "headers)" "DEL" "examples" "unless" "(BNF)" "TCP/IP" "ignore" "PUT." "INDEX." "headers," "for" "track" "CONNECT" "be" "replaced" "run" "deleted" "example," "" "\"HEAD\"" "zone" "UNIX," "ARPA" "send" "Standard" "environment" "USENET" "Not" "Nov" "include" "resources" "string" "advantage" "outside" "Explicit" "ALL" "HTTP/1.1;" "entries" "HTTP/1.1," "HTTP/1.1." "entire" "Protocol" "level" "did" "button" "HTTP/1.0\"," "(RFC" "try" "ONLY" "Tag" "(LWS" "\"SHOULD\"," "prevent" "\"A\"..\"Z\">" "unexpected" "INFORMATION" "Failed" "\"A\"" "Satisfiable" "port" "append" "\"HTTP/1.0\"" "formats" "ISO-8859-4," "appear" "rate" "opaque" "current" "waiting" "HTML" "shared" "CRLF)" "302" "body" "FTP" "NNTP." "\"SHALL" "following" "objects" "address" "1*HEX" "Distribution" "entry." "HTTP." "change" "cache)" "incoming" "\"AS" "receive" "larger" "host" "descended" "here." "+" "{" "makes" "composed" "named" "useful" "addresses" "extra" "detected." "When" "private" "session." "gateway" "Status" "use" "from" "stream" "working" "value." "next" "few" "--THIS_STRING_SEPARATES" "POST," "memory" "scope" "means" "HEX\"" "(GMT)," "bytes:" "Default" "Require" "Required" "DIGIT" "validity" "bytes," "Connection" "Time" "cases" "name:" "behalf" "MD5" "lowercase" "RIGHTS" "this" "NTP" "--THIS_STRING_SEPARATES--" "Syntax" "values" "can" "believed" "making" "closing" "modifier" "J.," "control" "reserved" "links" "process" "attribute" "high" "tag" "allowed" "Policy" "input," "native" "class," "Missing" "HTTP-" "HTTP," "charset" "delay" "located" "R.," "instead" "1XX" "WARRANTIES," "parameter" "FORCE" "STD" "may" "Request" "British" "HEREIN" "Roman" "client's" "[SP" "ANSI," "date" "such" "data" "HTTP/1.1\"," "Y." "UA" "revalidate" "element" "so" "allow" "(LWS)" "holds" "move" "years" "including" "LINK," "still" "pointer" "non-zero" "1" "negotiated" "Multiple" "line." "using:" "forms" "Referer" "P.," "PNG,\"" "cache-control" "policy" "mail" "\"HTTP" "SIGCOMM" "greater" "matches" "lesser" "not" "parsing" "matched" "term" "name" "establishment" "A.," "ISO-639" "entirely" "identifier" "elements" "|" "successful" "domain" "From" "Network" "related" "UNLINK" "trying" "(LZ77)" "year" "(MIC)" "Parameter" "special" "out" "ultimately" "space" "REQUIRED" "416" "WARRANTY" "4DIGIT" "time," "L." "time." "supports" "(A," "state" "This" "derived" "INTERNET" "possibility" "\"B\"" "RFC" "IMPLIED," "byte" "received." "log" "ISO-8859-7," "\"HTTP/1.1\"" "language" "could" "transition" "programming" "tries" "keep" "length" "place" "S.," "first" "origin" "there" "sent." "3DIGIT" "K." "one" "CHAR" "list," "ISI" "version:" "message" "CSS1," "quality" "size" "doesn't" "given" "For" "enabled." "unknown" "system" "unspecified" "parallel" "priority" "their" "attack" "intermediate" "HTTP:" "Date" "x-gzip" "Data" "Response" "HTTP/2.0," "gives" "Success" "that" "completed" "exactly" "R" "pragma" "(IANA" "copy" "than" "History" "wide" "12" "14" "16" "was" "Universal" "protected" "servers." "were" "1)" "IS\"" "SHTTP/1.3," "1*8ALPHA" "Location" "and" "Information" "false" "1.1" "1.2" "(2**N)," "turned" "Tue," "Other" "SP" "(LWS)." "have" "MIME," "need" "Mail" "any" "Requested" "conversion" "HTTP/2.13," "database." "After" "able" "mechanism" "OPTIONAL" "take" "which" "HTTP/0.9," "201" "200" "begin" "multiple" "Name" "trace" "206" "buffer" "who" "connected" "plus" "HTTP/12.3." "\"OPTIONS\"" "segment" "class" "D." "considered" "GET" "Some" "TE:" "L.," "(URL)" "}" "fact" "Web" "WA" "violation" "text" "supported" "synchronous" "Authentication" "inconsistent" "CRLF." "CRLF," "label" "Public" "MUST" "true," "cache." "upgrade" "based" "Posting" "(" "cache" "3" "should" "only" "Proxy-Authorization" "Byte" "Strong" "local" "MIC" "WARRANTIES" "(UA)" "" "enable" "401" "content-disposition" "received" "unsafe" "SMTP" "ANY" "World" "chain." "case" "disconnected" "(HTTP)" "these" "Number" "value" "will" "Fri," "\"SHALL\"," "Any" "Additional" "resident" "NOT\"" "thus" "it," "according" "Content" "Content-Range" "properties" "Unsupported" "malformed" "PARTICULAR" "You" "binary" "different" "perhaps" "generic" "pay" "set." "00:00:00" "1DIGIT" "same" "parts" "largest" "units" "document" "Types" "residing" "breakdown" "UTC" "extended" "http" "I" "IP" "effect" "allocation" "running" "*LWS" "infinite" "frequently" "tracking" "undefined" "CR." "well" "It" "If-Range" "patterns" "without" "M.," "CR," "In" "position" "model" "audio" "If" "negotiation" "Also," "Service" "less" "being" "generally" "obtain" "actions" "Access" "stored" "CRC." "However," "application" "capabilities" "appeared" "add" "Thu," "4" "Although" "HTTP/1.1" "usage" "(A" "match" "details" "tests" "aspects" "read" "Many" "H.," "early" "action," "T" "address." "using" "password" "loss" "like" "text/html" "Content-Encoding" "B," "B." "\"HTTP/1.1" "server" "discarded" "either" "BACK)" "output" "Operation" "page" "\"GET\"" "exceed" "because" "sequence" "uppercase" "Since" "growth" "Authority" "respect" "International" "recognition" "happens" "provided" "trust" "lead" "MIT" "highest" "expectation," "does" "Authorization" "assuming" "refer" "GET)" "GET," "GET." "equivalent" "Official" "C)" "ISO-8859-1." "broken" "Range" "HTTP/1.0," "LWS>" "X3.4-1986," "Microsoft" "on" "about" "actual" "extension" "of" "C," "accepted" "FTP," "compatible" "addition" "unidirectional" "Message" "DELETE" "content-type" "or" "UC" "final" "No" "ISO-" "image" "Two" "Internal" "times," "ISO-8859-6," "determine" "T.," "operator" "T/TCP" "additional" "area" "GET\"" "transfer" "*" "decode" "start" "describes" "low" "strict" "context." "function" "complete" "N." "enough" "OCTET" "but" "IMPLIED" "Error" "Dec" "with" "Trailer" "count" "clients." "made" "compute" "default" "GMT," "ISO-8859-1," "Moved" "this," "ISO-8859-1)" "SHOULD" "PURPOSE." "limit" "GMT." "site" "problem" "define" "USE" "image/jpeg" "\"E\"" "URL," "describe" "general" "as" "UST" "at" "file" "lifetime" "are" "Accept-Encoding" "incorrect" "variety" "\"D\"" "virtual" "details." "field" "other" "5" "Purpose" "you" "CA" "requested" "repeat" "HEX" "symbol" "Cache-Control" "Remove" "March" "important" "H." "code)" "included" "SOCIETY" "\"MUST" "ISO-10646\"," "\"ZLIB" "audio/basic" "\"ISO-8859-1\"" "\"WAIS" "persistent" "having" "directory" "ALPHA" "validation" "original"