You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
3.9 KiB
156 lines
3.9 KiB
11 years ago
|
#! /usr/bin/python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
from wappalyzer import Wappalyzer
|
||
|
|
||
|
TESTS = [
|
||
|
{
|
||
|
'url': 'http://www.hardgraft.com',
|
||
|
'apps': ['jQuery', 'Shopify', 'Nginx']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://its.bplaced.net',
|
||
|
'apps': ['WordPress', 'jQuery', 'Apache']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.bodybuilding.com/',
|
||
|
'apps': ['jQuery', 'Optimizely', 'SiteCatalyst', 'Apache Tomcat']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://guidedhelp21.weebly.com/',
|
||
|
'apps': ['Weebly', 'Apache', 'Quantcast', 'Google Analytics', 'jQuery']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.bancadelparque.com/',
|
||
|
'apps': ['Wix', 'Twitter Bootstrap']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://joomla.ru/',
|
||
|
'apps': ['Joomla', 'jQuery', 'MooTools', 'Yandex.Metrika', 'LiteSpeed']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://demoshop21.e-stile.ru/',
|
||
|
'apps': ['SiteEdit', 'PHP']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://umbraco.com',
|
||
|
'apps': ['Umbraco', 'IIS', 'Microsoft ASP.NET']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://johnsciacca.webs.com/',
|
||
|
'apps': ['Webs', 'RequireJS', 'Site Meter', 'Modernizr']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.1c-bitrix.ru/',
|
||
|
'apps': ['1C-Bitrix', 'Yandex.Metrika']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://amirocms.com',
|
||
|
'apps': ['Amiro.CMS']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://dle-news.ru',
|
||
|
'apps': ['DataLife Engine', 'CloudFlare']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://dotnetnuke.com',
|
||
|
'apps': ['DotNetNuke', 'Microsoft ASP.NET']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.schooldude.com',
|
||
|
'apps': ['DotNetNuke', 'Microsoft ASP.NET']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.sportsdirect.com/',
|
||
|
'apps': ['DotNetNuke', 'Microsoft ASP.NET']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://drupal.org',
|
||
|
'apps': ['Drupal', 'Varnish']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.komodocms.com/',
|
||
|
'apps': ['Komodo CMS']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://livestreetcms.com/',
|
||
|
'apps': ['LiveStreet CMS']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://modxcms.com/',
|
||
|
'apps': ['MODx']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://modx.ru/',
|
||
|
'apps': ['MODx']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://revo.modx.ru/',
|
||
|
'apps': ['MODx']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.punchbrand.com',
|
||
|
'apps': ['CS Cart']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://demo.cs-cart.com/',
|
||
|
'apps': ['CS Cart']
|
||
|
},
|
||
|
{
|
||
|
'url': 'https://livedemo.installatron.com/1404307206magento/',
|
||
|
'apps': ['Magento']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://livedemo.installatron.com/1404300689prestashop/',
|
||
|
'apps': ['Prestashop']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://demo.opencart.com/',
|
||
|
'apps': ['OpenCart']
|
||
|
},
|
||
|
{
|
||
|
'url': 'https://livedemo.installatron.com/1404307206oscommerce/',
|
||
|
'apps': ['osCommerce']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.ubercartdemo.com/',
|
||
|
'apps': ['Ubercart']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://demostore.x-cart.com/',
|
||
|
'apps': ['X-Cart']
|
||
|
},
|
||
|
{
|
||
|
'url': 'https://livedemo.installatron.com/1404307206zencart/',
|
||
|
'apps': ['Zen Cart']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://oreonfray83.wordpress.com',
|
||
|
'apps': ['WordPress.Com']
|
||
|
},
|
||
|
{
|
||
|
'url': 'http://www.try-phpbb.com/30x/',
|
||
|
'apps': ['phpBB']
|
||
|
},
|
||
|
]
|
||
|
|
||
|
|
||
|
def test():
|
||
|
wappalyzer = Wappalyzer(datafile_path='../../share/apps.json')
|
||
|
|
||
|
for site in TESTS:
|
||
|
print 'testing %s ...' % site['url']
|
||
|
result = wappalyzer.analyze(site['url'])
|
||
|
for app in site['apps']:
|
||
|
found = result.pop(app, None)
|
||
|
if found:
|
||
|
print '\t%s\t- ok\tconfidence=%d' % (app, found.get_confidence())
|
||
|
else:
|
||
|
print '\t%s\t- NOT FOUND' % (app)
|
||
|
return
|
||
|
if result:
|
||
|
print '\tUNEXPECTED APPS:'
|
||
|
for app_name, app in result.iteritems():
|
||
|
print '\t\t%s\t- ok\tconfidence=%d' % (app_name, app.get_confidence())
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
test()
|