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. ;-)
-P0
to turn off the ICMP probe. ICMP is disabled on some servers, e.g. amazon aws.