I'm trying to detect what web server a particular website uses. For instance whether it's nginX, Apache, Tomcat and so on.
I usually use Live HTTP Headers Firefox add-on. The problem is that sites sometimes hide their back-end. Isn't there a way to detect web servers when they're not present in HEADER?
EDIT 1:
A sample output from a website that didn't match to any of the @Question Overflow's answer:
HTTP/1.1 200 OK Date: Mon, 29 Sep 2014 10:43:29 GMT Content-Type: text/html Transfer-Encoding: chunked X-Powered-By: VideoHosting Framework/1.0.1 Cache-Control: no-cache, must-revalidate, no-cache="Set-Cookie", private Content-Encoding: gzip Vary: Accept-Encoding Server: Videohost/1.0.1 I even tried to use httprint on linux but it gives ICMP request timeout on every website I tested.
EDIT 2:
The above HEADER is very similar to a website that I'm sure it uses nginX. If we remove those parts that are not present (Connection, Pragma and so on) in the above HEADER, it gets so similar to nginX. I suppose Server is at the end of the response because they have customized it themeselves. And because of that nginX appended it to the end of the Response packet.
HTTP/1.1 200 OK Server: nginx Date: Mon, 29 Sep 2014 12:51:37 GMT Content-Type: text/html Transfer-Encoding: chunked Connection: keep-alive Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Encoding: gzip OWASP should update its list with this one as well for nginX. ;-)
-P0to turn off the ICMP probe. ICMP is disabled on some servers, e.g. amazon aws.