Giter Club home page Giter Club logo

wappalyzer's Introduction

Wappalyzer

Wappalyzer is a browser extension that uncovers the technologies used on websites. It detects content management systems, web shops, web servers, JavaScript frameworks, analytics tools and many more.

Licensed under the GPL.

Contributing

Adding a new application

  • Edit share/apps.json (use a JSON validator).
  • Add a 16x16 PNG image to share/images/icons matching the application name (use Smush.it or OptiPNG for compression).
  • Provide the URL to the application's website when submitting a pull request.

Adding a new category

Please open an issue to discuss first. Adding a category involves updating apps.json, preference pages, locales and wappalyzer.com.

Adding a new translation

Mozilla Firefox

Copy drivers/firefox/locale/en-US.

Google Chrome

Copy drivers/chrome/_locales/en.

apps.json

Example

"Application Name": { 
	"cats":    [ 1 ], 
	"headers": { "X-Powered-By": "Application Name" },
	"url":     ".+\\.application-name\\.com",
	"html":    "<link[^>]application-name\\.css", 
	"meta":    { "generator": [ "Application Name", "Alternative Application Name" ] },
	"script":  "application-name-([0-9.]+)\\.js\\;confidence:50\\;version:\\1",
	"env":     "ApplicationName",
	"implies": "PHP\\;confidence:50",
	}

JSON fields

field type description
cats array List of category IDs. See apps.json for the complete list.
env string Global JavaScript variables, e.g. jQuery.
headers object HTTP Response headers, e.g. X-Powered-By.
html string Full HTML response body.
implies array The presence of one application can imply the presence of another, e.g. Drupal means PHP is also in use.
url string URL of the page, e.g. http://wordpress.com/index.php.
meta object HTML meta tags, e.g. generator.
script string src attribute of HTML script tags, e.g. jquery.js.

Except cats, all fields are optional.

Except cats and implied all fields except one or more patterns (either a string or an array of regular expressions).

Patterns

Patterns are case insensitive regular expressions. No surrounding delimiters or flags are used.

Optional fields can be added, separated by \\;:

field description
confidence Indicates less reliable patterns that may cause false positives. The aim is to achieve a combined confidence of 100%. Defaults to 100% for unspecified fields.
version Gets the version number from a pattern match using a special syntax.

The confidence field can also be applied to the implied field.

Version syntax

example description
\\1 Returns the first match
\\1?a: Returns a if the first match contains a value, nothing otherwise
\\1?a:b Returns a if the first match contains a value, b otherwise
\\1?:b Returns nothing if the first match contains a value, b otherwise
foo\\1 Returns foo with the first match appended.

Drivers

Wappalyzer is multi-platform. The main code lives in the share/ directory and platform specific code in drivers/. The sections below describe how to set up a development environment for the various existing drivers.

To keep files synchronised between drivers, run links.sh (UNIX-like systems) or links.cmd (Windows).

Mozilla Firefox

  • Place a file called [email protected] in the extensions directory in your profile folder (~/.mozilla/firefox/xxxxx.default/extensions/ on Linux) containing the full path to drivers/firefox.
  • Restart Firefox
  • Navigate to about:config and set extensions.wappalyzer.debug to true.
  • Ctrl+Shift+J brings up a console for debugging.

Google Chrome

  • Navigate to about:extensions
  • Check "Developer mode"
  • Click "Load unpacked extension..."
  • Select drivers/chrome/

Bookmarklet

Beta version available for testing at wappalyzer.com/bookmarklet.

HTML

The HTML driver serves purely as an example. It's a good starting point if you want to port Wappalyzer to a new platform.

  • Navigate to drivers/html/

PHP

The PHP driver requires the V8js class. Installing V8js using PECL on Debian Linux or Ubuntu should be very straight forward:

  • # aptitude install php5-dev php-pear libv8-dev
  • # pecl install channel://pecl.php.net/v8js-0.1.3
  • # echo "extension=v8js.so" > /etc/php5/conf.d/v8js.ini

Runnning Wappalyzer from the command line:

$ php drivers/php/index.php wappalyzer.com

Running Wappalyzer inside a PHP script:

require('WappalyzerException.php');
require('Wappalyzer.php');

$wappalyzer = new Wappalyzer($url);

$detectedApps = $wappalyzer->analyze();

Mozilla Jetpack

Work in progress, experimental. See https://wiki.mozilla.org/Jetpack.

Unofficial drivers and ports

Python

A Python port by SebastianLopienski. Part of a research project at CERN.

https://github.com/SebastianLopienski/WAD

Python

A Python driver by @ebradbury.

https://github.com/ebradbury/Wappalyzer/tree/master/drivers/python

Ruby

A Ruby port by @skroutz.

https://github.com/skroutz/wappalyzer-ruby

Screenshots

Wappalyzer on Mozilla Firefox:

A screenshot of Wappalyzer on Mozilla Firefox

Wappalyzer on Google Chrome:

A screenshot of Wappalyzer on Google Chrome

wappalyzer's People

Contributors

alepore avatar aliasio avatar baxtheman avatar benoitpointet avatar denics avatar denismo avatar dhirtzbruch avatar donaldgoose avatar frandieguez avatar gadcam avatar gitflo avatar juliopontes avatar madearl avatar notbugger avatar reeno avatar restart05 avatar sebastianlopienski avatar tbenjis avatar user1113 avatar vbezruchkin avatar vdboor avatar yuchi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.