diff --git a/src/apps.json b/src/apps.json index 016093b39..a3c134b39 100755 --- a/src/apps.json +++ b/src/apps.json @@ -105,7 +105,10 @@ "cats": [ 10 ], - "env": "^xtsite$", + "env": [ + "^xtsite$", + "^ATInternet$" + ], "icon": "AT Internet Analyzer.png", "website": "atinternet.com/en" }, @@ -229,6 +232,7 @@ "Adminer ([\\d.]+)\\;version:\\1", "onclick=\"bodyClick\\(event\\);\" onload=\"verifyVersion\\('([\\d.]+)'\\);\">\\;version:\\1" ], + "implies": "PHP", "icon": "adminer.png", "website": "www.adminer.org" }, @@ -435,6 +439,36 @@ }, "website": "www.w3.org/Amaya" }, + "Amazon Cloudfront": { + "cats": [ + 31 + ], + "headers": { + "X-Amz-Cf-Id": "" + }, + "icon": "Amazon-Cloudfront.svg", + "website": "aws.amazon.com/cloudfront/" + }, + "Amazon EC2": { + "cats": [ + 22 + ], + "headers": { + "Server": "\\(Amazon\\)" + }, + "icon": "aws-ec2.svg", + "website": "aws.amazon.com/ec2/" + }, + "Amazon S3": { + "cats": [ + 19 + ], + "headers": { + "Server": "AmazonS3" + }, + "icon": "aws-s3.svg", + "website": "aws.amazon.com/s3/" + }, "Ametys": { "cats": [ 1 @@ -464,9 +498,7 @@ ], "env": "^ngMaterial$", "icon": "Angular.svg", - "implies": [ - "AngularJS" - ], + "implies": "AngularJS", "script": [ "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular-material(?:\\.min)?\\.js\\;version:\\1", "angular-material.*\\.js" @@ -501,6 +533,7 @@ 34 ], "html": "]+static/hbase", + "implies": "Java", "icon": "Apache HBase.png", "website": "hbase.apache.org" }, @@ -519,6 +552,7 @@ "html": "]* xmlns:jspwiki=", "icon": "Apache JSPWiki.png", "script": "jspwiki", + "implies": "Apache Tomcat", "url": "wiki\\.jsp", "website": "jspwiki.org" }, @@ -530,6 +564,7 @@ "Server": "Apache-Coyote(/1\\.1)?\\;version:\\1?4.1+:", "X-Powered-By": "\bTomcat\b(?:-([\\d.]+))?\\;version:\\1" }, + "implies": "Java", "icon": "Apache Tomcat.svg", "website": "tomcat.apache.org" }, @@ -646,9 +681,7 @@ "Powered by Asymptix PHP Framework" ], "icon": "Asymptix PHP Framework.png", - "implies": [ - "PHP" - ], + "implies": "PHP", "website": "github.com/Asymptix/Framework" }, "Atlassian Bitbucket": { @@ -657,6 +690,7 @@ ], "env": "^bitbucket$", "icon": "Atlassian Bitbucket.svg", + "implies": "Python", "meta": { "application-name": "Bitbucket" }, @@ -714,6 +748,21 @@ ], "website": "www.atlassian.com/software/jira/overview/" }, + "Aurelia": { + "cats": [ + 12 + ], + "icon": "Aurelia.svg", + "html": [ + "<[^>]+aurelia-app=[^>]", + "<[^>]+data-main=[^>]aurelia-bootstrapper", + "<[^>]+au-target-id=[^>]\\d" + ], + "script": [ + "aurelia(?:\\.min)?\\.js" + ], + "website": "aurelia.io" + }, "Avangate": { "cats": [ 6 @@ -807,10 +856,9 @@ "cats": [ 6 ], - "env": "^compareProducts$", - "html": "]+cdn\\d+\\.bigcommerce\\.com/v", + "html": "]+cdn\\d+\\.bigcommerce\\.com/", "icon": "Bigcommerce.png", - "script": "cdn\\d+\\.bigcommerce\\.com/v", + "script": "cdn\\d+\\.bigcommerce\\.com/", "url": "mybigcommerce\\.com", "website": "www.bigcommerce.com" }, @@ -931,6 +979,10 @@ "cats": [ 40 ], + "html": [ + "(?:", "icon": "Methode.png", "meta": { @@ -4797,7 +4962,10 @@ ], "env": "^moodle", "headers": { - "Set-Cookie": "MoodleSession" + "Set-Cookie": "(?:MoodleSession|MOODLEID_)" + }, + "meta": { + "keywords": "^moodle" }, "html": "]+moodlelogo", "icon": "Moodle.png", @@ -4955,10 +5123,7 @@ "X-Flow-Powered": "Neos/?(.+)?$\\;version:\\1" }, "icon": "Neos.svg", - "implies": [ - "PHP", - "Neos Flow" - ], + "implies": "Neos Flow", "url": "/neos/", "website": "neos.io" }, @@ -4982,12 +5147,6 @@ "X-Powered-CMS": "Nepso" }, "icon": "Nepso.png", - "implies": [ - "Python", - "Perl", - "Java", - "PHP" - ], "website": "nepso.com" }, "Netmonitor": { @@ -5020,11 +5179,18 @@ }, "Nette Framework": { "cats": [ - 18 + 18 ], "headers": { - "X-Powered-By": "Nette Framework" + "X-Powered-By": "Nette Framework", + "Set-Cookie": "nette-browser=" }, + "env": "Nette", + "html": [ + "]+data-nette-rules", + "]+id=\"snippet-", + "]+id=\"frm-" + ], "icon": "Nette Framework.png", "implies": "PHP", "website": "nette.org" @@ -5085,6 +5251,19 @@ "implies": "Laravel", "website": "octobercms.com" }, + "Octopress": { + "cats": [ + 1, + 11 + ], + "html": "Powered by ", + "implies": "Jekyll", + "meta": { + "generator": "Octopress" + }, + "icon": "octopress.png", + "website": "octopress.org" + }, "Odoo": { "cats": [ 1, @@ -5154,9 +5333,7 @@ "Set-Cookie": "\bOJSSID\b" }, "icon": "Open Journal Systems.png", - "implies": [ - "PHP" - ], + "implies": "PHP", "meta": { "generator": "Open Journal Systems(?: ([\\d.]+))?\\;version:\\1" }, @@ -5176,6 +5353,7 @@ 6 ], "icon": "Open eShop.png", + "implies": "PHP", "meta": { "author": "open-eshop\\.com", "copyright": "Open eShop ?([0-9.]+)?\\;version:\\1" @@ -5492,6 +5670,11 @@ ], "env": "^pi(?:Tracker|Hostname|Protocol|CId|AId)$", "icon": "Pardot.png", + "headers": { + "X-Pardot-LB": "", + "X-Pardot-Route": "", + "X-Pardot-Rsp": "" + }, "website": "pardot.com" }, "Parse.ly": { @@ -5529,6 +5712,7 @@ "X-Powered-By": "PencilBlue" }, "icon": "PencilBlue.png", + "implies": "Node.js", "website": "pencilblue.org" }, "Penguin": { @@ -5640,9 +5824,7 @@ "X-Powered-By": "pimcore" }, "icon": "pimcore.svg", - "implies": [ - "PHP" - ], + "implies": "PHP", "website": "pimcore.org" }, "Pinterest": { @@ -5728,6 +5910,16 @@ }, "website": "plone.org" }, + "Plotly": { + "cats": [ + 25 + ], + "icon": "Plotly.png", + "implies": "D3", + "env": "Plotly", + "script": "https?://cdn\\.plot\\.ly/plotly", + "website": "plot.ly/javascript/" + }, "Plura": { "cats": [ 19 @@ -5850,6 +6042,23 @@ "script": "protovis.*\\.js", "website": "mbostock.github.com/protovis" }, + "Proximis Omnichannel": { + "cats": [ + 6, + 1 + ], + "env": "^__change$", + "html": "]+data-ng-app=\"RbsChangeApp\"", + "icon": "Proximis Omnichannel.png", + "implies": [ + "PHP", + "AngularJS" + ], + "meta": { + "generator": "Proximis Omnichannel" + }, + "website": "www.proximis.com" + }, "PubMatic": { "cats": [ 36 @@ -6221,10 +6430,16 @@ 11 ], "icon": "Roadiz CMS.png", - "implies": "PHP", + "implies": [ + "PHP", + "Symfony" + ], "meta": { "generator": "^Roadiz ([a-z0-9\\s\\.]+) - \\;version:\\1" }, + "headers": { + "X-Powered-By": "Roadiz CMS" + }, "website": "www.roadiz.io" }, "Robin": { @@ -6403,6 +6618,7 @@ "cats": [ 3 ], + "implies": "PHP", "html": "(?:SQL Buddy|<[^>]+onclick=\"sideMainClick\\(\"home\\.php)", "icon": "SQL Buddy.png", "website": "www.sqlbuddy.com" @@ -6609,6 +6825,18 @@ "script": "w\\.sharethis\\.com/", "website": "sharethis.com" }, + "ShellInABox": { + "cats": [ + 46 + ], + "html": [ + "Shell In A Box", + "must be enabled for ShellInABox" + ], + "env": "^ShellInABox$", + "icon": "ShellInABox.png", + "website": "shellinabox.com" + }, "ShinyStat": { "cats": [ 10 @@ -6688,7 +6916,7 @@ "cats": [ 6 ], - "html": "Shopware ([\\d\\.]+) [^<]+\\;version:\\1\\;confidence:90", + "html": "<title>Shopware ([\\d\\.]+) [^<]+\\;version:\\1", "icon": "Shopware.png", "implies": [ "PHP", @@ -6906,7 +7134,7 @@ "headers": { "solodev_session": "" }, - "html": "<div class='dynamicDiv' id='dd\\.\\d\\.\\d'>", + "html": "<div class=(?:\"|')dynamicDiv(?:\"|') id=(?:\"|')dd\\.\\d\\.\\d(?:\\.\\d)?(?:\"|')>", "icon": "Solodev.png", "implies": "PHP", "website": "www.solodev.com" @@ -7140,10 +7368,7 @@ "X-Generator": "Sulu/?(.+)?$\\;version:\\1" }, "icon": "Sulu.svg", - "implies": [ - "PHP", - "Symfony" - ], + "implies": "Symfony", "website": "sulu.io" }, "SumoMe": { @@ -7215,9 +7440,12 @@ 48 ], "icon": "Synology DiskStation.png", + "html": "<noscript><div class='syno-no-script'", "meta": { - "application-name": "Synology DiskStation" + "application-name": "Synology DiskStation", + "description": "^DiskStation provides a full-featured network attached storage" }, + "script": "webapi/entry\\.cgi\\?api=SYNO\\.(?:Core|Filestation)\\.Desktop\\.", "website": "synology.com" }, "SyntaxHighlighter": { @@ -7238,6 +7466,7 @@ }, "html": "<img [^>]*(?:title|alt)=\"This site is powered by the TWiki collaboration platform", "icon": "TWiki.png", + "implies": "Perl", "script": "(?:TWikiJavascripts|twikilib(?:\\.min)?\\.js)", "website": "twiki.org" }, @@ -7324,6 +7553,10 @@ "meta": { "generator": "Textpattern" }, + "implies": [ + "PHP", + "MySQL" + ], "website": "textpattern.com" }, "Thelia": { @@ -7522,7 +7755,7 @@ "html": [ "<style>/\\*!\\* Bootstrap v(\\d\\.\\d\\.\\d)\\;version:\\1", "<link[^>]+?href=\"[^\"]+bootstrap(?:\\.min)?\\.css", - "<div [^>]*class=\"[^\"]*col-(?:xs|sm|md|lg)-\\d{1,2}" + "<div[^>]+class=\"[^\"]*col-(?:xs|sm|md|lg)-\\d{1,2}" ], "icon": "Twitter Bootstrap.png", "script": "(?:twitter\\.github\\.com/bootstrap|bootstrap(?:\\.js|\\.min\\.js))", @@ -8163,6 +8396,9 @@ "Set-Cookie": "Domain=\\.wix\\.com", "X-Wix-Dispatcher-Cache-Hit": "" }, + "meta": { + "X-Wix-Renderer-Server": "" + }, "icon": "Wix.png", "script": "static\\.wixstatic\\.com", "website": "wix.com" @@ -8173,6 +8409,7 @@ ], "html": "(?:<a href=\"[^>]+wolfcms\\.org[^>]+>Wolf CMS(?:</a>)? inside|Thank you for using <a[^>]+>Wolf CMS)", "icon": "Wolf CMS.png", + "implies": "PHP", "website": "www.wolfcms.org" }, "Woltlab Community Framework": { @@ -8192,10 +8429,7 @@ "env": "woocommerce", "html": "<!-- WooCommerce", "icon": "WooCommerce.png", - "implies": [ - "WordPress", - "PHP" - ], + "implies": "WordPress", "meta": { "generator": "WooCommerce ([\\d.]+)\\;version:\\1" }, @@ -8269,7 +8503,7 @@ "cats": [ 22 ], - "html": "<title>XAMPP(?: Version ([\\d\\.]+))?\\;version:\\1\\;confidence:90", + "html": "XAMPP(?: Version ([\\d\\.]+))?\\;version:\\1", "icon": "XAMPP.png", "implies": [ "Apache", @@ -8389,7 +8623,7 @@ 4 ], "html": "(?:]* yuilibrary\\.com/rdf/[\\d.]+/yui\\.rdf|]+class=\"yui3-skin-sam)", - "icon": "YUI Doc.png", + "icon": "yahoo.png", "website": "developer.yahoo.com/yui/yuidoc" }, "YaBB": { @@ -8409,7 +8643,7 @@ "]+adserver\\.yahoo\\.com", "]+clicks\\.beap\\.bc\\.yahoo\\.com" ], - "icon": "Yahoo Advertising.png", + "icon": "yahoo.png", "script": "adinterax\\.com", "website": "advertising.yahoo.com" }, @@ -8422,7 +8656,7 @@ "X-XRDS-Location": "/ystore/" }, "html": "]+store\\.yahoo\\.net", - "icon": "Yahoo! Ecommerce.png", + "icon": "yahoo.png", "website": "smallbusiness.yahoo.com/ecommerce" }, "Yahoo! Web Analytics": { @@ -8430,7 +8664,7 @@ 10 ], "env": "^YWA$", - "icon": "Yahoo! Web Analytics.png", + "icon": "yahoo.png", "script": "d\\.yimg\\.com/mi/ywa\\.js", "website": "web.analytics.yahoo.com" }, @@ -8501,6 +8735,18 @@ "icon": "Yoast SEO.png", "website": "yoast.com" }, + "YouTrack": { + "cats": [ + 13 + ], + "html": [ + "no-title=\"YouTrack\">", + "data-reactid=\"[^\"]+\">youTrack ([0-9.]+)<\\;version:\\1", + "type=\"application/opensearchdescription\\+xml\" title=\"YouTrack\"/>" + ], + "icon": "YouTrack.png", + "website": "www.jetbrains.com/youtrack/" + }, "YouTube": { "cats": [ 14 @@ -8537,6 +8783,7 @@ "env": "^zbxCallPostScripts$", "html": "]+zbxCallPostScripts", "icon": "Zabbix.png", + "implies": "PHP", "meta": { "Author": "ZABBIX SIA\\;confidence:70" }, @@ -8810,12 +9057,25 @@ }, "website": "git-scm.com" }, + "gitlist": { + "cats": [ + 47 + ], + "html": "

Powered by ]+>GitList ([\\d.]+)\\;version:\\1", + "implies": [ + "PHP", + "git" + ], + "icon": "default.png", + "website": "gitlist.org" + }, "gitweb": { "cats": [ 47 ], - "html": "", + "Powered by + NetworkingContentDelivery + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/Aurelia.svg b/src/icons/Aurelia.svg new file mode 100644 index 000000000..3bf9ad8fd --- /dev/null +++ b/src/icons/Aurelia.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/Comandia.svg b/src/icons/Comandia.svg new file mode 100644 index 000000000..9c91aef7e --- /dev/null +++ b/src/icons/Comandia.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/icons/DovetailWRP.png b/src/icons/DovetailWRP.png new file mode 100755 index 000000000..fbf47ef05 Binary files /dev/null and b/src/icons/DovetailWRP.png differ diff --git a/src/icons/Javascript Infovis Toolkit.png b/src/icons/JavaScript Infovis Toolkit.png similarity index 100% rename from src/icons/Javascript Infovis Toolkit.png rename to src/icons/JavaScript Infovis Toolkit.png diff --git a/src/icons/Jive.png b/src/icons/Jive.png new file mode 100755 index 000000000..4d45c241d Binary files /dev/null and b/src/icons/Jive.png differ diff --git a/src/icons/Plotly.png b/src/icons/Plotly.png new file mode 100644 index 000000000..20f7b24d8 Binary files /dev/null and b/src/icons/Plotly.png differ diff --git a/src/icons/Proximis Omnichannel.png b/src/icons/Proximis Omnichannel.png new file mode 100644 index 000000000..a0e2f6044 Binary files /dev/null and b/src/icons/Proximis Omnichannel.png differ diff --git a/src/icons/ShellInABox.png b/src/icons/ShellInABox.png new file mode 100644 index 000000000..036151609 Binary files /dev/null and b/src/icons/ShellInABox.png differ diff --git a/src/icons/Yahoo Advertising.png b/src/icons/Yahoo Advertising.png deleted file mode 100644 index b0b64781b..000000000 Binary files a/src/icons/Yahoo Advertising.png and /dev/null differ diff --git a/src/icons/Yahoo! Ecommerce.png b/src/icons/Yahoo! Ecommerce.png deleted file mode 100644 index b0b64781b..000000000 Binary files a/src/icons/Yahoo! Ecommerce.png and /dev/null differ diff --git a/src/icons/Yahoo! Web Analytics.png b/src/icons/Yahoo! Web Analytics.png deleted file mode 100644 index b0b64781b..000000000 Binary files a/src/icons/Yahoo! Web Analytics.png and /dev/null differ diff --git a/src/icons/YouTrack.png b/src/icons/YouTrack.png new file mode 100644 index 000000000..4a00a51d4 Binary files /dev/null and b/src/icons/YouTrack.png differ diff --git a/src/icons/aws-ec2.svg b/src/icons/aws-ec2.svg new file mode 100755 index 000000000..f6da9f51d --- /dev/null +++ b/src/icons/aws-ec2.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/aws-s3.svg b/src/icons/aws-s3.svg new file mode 100755 index 000000000..70a784357 --- /dev/null +++ b/src/icons/aws-s3.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/gerrit.svg b/src/icons/gerrit.svg new file mode 100644 index 000000000..160dd52e3 --- /dev/null +++ b/src/icons/gerrit.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/icons/http2.png b/src/icons/http2.png new file mode 100644 index 000000000..c20d5d447 Binary files /dev/null and b/src/icons/http2.png differ diff --git a/src/icons/jimdo.png b/src/icons/jimdo.png new file mode 100644 index 000000000..d4a12d8a8 Binary files /dev/null and b/src/icons/jimdo.png differ diff --git a/src/icons/meliscmsv2.png b/src/icons/meliscmsv2.png new file mode 100644 index 000000000..39ec358a6 Binary files /dev/null and b/src/icons/meliscmsv2.png differ diff --git a/src/icons/octopress.png b/src/icons/octopress.png new file mode 100644 index 000000000..0f2506730 Binary files /dev/null and b/src/icons/octopress.png differ diff --git a/src/icons/phpliteadmin.png b/src/icons/phpliteadmin.png new file mode 100644 index 000000000..03487a2d3 Binary files /dev/null and b/src/icons/phpliteadmin.png differ diff --git a/src/icons/YUI Doc.png b/src/icons/yahoo.png similarity index 100% rename from src/icons/YUI Doc.png rename to src/icons/yahoo.png diff --git a/src/wappalyzer.js b/src/wappalyzer.js index 6b21a4c4c..14fd47bc2 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -329,7 +329,7 @@ var wappalyzer = (function() { for ( meta in w.apps[app][type] ) { profiler.checkPoint(app, type, regexMeta); - if ( new RegExp('name=["\']' + meta + '["\']', 'i').test(match) ) { + if ( new RegExp('(name|property)=["\']' + meta + '["\']', 'i').test(match) ) { content = match.toString().match(/content=("|')([^"']+)("|')/i); parse(w.apps[app].meta[meta]).forEach(function(pattern) {