Testing HTTP methods
A good place to start with testing web servers is at the beginning of the HTTP
request, by enumerating the HTTP
methods. The HTTP
method is sent by the client and indicates to the web server the type of action that the client is expecting.
As specified in RFC 7231, all web servers must support GET
and HEAD
methods, and all other methods are optional. As there are a lot of common methods beyond the initial GET
and HEAD
methods, this makes it a good place to focus testing on, as each server will be written to handle requests and send responses in a different way.
An interesting HTTP
method to look out for is TRACE
, as its availability leads to
Cross Site Tracing (XST). TRACE is a loop-back test and basically echoes the request it receives back to the user. This means it can be used for Cross-site scripting attacks (called in this case Cross Site Tracing). To do this, the attacker gets a victim to send a TRACE
request, with a JavaScript payload in the body, which would then...