views:

646

answers:

6

Duplicate:

Is there a generic way to see what is a website running on ?

Thanks for all the answer everyone, please supply additional answers at the above question if you feel something is missing.


Browsing the web I often come across sites that are doing interesting or cool things. It a natural inclination of mine, and I'm sure many of you, to try and found out how they did it. This is easy for some elements like HTML, Javascript and CSS. It is also fairly easy to tell what type of server a site is running on with tools like server spy. However is there any way to tell, just by what is available on the site, how it was built? Sometimes there are telltale signs, like .jsp or .php, but more often then not I have no idea what technology they are using to generate content dynamically.

Anyone have any tricks to spotting web frameworks/languages?

+1  A: 

You can sometimes tell when you get an error page, especially if the website left debugging on. I know that ASP, Django, Pylons, etc all have their own debugging error pages, and I suspect that many other frameworks do as well. However, without being able to trigger such an error (which could be as simple as a 404 to something more difficult like a 500) there's no reliable way to tell what software a website is running on.

If you want to know the OS, nmap can provide you with a fairly accurate guess of what OS the server is running, but again this isn't foolproof.

Kyle Cronin
Nothing instills more confidence then a banking website that leaves debugging on.
James McMahon
+1  A: 

You could take a look at HTTP headers, the URL (index.php probably means PHP), HTML comments for some clues, and a variety of other sources.

However, there are many websites that do a lot of work to mask this, with the idea that it is making it more difficult to hack such a website.

Thus, like previously stated, there is no completely reliable way to tell.

Rishabh Mishra
+4  A: 

Like nobody_ said, sometimes it can be impossible.

Here are some things you can try:

  1. Look in the extension like "index.php" is probably php, but no guarantee.
  2. Check the source file. Sometimes there will be a meta tag named "generator"
  3. Examine the http request.
  4. Look at the footer, sometimes its there.
  5. Ask the person who wrote it.
Unknown
What would you look for in the HTTP request to identify the technology?
James McMahon
Look at the line that starts with "Server:" - you might find some info there (like Apache extensions).
Kyle Cronin
@ nemo, for example, when I query stackoverflow.com, I see:Server: Microsoft-IIS/7.0X-AspNetMvc-Version: 1.0
Unknown
A: 

A lot of the frameworks may not obviously reveal what they are, but a lot of them tend to leave very distinct signatures that are recognizable. An ASP.NET page, for example, will almost certainly have lots of doPostback javascript type stuff in the page. So if you can find something in the page source like that, which seems to stand out quite a bit, simply punching that into Google will probably give you an answer.

Promit
+7  A: 

http://builtwith.com/ does a pretty good job at this sort of thing.

barfoon
Why is this being voted up and everyone else voted down? It failed to detect asp on SO.com, and has advertising taking up a whole page when you click submit...
Unknown
Doesn't seem to detect anymore then server type and javascript libraries, doesn't detect do OS or technology stack. Maybe I am looking at the wrong sites.
James McMahon
Didn't detect Django on http://www.djangoproject.com/ but it did spot Ruby on Rails and Ubuntu on http://rubyonrails.org/. There are also some interesting trending charts available.
James McMahon
Yeah, I said a pretty good job - not perfect though.
barfoon
A: 

http://guess.scritch.org does pretty well for alot of CMS's, frameworks and platforms. It's more thorough than builtwith and uses some sort of fingerprinting to figure out the details.

Ivo van der Wijk