/*
hzzp/http.h
04.27.2009
Hzzp
Krakow Labs Development -> Hzzp
Hypertext Transfer Protocol Fuzzer
rush@KL (Jeremy Brown)
HTTP Definitions -> hzzp.tar.gz
Associated Files & Information:
http://www.krakowlabs.com/dev/fuz/hzzp/hzzp
http://www.krakowlabs.com/dev/fuz/hzzp/hzzp.c.txt
http://www.krakowlabs.com/dev/fuz/hzzp/fuzz.c.txt
http://www.krakowlabs.com/dev/fuz/hzzp/core.h.txt
http://www.krakowlabs.com/dev/fuz/hzzp/fuzz.h.txt
http://www.krakowlabs.com/dev/fuz/hzzp/http.h.txt
http://www.krakowlabs.com/dev/fuz/hzzp/Makefile.txt
http://www.krakowlabs.com/dev/fuz/hzzp/hzzp_doc.txt
http://www.krakowlabs.com/dev/fuz/hzzp/hzzp.tar.gz
http://www.krakowlabs.com/dev/fuz/hzzp/hzzp.jpeg
http://www.krakowlabs.com/dev/fuz/hzzp/hzzp.avi
hzzp/http.h
*/
#define HTTP "HTTP/1.1"
char content[] = "
Krakow Labs Development - HzzpHzzp :)
";
#define HTTPRESPTL 33
struct
{
int code;
char *desc;
}
httpresp[] =
{
// Informational 1xx
{100, "Continue"},
{101, "Switching Protocols"},
// Successful 2xx
{200, "OK"},
{201, "Created"},
{202, "Accepted"},
{203, "Non-Authoritative Information"},
{204, "No Content"},
{205, "Reset Content"},
{206, "Partial Content"},
// Redirection 3xx
{300, "Multiple Choices"},
{301, "Moved Permanently"},
{302, "Found"},
{303, "See Other"},
{304, "Not Modified"},
{305, "Use Proxy"},
{307, "Temporary Redirect"},
// Client Error 4xx
{400, "Bad Request"},
{401, "Unauthorized"},
{403, "Forbidden"},
{404, "Not Found"},
{405, "Method Not Allowed"},
{406, "Not Acceptable"},
{407, "Proxy Authentication Required"},
{408, "Request Timeout"},
{409, "Conflict"},
{410, "Gone"},
{411, "Length Required"},
{412, "Precondition Failed"},
{413, "Request Entity Too Large"},
{414, "Request-URI Too Long"},
{415, "Unsupported Media Type"},
{416, "Request Range Not Satisfiable"},
{417, "Expectation Failed"},
// Server Error 5xx
{500, "Internal Server Error"},
{501, "Not Implemented"},
{502, "Bad Gateway"},
{503, "Service Unavailable"},
{504, "Gateway Timeout"},
{505, "HTTP Version Not Supported"},
};
#define RESPHDRTL 31
struct
{
char *header;
}
response[] = // HTTP/1.1 RFC 2616 & draft-ietf-http-options-02.txt
{
{"Accept-Ranges"},
{"Age"},
{"Allow"}, // entity
{"Cache-Control"}, // general
{"Compliance"}, // proxy fuzzing via OPTIONS
{"Connection"}, // general
{"Content-Encoding"}, // entity
{"Content-Language"}, // entity
{"Content-Length"}, // entity
{"Content-Location"}, // entity
{"Content-MD5"}, // entity
{"Content-Range"}, // entity
{"Content-Type"}, // entity
{"Date"}, // general
{"ETag"},
{"Expires"}, // entity
{"If-Range"}, // entity
{"Last-Modified"}, // entity
{"Location"},
{"Non-Compliance"}, // proxy fuzzing via OPTIONS
{"Pragma"}, // general
{"Proxy-Authenticate"},
{"Retry-After"},
{"Server"},
{"Trailer"}, // general
{"Transfer-Encoding"}, // general
{"Upgrade"}, // general
{"Vary"},
{"Via"}, // general
{"Warning"}, // general
{"WWW-Authenticate"},
};
#define REQHDRTL 40
struct
{
char *header;
}
request[] = // HTTP/1.1 RFC 2616 & draft-ietf-http-options-02.txt
{
{"Accept"},
{"Accept-Charset"},
{"Accept-Encoding"},
{"Accept-Language"},
{"Allow"}, // entity
{"Authorization"},
{"Cache-Control"}, // general
{"Compliance"}, // proxy fuzzing via OPTIONS
{"Connection"}, // general
{"Content-Encoding"}, // entity
{"Content-Language"}, // entity
{"Content-Length"}, // entity
{"Content-Location"}, // entity
{"Content-MD5"}, // entity
{"Content-Range"}, // entity
{"Content-Type"}, // entity
{"Date"}, // general
{"Expect"},
{"Expires"}, // entity
{"From"},
{"Host"},
{"If-Match"},
{"If-Modified-Since"},
{"If-None-Match"},
{"If-Range"}, // entity
{"If-Unmodified-Since"},
{"Last-Modified"}, // entity
{"Max-Forwards"},
{"Non-Compliance"}, // proxy fuzzing via OPTIONS
{"Pragma"}, // general
{"Proxy-Authorization"},
{"Range"},
{"Referer"},
{"TE"},
{"Trailer"}, // general
{"Transfer-Encoding"}, // general
{"Upgrade"}, // general
{"User-Agent"},
{"Via"}, // general
{"Warning"}, // general
};
#define METHODTL 8
struct
{
char *method;
}
http[] =
{
{"OPTIONS"},
{"GET"},
{"HEAD"},
{"POST"},
{"PUT"},
{"DELETE"},
{"TRACE"},
{"CONNECT"},
};
#define DCMAX 7
struct
{
char *dir;
char *def;
char *edef;
}
digcli[] = // WWW-Authenticate / rfc2617 (Hzzp Server fuzzes Client)
{
{"realm", "\"Hzzp\"", "\\\"Hzzp\\\""},
{"domain", NULL, NULL}, // use path
{"nonce", "\"w00tw00tw00tw00tw00tw00tw00tw00t\"", "\\\"w00tw00tw00tw00tw00tw00tw00tw00t\\\""},
{"opaque", "\"w00tw00tw00tw00tw00tw00tw00tw00t\"", "\\\"w00tw00tw00tw00tw00tw00tw00tw00t\\\""},
{"stale", "\"false\"", "\\\"false\\\""},
{"algorithm", "\"MD5\"", "\\\"MD5\\\""},
{"qop", "\"auth\"", "\\\"auth\\\""},
};
#define DSMAX 10
struct
{
char *dir;
char *def;
char *edef;
}
digserv[] = // Authorization / rfc2617 (Hzzp Client fuzzes Server)
{
{"username", "\"w00t\"", "\\\"w00t\\\""},
{"realm", "\"Hzzp\"", "\\\"Hzzp\\\""},
{"nonce", "\"w00tw00tw00tw00tw00tw00tw00tw00t\"", "\\\"w00tw00tw00tw00tw00tw00tw00tw00t\\\""},
{"uri", NULL, NULL}, // use path
{"response", "\"wt00wt00wt00wt00wt00wt00wt00wt00\"", "\\\"wt00wt00wt00wt00wt00wt00wt00wt00\\\""},
{"algorithm", "\"MD5\"", "\\\"MD5\\\""},
{"cnonce", "\"t00wt00wt00wt00wt00wt00wt00wt00w\"", "\\\"t00wt00wt00wt00wt00wt00wt00wt00w\\\""},
{"opaque", "\"w00tw00tw00tw00tw00tw00tw00tw00t\"", "\\\"w00tw00tw00tw00tw00tw00tw00tw00t\\\""},
{"qop", "\"auth\"", "\\\"auth\\\""},
{"nc", "\"12344321\"", "\\\"12344321\\\""},
};