diff --git a/src/apps.json b/src/apps.json index 00b8a6dcb..4a6108d33 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" }, @@ -435,6 +438,16 @@ }, "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 @@ -544,6 +557,7 @@ "html": "]* xmlns:jspwiki=", "icon": "Apache JSPWiki.png", "script": "jspwiki", + "implies": "Apache Tomcat", "url": "wiki\\.jsp", "website": "jspwiki.org" }, @@ -555,6 +569,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" }, @@ -671,9 +686,7 @@ "Powered by Asymptix PHP Framework" ], "icon": "Asymptix PHP Framework.png", - "implies": [ - "PHP" - ], + "implies": "PHP", "website": "github.com/Asymptix/Framework" }, "Atlassian Bitbucket": { @@ -739,6 +752,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 @@ -832,10 +860,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" }, @@ -956,6 +983,10 @@ "cats": [ 40 ], + "html": [ + "(?:", "icon": "Methode.png", "meta": { @@ -4822,7 +4910,10 @@ ], "env": "^moodle", "headers": { - "Set-Cookie": "MoodleSession" + "Set-Cookie": "(?:MoodleSession|MOODLEID_)" + }, + "meta": { + "keywords": "^moodle" }, "html": "]+moodlelogo", "icon": "Moodle.png", @@ -4980,10 +5071,7 @@ "X-Flow-Powered": "Neos/?(.+)?$\\;version:\\1" }, "icon": "Neos.svg", - "implies": [ - "PHP", - "Neos Flow" - ], + "implies": "Neos Flow", "url": "/neos/", "website": "neos.io" }, @@ -5007,12 +5095,6 @@ "X-Powered-CMS": "Nepso" }, "icon": "Nepso.png", - "implies": [ - "Python", - "Perl", - "Java", - "PHP" - ], "website": "nepso.com" }, "Netmonitor": { @@ -5045,11 +5127,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" @@ -5110,6 +5199,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, @@ -5179,9 +5281,7 @@ "Set-Cookie": "\bOJSSID\b" }, "icon": "Open Journal Systems.png", - "implies": [ - "PHP" - ], + "implies": "PHP", "meta": { "generator": "Open Journal Systems(?: ([\\d.]+))?\\;version:\\1" }, @@ -5201,6 +5301,7 @@ 6 ], "icon": "Open eShop.png", + "implies": "PHP", "meta": { "author": "open-eshop\\.com", "copyright": "Open eShop ?([0-9.]+)?\\;version:\\1" @@ -5517,6 +5618,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": { @@ -5554,6 +5660,7 @@ "X-Powered-By": "PencilBlue" }, "icon": "PencilBlue.png", + "implies": "Node.js", "website": "pencilblue.org" }, "Penguin": { @@ -5665,9 +5772,7 @@ "X-Powered-By": "pimcore" }, "icon": "pimcore.svg", - "implies": [ - "PHP" - ], + "implies": "PHP", "website": "pimcore.org" }, "Pinterest": { @@ -5753,6 +5858,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 @@ -5875,6 +5990,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 @@ -6246,10 +6378,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": { @@ -6428,6 +6566,7 @@ "cats": [ 3 ], + "implies": "PHP", "html": "(?:SQL Buddy|<[^>]+onclick=\"sideMainClick\\(\"home\\.php)", "icon": "SQL Buddy.png", "website": "www.sqlbuddy.com" @@ -6634,6 +6773,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 @@ -6713,7 +6864,7 @@ "cats": [ 6 ], - "html": "Shopware ([\\d\\.]+) [^<]+\\;version:\\1\\;confidence:90", + "html": "<title>Shopware ([\\d\\.]+) [^<]+\\;version:\\1", "icon": "Shopware.png", "implies": [ "PHP", @@ -6931,7 +7082,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" @@ -7165,10 +7316,7 @@ "X-Generator": "Sulu/?(.+)?$\\;version:\\1" }, "icon": "Sulu.svg", - "implies": [ - "PHP", - "Symfony" - ], + "implies": "Symfony", "website": "sulu.io" }, "SumoMe": { @@ -7240,9 +7388,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": { @@ -7263,6 +7414,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" }, @@ -7349,6 +7501,10 @@ "meta": { "generator": "Textpattern" }, + "implies": [ + "PHP", + "MySQL" + ], "website": "textpattern.com" }, "Thelia": { @@ -7547,7 +7703,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))", @@ -8188,6 +8344,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" @@ -8198,6 +8357,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": { @@ -8217,10 +8377,7 @@ "env": "woocommerce", "html": "<!-- WooCommerce", "icon": "WooCommerce.png", - "implies": [ - "WordPress", - "PHP" - ], + "implies": "WordPress", "meta": { "generator": "WooCommerce ([\\d.]+)\\;version:\\1" }, @@ -8294,7 +8451,7 @@ "cats": [ 22 ], - "html": "<title>XAMPP(?: Version ([\\d\\.]+))?\\;version:\\1\\;confidence:90", + "html": "XAMPP(?: Version ([\\d\\.]+))?\\;version:\\1", "icon": "XAMPP.png", "implies": [ "Apache", @@ -8526,6 +8683,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 @@ -8562,6 +8731,7 @@ "env": "^zbxCallPostScripts$", "html": "]+zbxCallPostScripts", "icon": "Zabbix.png", + "implies": "PHP", "meta": { "Author": "ZABBIX SIA\\;confidence:70" }, @@ -8835,12 +9005,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/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/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/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/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/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) {