diff --git a/bin/wappalyzer-build b/bin/wappalyzer-build
index 9c4989728..b526af24b 100755
--- a/bin/wappalyzer-build
+++ b/bin/wappalyzer-build
@@ -41,7 +41,7 @@ do
rm "$dest"
fi
- #node $WAPPALYZER_NODE_PATH/node_modules/svg2png/bin/svg2png-cli "$svg" --width=32 --height=32 --output "$dest" || true
+ node $WAPPALYZER_NODE_PATH/node_modules/svg2png/bin/svg2png-cli "$svg" --width=32 --height=32 --output "$dest" || true
done
IFS="$OIFS"
@@ -52,22 +52,6 @@ node $WAPPALYZER_NODE_PATH/node_modules/imagemin-cli/cli.js $WAPPALYZER_ROOT/src
wappalyzer links
-# Mozilla Firefox
-echo "Building Firefox driver..."
-
-pushd $WAPPALYZER_ROOT/src/drivers/firefox > /dev/null
-
-node $WAPPALYZER_NODE_PATH/node_modules/jpm/bin/jpm xpi && mv *.xpi $WAPPALYZER_ROOT/build/wappalyzer_firefox.xpi
-
-popd > /dev/null
-
-# Google Chrome
-echo "Building Chrome driver..."
-
-pushd $WAPPALYZER_ROOT/src/drivers/chrome > /dev/null
-
-zip -qr $WAPPALYZER_ROOT/build/wappalyzer_chrome.zip .
-
# WebExtension
echo "Building WebExtension driver..."
diff --git a/bin/wappalyzer-links b/bin/wappalyzer-links
index 251cebbf2..ae75f4432 100755
--- a/bin/wappalyzer-links
+++ b/bin/wappalyzer-links
@@ -30,26 +30,11 @@ echo "Creating hard links..."
ln -f $path/wappalyzer.js $path/drivers/phantomjs
ln -f $path/apps.json $path/drivers/phantomjs
-ln -f $path/wappalyzer.js $path/drivers/firefox
-ln -f $path/apps.json $path/drivers/firefox/data
-ln -f $path/icons/*.png $path/drivers/firefox/data/images/icons
-ln -f $path/icons/*.svg $path/drivers/firefox/data/images/icons
-ln -f $path/utils/iframe.js $path/drivers/firefox/data/js
-
-ln -f $path/wappalyzer.js $path/drivers/chrome/js
-ln -f $path/apps.json $path/drivers/chrome
-ln -f $path/icons/*.png $path/drivers/chrome/images/icons
-ln -f $path/icons/*.svg $path/drivers/chrome/images/icons
-ln -f $path/utils/*.js $path/drivers/chrome/js
-
-if [ "$(compgen -G "$path/icons/converted/*.png" | head -n1)" ]; then
- ln -f $path/icons/converted/*.png $path/drivers/chrome/images/icons/converted
-fi
-
ln -f $path/wappalyzer.js $path/drivers/webextension/js
ln -f $path/apps.json $path/drivers/webextension
ln -f $path/icons/*.png $path/drivers/webextension/images/icons
ln -f $path/icons/*.svg $path/drivers/webextension/images/icons
+ln -f $path/utils/*.js $path/drivers/webextension/js
if [ "$(compgen -G "$path/icons/converted/*.png" | head -n1)" ]; then
ln -f $path/icons/converted/*.png $path/drivers/webextension/images/icons/converted
diff --git a/docker/Dockerfile b/docker/Dockerfile
index ec435c0bd..c4e7806c0 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -8,11 +8,19 @@ ENV WAPPALYZER_ROOT /home/wappalyzer/synced
ENV WAPPALYZER_NODE_PATH /home/wappalyzer/node
# Install packages
+RUN sed -i 's/^deb-src\ /\#deb-src\ /g' /etc/apt/sources.list
RUN sed -i 's/archive\.ubuntu\.com/au.archive.ubuntu.com/g' /etc/apt/sources.list
-RUN apt-get update && apt-get install -y sudo curl
-RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
-RUN apt-get install -y nodejs bzip2 zip libfreetype6 libfontconfig rsync
-RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+RUN sed -i 's/security\.ubuntu\.com/au.archive.ubuntu.com/g' /etc/apt/sources.list
+RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - && \
+ apt-get install -y \
+ nodejs \
+ bzip2 \
+ zip \
+ libfreetype6 \
+ libfontconfig \
+ rsync && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Add user
diff --git a/src/apps.json b/src/apps.json
index 04b2f0408..eca8e667e 100755
--- a/src/apps.json
+++ b/src/apps.json
@@ -9,6 +9,7 @@
"url": "/shop/catalog/browse\\?sessid=",
"website": "http://1and1.com"
},
+
"1C-Bitrix": {
"cats": [
"1"
@@ -587,6 +588,26 @@
"implies": "Java",
"website": "http://wicket.apache.org"
},
+ "ApexPages": {
+ "cats": [
+ "51"
+ ],
+ "headers": {
+ "X-Powered-By": "Salesforce.com ApexPages"
+ },
+ "icon": "ApexPages.png",
+ "implies": "Salesforce",
+ "website": "https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro.htm"
+ },
+ "Apostrophe CMS": {
+ "cats": [
+ "1"
+ ],
+ "html": "<[^>]+data-apos-refreshable[^>]",
+ "icon": "apostrophecms.svg",
+ "implies": "Node.js",
+ "website": "http://apostrophecms.org"
+ },
"AppNexus": {
"cats": [
"36"
@@ -942,6 +963,14 @@
"script": "boba(?:\\.min)?\\.js",
"website": "http://boba.space150.com"
},
+ "Bold Chat": {
+ "cats": [
+ "52"
+ ],
+ "icon": "BoldChat.png",
+ "script": "^https?://vmss\\.boldchat\\.com/aid/\\d{18}/bc\\.vms4/vms\\.js",
+ "website": "https://www.boldchat.com/"
+ },
"Bolt": {
"cats": [
"1"
@@ -1696,7 +1725,7 @@
],
"env": "^d3$",
"icon": "D3.png",
- "script": "d3(?:\\. v\\d+)?(?:\\.min)?\\.js",
+ "script": "/d3(?:\\. v\\d+)?(?:\\.min)?\\.js",
"website": "http://d3js.org"
},
"DHTMLX": {
@@ -2003,6 +2032,9 @@
"cats": [
"1"
],
+ "headers": {
+ "X-Dotclear-Static-Cache": ""
+ },
"icon": "Dotclear.png",
"implies": "PHP",
"website": "http://dotclear.org"
@@ -2466,7 +2498,7 @@
],
"icon": "FancyBox.png",
"implies": "jQuery",
- "script": "jquery\\.fancybox\\.pack\\.js$",
+ "script": "jquery\\.fancybox\\.pack\\.js(?:\\?v=([\\d.]+))?$\\;version:\\1",
"website": "http://fancyapps.com/fancybox"
},
"Fat-Free Framework": {
@@ -2545,6 +2577,18 @@
},
"website": "http://www.flexcmp.com/cms/home"
},
+ "FlexSlider": {
+ "cats": [
+ "5",
+ "7"
+ ],
+ "icon": "FlexSlider.png",
+ "implies": "jQuery",
+ "script": [
+ "jquery\\.flexslider(?:\\.min)?\\.js$"
+ ],
+ "website": "https://woocommerce.com/flexslider/"
+ },
"FluxBB": {
"cats": [
"2"
@@ -2577,6 +2621,17 @@
"icon": "Font Awesome.png",
"website": "http://fontawesome.io"
},
+ "Fork CMS": {
+ "cats": [
+ "1"
+ ],
+ "icon": "ForkCMS.png",
+ "implies": "Symfony",
+ "meta": {
+ "generator": "^Fork CMS$"
+ },
+ "website": "http://www.fork-cms.com/"
+ },
"Fortune3": {
"cats": [
"6"
@@ -2724,7 +2779,10 @@
"47"
],
"env": "^gerrit_",
- "html": "<(?:div|style) id=\"gerrit_",
+ "html": [
+ ">Gerrit Code Review\\s*\"\\s*\\(([0-9.]+)\\)\\;version:\\1",
+ "<(?:div|style) id=\"gerrit_"
+ ],
"icon": "gerrit.svg",
"implies": [
"Java",
@@ -2790,7 +2848,6 @@
},
"html": [
"",
""
],
"icon": "GitLab.svg",
@@ -3131,6 +3188,18 @@
},
"website": "http://www.greenvalley.nl/Public/Producten/Content_Management/CMS"
},
+ "Homeland": {
+ "cats": [
+ "1",
+ "2"
+ ],
+ "headers": {
+ "Set-Cookie:": "_homeland_"
+ },
+ "icon": "Homeland.png",
+ "implies": "Ruby on Rails",
+ "website": "https://gethomeland.com"
+ },
"HERE": {
"cats": [
"35"
@@ -3375,6 +3444,18 @@
},
"website": "http://hotarucms.org"
},
+ "Hotjar": {
+ "cats": [
+ "10"
+ ],
+ "env": [
+ "^HotLeadfactory$",
+ "^HotleadController$"
+ ],
+ "icon": "Hotjar.png",
+ "script": "^//static\\.hotjar\\.com/c/hotjar-",
+ "website": "https://www.hotjar.com"
+ },
"HubSpot": {
"cats": [
"32"
@@ -4130,6 +4211,14 @@
},
"website": "http://www.komodocms.com"
},
+ "Kontaktify": {
+ "cats": [
+ "5"
+ ],
+ "icon": "Kontaktify.png",
+ "script": "//(?:www\\.)?kontaktify\\.com/embed.js",
+ "website": "https://www.kontaktify.com"
+ },
"Koobi": {
"cats": [
"1"
@@ -4373,6 +4462,14 @@
"url": "\\.livejournal\\.com",
"website": "http://www.livejournal.com"
},
+ "LivePerson": {
+ "cats": [
+ "52"
+ ],
+ "icon": "LivePerson.png",
+ "script": "^https?://lptag\\.liveperson\\.net/tag/tag\\.js",
+ "website": "https://www.liveperson.com/"
+ },
"LiveStreet CMS": {
"cats": [
"1"
@@ -4747,6 +4844,18 @@
},
"website": "http://www.mediawiki.org"
},
+ "Medium": {
+ "cats": [
+ "1"
+ ],
+ "headers": {
+ "X-Powered-By": "Medium"
+ },
+ "icon": "Medium.svg",
+ "script": "medium\\.com",
+ "url": "^(?:www\\.)?medium\\.com",
+ "website": "https://medium.com"
+ },
"Meebo": {
"cats": [
"5"
@@ -4771,9 +4880,17 @@
"cats": [
"12"
],
- "env": "^Meteor$",
+ "env": [
+ "^Meteor$",
+ "^METEOR_VERSION$"
+ ],
"html": "]+__meteor-css__",
"icon": "Meteor.png",
+ "implies": [
+ "MongoDB",
+ "Node.js",
+ "jQuery"
+ ],
"website": "http://meteor.com"
},
"Methode": {
@@ -5256,6 +5373,17 @@
"icon": "Nepso.png",
"website": "http://nepso.com"
},
+ "Netlify": {
+ "cats": [
+ "22",
+ "31"
+ ],
+ "headers": {
+ "Server": "Netlify"
+ },
+ "icon": "Netlify.svg",
+ "website": "https://www.netlify.com/"
+ },
"Netmonitor": {
"cats": [
"10"
@@ -5327,6 +5455,19 @@
"icon": "node.js.png",
"website": "http://nodejs.org"
},
+ "NodeBB": {
+ "cats": [
+ "2"
+ ],
+ "headers": {
+ "X-Powered-By": "^NodeBB$"
+ },
+ "icon": "NodeBB.png",
+ "implies": "Node.js",
+ "script": "^/nodebb\\.min\\.js\\?",
+ "website": "https://nodebb.org"
+ },
+
"OWL Carousel": {
"cats": [
"5",
@@ -5390,6 +5531,14 @@
"script": "/web/js/(?:web\\.assets_common/|website\\.assets_frontend/)\\;confidence:25",
"website": "http://odoo.com"
},
+ "Olark": {
+ "cats": [
+ "52"
+ ],
+ "icon": "Olark.png",
+ "script": "^https?:\\/\\/static\\.olark\\.com\\/jsclient\\/loader1\\.js",
+ "website": "https://www.olark.com/"
+ },
"OmniTouch 8660 My Teamwork": {
"cats": [
"19"
@@ -6110,6 +6259,10 @@
"meta": {
"generator": "PrestaShop"
},
+ "headers": {
+ "Set-Cookie": "^PrestaShop",
+ "Powered-By": "^Prestashop$"
+ },
"website": "http://www.prestashop.com"
},
"Project Wonderful": {
@@ -6475,7 +6628,7 @@
],
"env": "^Reveal$",
"icon": "Reveal.js.png",
- "script": "reveal(?:\\.min)?\\.js",
+ "script": "(?:^|/)reveal(?:\\.min)?\\.js",
"website": "http://lab.hakim.se/reveal-js"
},
"Revel": {
@@ -6779,6 +6932,18 @@
"implies": "Express",
"website": "http://sailsjs.org"
},
+ "Salesforce": {
+ "cats": [
+ "53"
+ ],
+ "env": "^SFDC(?:App|Cmp|Page|SessionVars)$",
+ "headers": {
+ "Set-Cookie": "com\\.salesforce\\."
+ },
+ "html": "<[^>]+=\"brandQuaternaryFgrs\"",
+ "icon": "Salesforce.svg",
+ "website": "https://www.salesforce.com"
+ },
"Sarka-SPIP": {
"cats": [
"1"
@@ -6817,6 +6982,16 @@
],
"website": "http://schneider-electric.com"
},
+ "Scholica": {
+ "cats": [
+ "21"
+ ],
+ "headers": {
+ "X-Scholica-Version": ""
+ },
+ "icon": "Scholica.svg",
+ "website": "http://scholica.com"
+ },
"Scientific Linux": {
"cats": [
"28"
@@ -7288,6 +7463,17 @@
},
"website": "http://spidercontrol.net/ininet"
},
+ "SpinCMS": {
+ "cats": [
+ "1"
+ ],
+ "headers": {
+ "Set-Cookie": "spincms_session"
+ },
+ "icon": "SpinCMS.png",
+ "implies": "PHP",
+ "website": "http://www.spin.cw"
+ },
"Splunk": {
"cats": [
"19"
@@ -7596,6 +7782,15 @@
"url": "/typo3/",
"website": "http://www.typo3.org"
},
+ "Typecho": {
+ "cats": [
+ "11"
+ ],
+ "icon": "typecho.svg",
+ "implies": "PHP",
+ "url": "/admin/login\\.php?referer=http%3A%2F%2F",
+ "website": "http://typecho.org/"
+ },
"Taiga": {
"cats": [
"13"
@@ -7630,7 +7825,10 @@
],
"env": "^TEALIUMENABLED$",
"icon": "Tealium.png",
- "script": "//tags\\.tiqcdn\\.com/",
+ "script": [
+ "^//tags\\.tiqcdn\\.com/",
+ "/tealium/utag\\.js$"
+ ],
"website": "http://tealium.com"
},
"TeamCity": {
@@ -7652,9 +7850,12 @@
"cats": [
"1"
],
- "env": "Telescope",
+ "env": "^Telescope$",
"icon": "Telescope.png",
- "implies": "Meteor",
+ "implies": [
+ "Meteor",
+ "React"
+ ],
"website": "http://telescopeapp.org"
},
"Tengine": {
@@ -9786,16 +9987,6 @@
"script": "shine(?:\\.min)?\\.js",
"website": "http://bigspaceship.github.io/shine.js/"
},
- "spin.js": {
- "cats": [
- "12",
- "25"
- ],
- "env": "^Spinner$",
- "icon": "spin.js.png",
- "script": "spin(?:\\.min)?\\.js",
- "website": "http://fgnass.github.io/spin.js/"
- },
"swift.engine": {
"cats": [
"1"
@@ -9882,6 +10073,19 @@
},
"website": "http://www.vbulletin.com"
},
+ "vibecommerce": {
+ "cats": [
+ "6"
+ ],
+ "excludes": "PrestaShop",
+ "icon": "vibecommerce.png",
+ "implies": "PHP",
+ "meta": {
+ "designer": "vibecommerce",
+ "generator": "vibecommerce"
+ },
+ "website": "http://vibecommerce.com.br"
+ },
"viennaCMS": {
"cats": [
"1"
@@ -9890,16 +10094,6 @@
"icon": "default.svg",
"website": "http://www.viennacms.nl"
},
- "vis.js": {
- "cats": [
- "25"
- ],
- "env": "^vis$",
- "html": "]+?href=\"[^\"]+vis(?:\\.min)?\\.css",
- "icon": "vis.js.png",
- "script": "vis(?:\\.min)?\\.js",
- "website": "http://visjs.org"
- },
"webEdition": {
"cats": [
"1"
@@ -9919,6 +10113,22 @@
"icon": "webpack.svg",
"website": "http://webpack.github.io"
},
+ "wpCache": {
+ "cats": [
+ "23"
+ ],
+ "headers": {
+ "X-Powered-By": "wpCache(?:/([\\d.]+))?\\;version:\\1"
+ },
+ "html": "
+
+
diff --git a/src/icons/Scholica.svg b/src/icons/Scholica.svg
new file mode 100644
index 000000000..b35216915
--- /dev/null
+++ b/src/icons/Scholica.svg
@@ -0,0 +1,24 @@
+
+
\ No newline at end of file
diff --git a/src/icons/SpinCMS.png b/src/icons/SpinCMS.png
new file mode 100644
index 000000000..f6e947831
Binary files /dev/null and b/src/icons/SpinCMS.png differ
diff --git a/src/icons/Telescope.png b/src/icons/Telescope.png
old mode 100644
new mode 100755
index 65f03875a..59672bace
Binary files a/src/icons/Telescope.png and b/src/icons/Telescope.png differ
diff --git a/src/icons/apostrophecms.svg b/src/icons/apostrophecms.svg
new file mode 100644
index 000000000..d71a5b5db
--- /dev/null
+++ b/src/icons/apostrophecms.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/src/icons/cloudcart.svg b/src/icons/cloudcart.svg
index 9d608655b..5d5c41cf9 100644
--- a/src/icons/cloudcart.svg
+++ b/src/icons/cloudcart.svg
@@ -2,7 +2,7 @@