Elbert Alias
c330877221
|
12 years ago | |
---|---|---|
drivers | 12 years ago | |
share | 12 years ago | |
.gitattributes | 12 years ago | |
.gitignore | 12 years ago | |
LICENSE | 12 years ago | |
README.md | 12 years ago | |
links.cmd | 12 years ago | |
links.sh | 12 years ago | |
package.sh | 12 years ago |
README.md
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
and use a validator like http://jsonformatter.curiousconcept.com/ to verify your modification. - Add a 16x16 PNG image to
share/images/icons
matching the application name and compressed with a loss-less tools like http://www.smushit.com/ or optipng http://optipng.sourceforge.net/. - Provide the URL to the application's website when submitting a pull request.
Example:
"Application Name": {
"cats": [ 1 ],
"headers": { "X-Powered-By": "Application Name" },
"url": ".+\\.application-name\\.com",
"html": "<link[^>]application-name\\.css",
"meta": { "generator": "Application Name" },
"script": "application-name\\.js",
"env": "ApplicationName",
"implies": [ "PHP" ],
"confidence": { "html": 50, "script": 50 }
}
JSON fields
field | type | description |
---|---|---|
cats | array | List of category IDs. See apps.json. |
confidence | object | |
env | string | Global JavaScript variables (e.g. jQuery ). |
headers | object | HTTP Response headers (e.g. X-Powered-By ) |
html | string | Full 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. wordpress.com ). |
meta | object | HTML meta tags (e.g. generator ). |
script | string | src attribute of HTML script tags (e.g. jquery.js ). |
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 the links.sh
script (UNIX-like
systems only, Windows users can use links.cmd
.)
Mozilla Firefox**
- Place a file called
wappalyzer@crunchlabz.com
in the extensions directory in your profile folder (~/.mozilla/firefox/xxxxx.default/extensions/
on Linux) containing the full path todrivers/firefox
. - Restart Firefox
- Navigate to
about:config
and setextensions.wappalyzer.debug
totrue
. - Ctrl+Shift+J brings up a console for debugging.
Google Chrome
The Chrome version needs some love, if anyone wants to pick it up. It's currently not as feature-rich as the Firefox add-on (although partially due to API limitations.)
- 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 driver by @ebradbury.
https://github.com/ebradbury/Wappalyzer/tree/master/drivers/python
Ruby
A Ruby port by @skroutz.
https://github.com/skroutz/wappalyzer-ruby
Screenshot
Wappalyzer on Firefox: