libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

fuzz_request.dict (4768B)


      1 # libFuzzer dictionary for fuzz_request (GNU libmicrohttpd).
      2 #
      3 # Format: libFuzzer / AFL "name=\"value\"" tokens.  Only \\, \" and \xAB are
      4 # valid escapes, so CR/LF are written as \x0d / \x0a.
      5 #
      6 # fuzz_request consumes a header of 4 configuration bytes followed by
      7 # length-prefixed send segments (see src/fuzz/README section 2.2), so a
      8 # dictionary token is useful mainly inside the segment payload - i.e. these
      9 # are the HTTP tokens that the request parser reacts to.
     10 
     11 # --- line terminators and separators ------------------------------------
     12 crlf="\x0d\x0a"
     13 crlfcrlf="\x0d\x0a\x0d\x0a"
     14 bare_cr="\x0d"
     15 bare_lf="\x0a"
     16 fold="\x0d\x0a\x20"
     17 fold_tab="\x0d\x0a\x09"
     18 colon_sp=": "
     19 colon=":"
     20 semi=";"
     21 comma=","
     22 equals="="
     23 quote="\""
     24 
     25 # --- request line -------------------------------------------------------
     26 m_get="GET "
     27 m_head="HEAD "
     28 m_post="POST "
     29 m_put="PUT "
     30 m_delete="DELETE "
     31 m_options="OPTIONS "
     32 m_connect="CONNECT "
     33 m_trace="TRACE "
     34 m_patch="PATCH "
     35 v_11=" HTTP/1.1"
     36 v_10=" HTTP/1.0"
     37 v_09=" HTTP/0.9"
     38 v_20=" HTTP/2.0"
     39 v_bad=" HTTP/1."
     40 tgt_root="/"
     41 tgt_star="*"
     42 tgt_abs="http://example.org/a"
     43 tgt_query="/a?b"
     44 tgt_query_noeq="/a?b&c"
     45 tgt_dotdot="/../"
     46 tgt_pct="%41"
     47 tgt_pct_bad="%zz"
     48 tgt_pct_trunc="%4"
     49 tgt_nul="%00"
     50 
     51 # --- framing headers ----------------------------------------------------
     52 h_host="Host: "
     53 h_cl="Content-Length: "
     54 h_te="Transfer-Encoding: "
     55 h_te_chunked="Transfer-Encoding: chunked\x0d\x0a"
     56 h_te_ident="Transfer-Encoding: identity\x0d\x0a"
     57 h_te_double="Transfer-Encoding: chunked, chunked\x0d\x0a"
     58 h_conn="Connection: "
     59 h_conn_close="Connection: close\x0d\x0a"
     60 h_conn_ka="Connection: keep-alive\x0d\x0a"
     61 h_conn_upgrade="Connection: Upgrade\x0d\x0a"
     62 h_upgrade="Upgrade: "
     63 h_expect="Expect: 100-continue\x0d\x0a"
     64 h_ct="Content-Type: "
     65 h_cookie="Cookie: "
     66 h_trailer="Trailer: "
     67 h_te_hdr="TE: "
     68 v_chunked="chunked"
     69 v_identity="identity"
     70 v_gzip="gzip"
     71 v_100="100-continue"
     72 cl_zero="Content-Length: 0\x0d\x0a"
     73 cl_neg="Content-Length: -1\x0d\x0a"
     74 cl_huge="Content-Length: 18446744073709551615\x0d\x0a"
     75 cl_plus="Content-Length: +5\x0d\x0a"
     76 cl_hex="Content-Length: 0x5\x0d\x0a"
     77 cl_dup="Content-Length: 5\x0d\x0aContent-Length: 6\x0d\x0a"
     78 
     79 # --- chunked transfer coding & chunk extensions -------------------------
     80 chunk_last="0\x0d\x0a\x0d\x0a"
     81 chunk_last_nl="0\x0d\x0a"
     82 chunk_5="5\x0d\x0a"
     83 chunk_hex="ff\x0d\x0a"
     84 chunk_big="7fffffffffffffff\x0d\x0a"
     85 chunk_ext=";ext"
     86 chunk_ext_val=";ext=val"
     87 chunk_ext_quoted=";ext=\"quoted\""
     88 chunk_ext_multi=";a=1;b=2;c"
     89 chunk_ext_unterminated=";ext=\"qqqqqqqqqqqqqqqq"
     90 chunk_ext_bs=";ext=\"a\\\"b\""
     91 chunk_ext_ws="; ext = val "
     92 trailer_line="X-Trailer: v\x0d\x0a"
     93 
     94 # --- digest / basic authentication --------------------------------------
     95 h_authz="Authorization: "
     96 a_digest="Authorization: Digest "
     97 a_basic="Authorization: Basic "
     98 p_username="username=\""
     99 p_userhash="userhash="
    100 p_userhash_t="userhash=true"
    101 p_userhash_f="userhash=false"
    102 p_username_star="username*=UTF-8''a"
    103 p_realm="realm=\""
    104 p_realm_empty="realm=\"\""
    105 p_nonce="nonce=\""
    106 p_nonce_ph="%%NONCE%%"
    107 p_nonce_zero="nonce=\"0000\""
    108 p_uri="uri=\""
    109 p_response="response=\""
    110 p_cnonce="cnonce=\""
    111 p_nc="nc=00000001"
    112 p_opaque="opaque=\""
    113 p_qop="qop="
    114 p_algorithm="algorithm="
    115 a_md5="MD5"
    116 a_md5_sess="MD5-sess"
    117 a_sha256="SHA-256"
    118 a_sha256_sess="SHA-256-sess"
    119 a_sha512_256="SHA-512-256"
    120 a_sha512_256_sess="SHA-512-256-sess"
    121 a_unknown="SHA-1"
    122 q_auth="auth"
    123 q_auth_int="auth-int"
    124 q_auth_both="auth,auth-int"
    125 resp_hex="0123456789abcdef"
    126 resp_long="00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    127 basic_b64="dXNlcjpwYXNz"
    128 scheme_bearer="Bearer "
    129 scheme_negotiate="Negotiate "
    130 
    131 # --- post bodies (the handler may run MHD_post_process) -----------------
    132 ct_urlenc="Content-Type: application/x-www-form-urlencoded\x0d\x0a"
    133 ct_multipart="Content-Type: multipart/form-data; boundary=b\x0d\x0a"
    134 ct_mixed="Content-Type: multipart/mixed; boundary=b\x0d\x0a"
    135 mp_dashes="--"
    136 mp_boundary="--b\x0d\x0a"
    137 mp_end="--b--\x0d\x0a"
    138 cd_form="Content-Disposition: form-data; name=\"a\"\x0d\x0a"
    139 cd_file="Content-Disposition: form-data; name=\"a\"; filename=\"f\"\x0d\x0a"
    140 kv="a=b"
    141 kv_amp="&"
    142 kv_plus="+"
    143 kv_noeq="a"
    144 
    145 # HTTP "Upgrade" -- the extended configuration (byte 7 bit 0x04) only
    146 # answers 101 for a request that really asks to upgrade, so without
    147 # these tokens MHD_create_response_for_upgrade(), the upgrade handler
    148 # and MHD_upgrade_action() are statistically unreachable.
    149 upgrade_hdr="Upgrade: "
    150 upgrade_conn="Connection: Upgrade\x0d\x0a"
    151 upgrade_conn_lc="connection: upgrade\x0d\x0a"
    152 upgrade_websocket="Upgrade: websocket\x0d\x0a"
    153 upgrade_h2c="Upgrade: h2c\x0d\x0a"
    154 upgrade_proto="fuzz-protocol"
    155 upgrade_both="Connection: keep-alive, Upgrade\x0d\x0a"
    156 conn_close="Connection: close\x0d\x0a"