diff --git a/acasown.py b/acasown.py index 4662586..af598b6 100644 --- a/acasown.py +++ b/acasown.py @@ -1,12 +1,20 @@ import ripe import censys import bong +import webtech +import sys +import json +import ripe +import censys +import bong +import webtech import sys import json r = ripe.Ripe() -c = censys.Censys_WEB("dummyuser", "dummypass") +c = censys.Censys_WEB("stripped", "stripped") b = bong.Bing() +w = webtech.WebTech(options={'json': True}) targets = r.search(sys.argv[1]) print("Found " + str(len(targets)) + " ranges from Ripe") hosts = c.search_ipv4(c.build_query_ipv4(targets)) @@ -23,5 +31,44 @@ for host in hosts: for vhost in host_bing['vhosts']: if vhost not in result_vhosts: result_vhosts.append(vhost) - result.append({'ip': result_ip, 'urls': result_urls, 'vhosts': result_vhosts, 'protocols': host['protocols']}) -print(json.dumps(result)) \ No newline at end of file + result.append({'ip': result_ip, 'urls': result_urls, 'vhosts': list(dict.fromkeys(result_vhosts)), 'protocols': host['protocols']}) +print("Result has " + str(len(result)) + " entries") +final = {} +for host in result: + if "443/https" in host['protocols']: + try: + url = 'https://' + host['ip'] + report = w.start_from_url(url, timeout=2) + final[url] = report + except webtech.utils.ConnectionException: + print("Site down " + url) + if "80/http" in host['protocols']: + try: + url = 'http://' + host['ip'] + report = w.start_from_url('http://' + host['ip'], timeout=2) + final[url] = report + except webtech.utils.ConnectionException: + print("Site down " + url) + for vhost in host['vhosts']: + if "443/https" in host['protocols']: + try: + url = 'https://' + host['ip'] + ' (' + vhost + ')' + report = w.start_from_url(url, headers={'Host': vhost}, timeout=2) + final[url] = report + except webtech.utils.ConnectionException: + print("Site down " + url) + if "80/http" in host['protocols']: + try: + url = 'http://' + host['ip'] + ' (' + vhost + ')' + report = w.start_from_url('http://' + host['ip'], headers={'Host': vhost}, timeout=2) + final[url] = report + except webtech.utils.ConnectionException: + print("Site down " + url) + for urls in host['urls']: + try: + report = w.start_from_url(url, timeout=2) + final[url] = report + except webtech.utils.ConnectionException: + print("Site down " + url) + +print(json.dumps(final, indent=4)) diff --git a/censys/__init__.py b/censys/__init__.py index 59e0d8a..a1fcc31 100644 --- a/censys/__init__.py +++ b/censys/__init__.py @@ -53,13 +53,17 @@ class Censys_WEB: self.url = 'https://censys.io/' self.username = username self.password = password - if self.login(): - self.session = self.login() + self.session = self.login() self.ipv4 = [] def login(self): s = requests.session() - requests.get(self.url) + r = s.get(self.url + "/login") + html = BeautifulSoup(r.text, "lxml") + csrf = html.find('input', {'name': 'csrf_token'})['value'] + r = s.post(self.url + "/login", data={'login': self.username, 'password': self.password, 'csrf_token': csrf, 'came_from': '/'}, allow_redirects=False) + if r.status_code != 302: + print("Wrong creds for Censys") return s def build_query_ipv4(self, targets): diff --git a/webtech/.gitignore b/webtech/.gitignore new file mode 100644 index 0000000..2445018 --- /dev/null +++ b/webtech/.gitignore @@ -0,0 +1,110 @@ +webtech/apps.json + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +# editors +.vscode \ No newline at end of file diff --git a/webtech/__init__.py b/webtech/__init__.py index e69de29..1ef0a47 100644 --- a/webtech/__init__.py +++ b/webtech/__init__.py @@ -0,0 +1,3 @@ +from .webtech import WebTech + +name = "webtech" diff --git a/webtech/__main__.py b/webtech/__main__.py new file mode 100644 index 0000000..984ca38 --- /dev/null +++ b/webtech/__main__.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +import sys +from optparse import OptionParser + +from .__version__ import __version__ as VERSION +from .webtech import WebTech + + +def split_on_comma(option, opt_str, value, parser): + setattr(parser.values, option.dest, value.split(',')) + + +def main(): + """ + Main function when running from command line. + """ + parser = OptionParser(prog="webtech", version="%prog {}".format(VERSION)) + parser.add_option( + "-u", "--urls", + help="url(s) to scan", type="string", action="callback", callback=split_on_comma) + parser.add_option( + "--urls-file", "--ul", + help="url(s) list file to scan", type="string") + parser.add_option( + "--user-agent", "--ua", + help="use this user agent") + parser.add_option( + "--random-user-agent", "--rua", action="store_true", + help="use a random user agent", default=False) + parser.add_option( + "--database-file", "--db", + help="custom database file") + parser.add_option( + "--json", "--oj", action="store_true", + help="output json-encoded report", default=False) + parser.add_option( + "--grep", "--og", action="store_true", + help="output grepable report", default=False) + parser.add_option( + "--update-db", "--udb", action="store_true", + help="force update of remote db files", default=False) + parser.add_option( + "--timeout", type="float", help="maximum timeout for scrape requests", default=10) + + (options, _args) = parser.parse_args(sys.argv) + options = vars(options) + + if options.get('urls') is None and options.get('urls_file') is None and options.get('update_db') is None: + print("No URL(s) given!") + parser.print_help() + exit() + + wt = WebTech(options) + wt.start() + + +if __name__ == "__main__": + main() diff --git a/webtech/__version__.py b/webtech/__version__.py new file mode 100644 index 0000000..a7edee8 --- /dev/null +++ b/webtech/__version__.py @@ -0,0 +1,2 @@ +# DON'T EDIT THIS FILE +__version__ = "1.2.5" diff --git a/webtech/apps.json b/webtech/apps.json new file mode 100644 index 0000000..cf1c102 --- /dev/null +++ b/webtech/apps.json @@ -0,0 +1,13379 @@ +{ + "$schema": "../schema.json", + "apps": { + "1C-Bitrix": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "BITRIX_", + "X-Powered-CMS": "Bitrix Site Manager" + }, + "html": "(?:]+components/bitrix|(?:src|href)=\"/bitrix/(?:js|templates))", + "icon": "1C-Bitrix.png", + "implies": "PHP", + "script": "1c-bitrix", + "website": "http://www.1c-bitrix.ru" + }, + "91App": { + "cats": [ + 6 + ], + "icon": "91app.png", + "script": "https\\:\\/\\/track\\.91app\\.io\\/track\\.js\\?", + "website": "https://www.91app.com/" + }, + "3dCart": { + "cats": [ + 1, + 6 + ], + "cookies": { + "3dvisit": "" + }, + "headers": { + "X-Powered-By": "3DCART" + }, + "icon": "3dCart.png", + "script": "(?:twlh(?:track)?\\.asp|3d_upsell\\.js)", + "website": "http://www.3dcart.com" + }, + "A-Frame": { + "cats": [ + 25 + ], + "html": "]*>", + "icon": "A-Frame.svg", + "implies": "three.js", + "js": { + "AFRAME.version": "^(.+)$\\;version:\\1" + }, + "script": "/?([\\d.]+)?/aframe(?:\\.min)?\\.js\\;version:\\1", + "website": "https://aframe.io" + }, + "AD EBiS": { + "cats": [ + 10 + ], + "html": [ + "", + "icon": "Business Catalyst.png", + "script": "CatalystScripts", + "website": "http://businesscatalyst.com" + }, + "BuySellAds": { + "cats": [ + 36 + ], + "script": "^https?://s\\d\\.buysellads\\.com/", + "icon": "BuySellAds.png", + "js": { + "_bsa": "", + "_bsaPRO": "", + "_bsap": "", + "_bsap_serving_callback": "" + }, + "website": "http://buysellads.com" + }, + "CDN77": { + "cats": [ + 31 + ], + "headers": { + "Server": "^CDN77-Turbo$" + }, + "icon": "CDN77.png", + "website": "https://www.cdn77.com" + }, + "CFML": { + "cats": [ + 27 + ], + "icon": "CFML.png", + "website": "http://adobe.com/products/coldfusion-family.html" + }, + "CKEditor": { + "cats": [ + 24 + ], + "icon": "CKEditor.png", + "js": { + "CKEDITOR": "", + "CKEDITOR.version": "^(.+)$\\;version:\\1", + "CKEDITOR_BASEPATH": "" + }, + "website": "http://ckeditor.com" + }, + "CMS Made Simple": { + "cats": [ + 1 + ], + "cookies": { + "CMSSESSID": "" + }, + "icon": "CMS Made Simple.png", + "implies": "PHP", + "meta": { + "generator": "CMS Made Simple" + }, + "website": "http://cmsmadesimple.org" + }, + "CMSimple": { + "cats": [ + 1 + ], + "implies": "PHP", + "meta": { + "generator": "CMSimple( [\\d.]+)?\\;version:\\1" + }, + "website": "http://www.cmsimple.org/en" + }, + "CPG Dragonfly": { + "cats": [ + 1 + ], + "headers": { + "X-Powered-By": "^Dragonfly CMS" + }, + "icon": "CPG Dragonfly.png", + "implies": "PHP", + "meta": { + "generator": "CPG Dragonfly" + }, + "website": "http://dragonflycms.org" + }, + "CS Cart": { + "cats": [ + 6 + ], + "html": [ + " Powered by (?:]+cs-cart\\.com|CS-Cart)", + "\\.cm-noscript[^>]+" + ], + "icon": "CS Cart.png", + "implies": "PHP", + "js": { + "fn_compare_strings": "" + }, + "website": "http://www.cs-cart.com" + }, + "CacheFly": { + "cats": [ + 31 + ], + "headers": { + "Server": "^CFS ", + "X-CF1": "", + "X-CF2": "" + }, + "icon": "CacheFly.png", + "website": "http://www.cachefly.com" + }, + "Caddy": { + "cats": [ + 22 + ], + "headers": { + "Server": "^Caddy$" + }, + "icon": "caddy.svg", + "implies": "Go", + "website": "http://caddyserver.com" + }, + "CakePHP": { + "cats": [ + 18 + ], + "cookies": { + "cakephp": "" + }, + "icon": "CakePHP.png", + "implies": "PHP", + "meta": { + "application-name": "CakePHP" + }, + "website": "http://cakephp.org" + }, + "Captch Me": { + "cats": [ + 16, + 36 + ], + "icon": "Captch Me.svg", + "js": { + "Captchme": "" + }, + "script": "^https?://api\\.captchme\\.net/", + "website": "http://captchme.com" + }, + "Carbon Ads": { + "cats": [ + 36 + ], + "html": "<[a-z]+ [^>]*id=\"carbonads-container\"", + "icon": "Carbon Ads.png", + "js": { + "_carbonads": "" + }, + "script": "//(?:engine|srv)\\.carbonads\\.com\\/", + "website": "http://carbonads.net" + }, + "Cargo": { + "cats": [ + 1 + ], + "html": "]+Cargo feed", + "icon": "Cargo.png", + "implies": "PHP", + "meta": { + "cargo_title": "" + }, + "script": "/cargo\\.", + "website": "http://cargocollective.com" + }, + "Catberry.js": { + "cats": [ + 12, + 18 + ], + "headers": { + "X-Powered-By": "Catberry" + }, + "icon": "Catberry.js.png", + "implies": "Node.js", + "js": { + "catberry": "", + "catberry.version": "^(.+)$\\;version:\\1" + }, + "website": "http://catberry.org" + }, + "CentOS": { + "cats": [ + 28 + ], + "headers": { + "Server": "CentOS", + "X-Powered-By": "CentOS" + }, + "icon": "CentOS.png", + "website": "http://centos.org" + }, + "Chameleon": { + "cats": [ + 1 + ], + "icon": "Chameleon.png", + "implies": [ + "Apache", + "PHP" + ], + "meta": { + "generator": "chameleon-cms" + }, + "website": "http://chameleon-system.de" + }, + "Chamilo": { + "cats": [ + 21 + ], + "headers": { + "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" + }, + "html": "\">Chamilo ([\\d.]+)\\;version:\\1", + "icon": "Chamilo.png", + "implies": "PHP", + "meta": { + "generator": "Chamilo ([\\d.]+)\\;version:\\1" + }, + "website": "http://www.chamilo.org" + }, + "Chart.js": { + "cats": [ + 25 + ], + "icon": "Chart.js.svg", + "js": { + "Chart": "\\;confidence:50", + "Chart.defaults.doughnut": "", + "chart.ctx.bezierCurveTo": "" + }, + "script": [ + "/Chart(?:\\.bundle)?(?:\\.min)?\\.js\\;confidence:75", + "chartjs\\.org/dist/([\\d.]+(?:-[^/]+)?|master|latest)/Chart.*\\.js\\;version:\\1", + "cdnjs\\.cloudflare\\.com/ajax/libs/Chart\\.js/([\\d.]+(?:-[^/]+)?)/Chart.*\\.js\\;version:\\1", + "cdn\\.jsdelivr\\.net/(?:npm|gh/chartjs)/chart\\.js@([\\d.]+(?:-[^/]+)?|latest)/dist/Chart.*\\.js\\;version:\\1" + ], + "website": "https://www.chartjs.org" + }, + "Chartbeat": { + "cats": [ + 10 + ], + "icon": "Chartbeat.png", + "js": { + "_sf_async_config": "", + "_sf_endpt": "" + }, + "script": "chartbeat\\.js", + "website": "http://chartbeat.com" + }, + "Cherokee": { + "cats": [ + 22 + ], + "headers": { + "Server": "^Cherokee(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Cherokee.png", + "website": "http://www.cherokee-project.com" + }, + "CherryPy": { + "cats": [ + 18, + 22 + ], + "headers": { + "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon": "CherryPy.png", + "implies": "Python", + "website": "http://www.cherrypy.org" + }, + "Chevereto": { + "cats": [ + 7 + ], + "meta": { + "generator": "^Chevereto ?([0-9.]+)?$\\;version:\\1" + }, + "script": "/chevereto\\.js", + "html": "Powered by ", + "icon": "chevereto.png", + "implies": "PHP", + "website": "https://chevereto.com/" + }, + "Chitika": { + "cats": [ + 36 + ], + "icon": "Chitika.png", + "js": { + "ch_client": "", + "ch_color_site_link": "" + }, + "script": "scripts\\.chitika\\.net/", + "website": "http://chitika.com" + }, + "Ckan": { + "cats": [ + 1 + ], + "headers": { + "Access-Control-Allow-Headers": "X-CKAN-API-KEY", + "Link": "; rel=shortlink" + }, + "icon": "Ckan.png", + "implies": [ + "Python", + "Solr", + "Java", + "PostgreSQL" + ], + "meta": { + "generator": "^ckan ?([0-9.]+)$\\;version:\\1" + }, + "website": "http://ckan.org/" + }, + "Clarity": { + "cats": [ + 18 + ], + "html": [ + "]*href=\"[^\"]*clr-ui(?:\\.min)?\\.css" + ], + "js": { + "ClarityIcons": "" + }, + "script": "clr-angular(?:\\.umd)?(?:\\.min)?\\.js", + "icon": "clarity.svg", + "implies": [ + "Angular" + ], + "website": "https://clarity.design/" + }, + "ClickHeat": { + "cats": [ + 10 + ], + "icon": "ClickHeat.png", + "implies": "PHP", + "js": { + "clickHeatServer": "" + }, + "script": "clickheat.*\\.js", + "website": "http://www.labsmedia.com/clickheat/index.html" + }, + "ClickTale": { + "cats": [ + 10 + ], + "icon": "ClickTale.png", + "js": { + "clickTaleStartEventSignal": "" + }, + "website": "http://www.clicktale.com" + }, + "Clicky": { + "cats": [ + 10 + ], + "icon": "Clicky.png", + "js": { + "clicky": "" + }, + "script": "static\\.getclicky\\.com", + "website": "http://getclicky.com" + }, + "Clientexec": { + "cats": [ + 6 + ], + "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", + "icon": "Clientexec.png", + "website": "http://www.clientexec.com" + }, + "Clipboard.js": { + "cats": [ + 19 + ], + "icon": "Clipboard.js.svg", + "script": "clipboard(?:-([\\d.]+))?(?:\\.min)?\\.js\\;version:\\1", + "website": "https://clipboardjs.com/" + }, + "CloudCart": { + "cats": [ + 6 + ], + "icon": "cloudcart.svg", + "meta": { + "author": "^CloudCart LLC$" + }, + "script": "/cloudcart-(?:assets|storage)/", + "website": "http://cloudcart.com" + }, + "CloudFlare": { + "cats": [ + 31 + ], + "headers": { + "Server": "^cloudflare$", + "cf-cache-status": "", + "cf-ray": "" + }, + "icon": "CloudFlare.svg", + "cookies": { + "__cfduid": "" + }, + "js": { + "CloudFlare": "" + }, + "website": "http://www.cloudflare.com" + }, + "Cloudcoins": { + "cats": [ + 56 + ], + "js": { + "CLOUDCOINS": "" + }, + "script": "https?://cdn\\.cloudcoins\\.co/javascript/cloudcoins\\.min\\.js", + "website": "https://cloudcoins.co" + }, + "Cloudera": { + "cats": [ + 34 + ], + "headers": { + "Server": "cloudera" + }, + "icon": "Cloudera.png", + "website": "http://www.cloudera.com" + }, + "Coaster CMS": { + "cats": [ + 1 + ], + "icon": "coaster-cms.png", + "implies": "Laravel", + "meta": { + "generator": "^Coaster CMS v([\\d.]+)$\\;version:\\1" + }, + "website": "https://www.coastercms.org" + }, + "CodeIgniter": { + "cats": [ + 18 + ], + "cookies": { + "ci_csrf_token": "^(.+)$\\;version:\\1?2+:", + "ci_session": "", + "exp_last_activity": "", + "exp_tracker": "" + }, + "html": "]+name=\"ci_csrf_token\"\\;version:2+", + "icon": "CodeIgniter.png", + "implies": "PHP", + "website": "http://codeigniter.com" + }, + "CodeMirror": { + "cats": [ + 19 + ], + "icon": "CodeMirror.png", + "js": { + "CodeMirror": "", + "CodeMirror.version": "^(.+)$\\;version:\\1" + }, + "website": "http://codemirror.net" + }, + "CoinHive": { + "cats": [ + 56 + ], + "icon": "CoinHive.svg", + "js": { + "CoinHive": "" + }, + "script": [ + "\\/(?:coinhive|(authedmine))(?:\\.min)?\\.js\\;version:\\1?opt-in:", + "coinhive\\.com/lib" + ], + "url": "https?://cnhv\\.co/", + "website": "https://coinhive.com" + }, + "CoinHive Captcha": { + "cats": [ + 16, + 56 + ], + "html": "(?:]+class=\"coinhive-captcha[^>]+data-key|]+data-key[^>]+class=\"coinhive-captcha)", + "icon": "CoinHive.svg", + "script": "https?://authedmine\\.com/(?:lib/captcha|captcha)", + "website": "https://coinhive.com" + }, + "Coinhave": { + "cats": [ + 56 + ], + "icon": "coinhave.png", + "script": "https?://coin-have\\.com/c/[0-9a-zA-Z]{4}\\.js", + "website": "https://coin-have.com/" + }, + "Coinimp": { + "cats": [ + 56 + ], + "icon": "coinimp.png", + "js": { + "Client.Anonymous": "\\;confidence:50" + }, + "script": "https?://www\\.hashing\\.win/scripts/min\\.js", + "website": "https://www.coinimp.com" + }, + "Coinlab": { + "cats": [ + 56 + ], + "icon": "coinlab.png", + "js": { + "Coinlab": "" + }, + "script": "https?://coinlab\\.biz/lib/coinlab\\.js\\?id=", + "website": "https://coinlab.biz/en" + }, + "ColorMeShop": { + "cats": [ + 6 + ], + "icon": "colormeshop.png", + "js": { + "Colorme": "" + }, + "website": "https://shop-pro.jp" + }, + "Comandia": { + "cats": [ + 6 + ], + "html": "]+=['\"]//cdn\\.mycomandia\\.com", + "icon": "Comandia.svg", + "js": { + "Comandia": "" + }, + "website": "http://comandia.com" + }, + "Combeenation": { + "cats": [ + 6 + ], + "html": "]+src=\"[^>]+portal\\.combeenation\\.com", + "icon": "Combeenation.png", + "website": "https://www.combeenation.com" + }, + "Commerce Server": { + "cats": [ + 6 + ], + "headers": { + "COMMERCE-SERVER-SOFTWARE": "" + }, + "icon": "Commerce Server.png", + "implies": "Microsoft ASP.NET", + "website": "http://commerceserver.net" + }, + "CompaqHTTPServer": { + "cats": [ + 22 + ], + "headers": { + "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon": "HP.svg", + "website": "http://www.hp.com" + }, + "Concrete5": { + "cats": [ + 1 + ], + "icon": "Concrete5.png", + "implies": "PHP", + "js": { + "CCM_IMAGE_PATH": "" + }, + "cookies": { + "CONCRETE5": "" + }, + "meta": { + "generator": "^concrete5 - ([\\d.]+)$\\;version:\\1" + }, + "script": "/concrete/js/", + "website": "https://concrete5.org" + }, + "Connect": { + "cats": [ + 18 + ], + "headers": { + "X-Powered-By": "^Connect$" + }, + "icon": "Connect.png", + "implies": "Node.js", + "website": "http://www.senchalabs.org/connect" + }, + "Contao": { + "cats": [ + 1 + ], + "html": [ + "", + "]+(?:typolight|contao)\\.css" + ], + "icon": "Contao.png", + "implies": "PHP", + "meta": { + "generator": "^Contao Open Source CMS$" + }, + "website": "http://contao.org" + }, + "Contenido": { + "cats": [ + 1 + ], + "icon": "Contenido.png", + "implies": "PHP", + "meta": { + "generator": "Contenido ([\\d.]+)\\;version:\\1" + }, + "website": "http://contenido.org/en" + }, + "Contensis": { + "cats": [ + 1 + ], + "icon": "Contensis.png", + "implies": [ + "Java", + "CFML" + ], + "meta": { + "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" + }, + "website": "https://zengenti.com/en-gb/products/contensis" + }, + "ContentBox": { + "cats": [ + 1, + 11 + ], + "icon": "ContentBox.png", + "implies": "Adobe ColdFusion", + "meta": { + "generator": "ContentBox powered by ColdBox" + }, + "website": "http://www.gocontentbox.org" + }, + "Contentful": { + "cats": [ + 1 + ], + "html": "<[^>]+(?:https?:)?//(?:assets|downloads|images|videos)\\.(?:ct?fassets\\.net|contentful\\.com)", + "icon": "Contentful.svg", + "website": "http://www.contentful.com" + }, + "ConversionLab": { + "cats": [ + 10 + ], + "icon": "ConversionLab.png", + "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", + "website": "http://www.trackset.it/conversionlab" + }, + "Coppermine": { + "cats": [ + 7 + ], + "html": "", + "website": "https://www.docker.com/" + }, + "Dojo": { + "cats": [ + 59 + ], + "icon": "Dojo.png", + "js": { + "dojo": "", + "dojo.version.major": "^(.+)$\\;version:\\1" + }, + "script": "([\\d.]+)/dojo/dojo(?:\\.xd)?\\.js\\;version:\\1", + "website": "https://dojotoolkit.org" + }, + "Dokeos": { + "cats": [ + 21 + ], + "headers": { + "X-Powered-By": "Dokeos" + }, + "html": "(?:Portal ]+>Dokeos|@import \"[^\"]+dokeos_blue)", + "icon": "Dokeos.png", + "implies": [ + "PHP", + "Xajax", + "jQuery", + "CKEditor" + ], + "meta": { + "generator": "Dokeos" + }, + "website": "https://dokeos.com" + }, + "DokuWiki": { + "cats": [ + 8 + ], + "cookies": { + "DokuWiki": "" + }, + "html": [ + "]+id=\"dokuwiki__>", + "]+href=\"#dokuwiki__" + ], + "icon": "DokuWiki.png", + "implies": "PHP", + "meta": { + "generator": "^DokuWiki( Release [\\d-]+)?\\;version:\\1" + }, + "website": "https://www.dokuwiki.org" + }, + "Dotclear": { + "cats": [ + 1 + ], + "headers": { + "X-Dotclear-Static-Cache": "" + }, + "icon": "Dotclear.png", + "implies": "PHP", + "website": "http://dotclear.org" + }, + "DoubleClick Ad Exchange (AdX)": { + "cats": [ + 36 + ], + "icon": "DoubleClick.svg", + "script": [ + "googlesyndication\\.com/pagead/show_ads\\.js", + "tpc\\.googlesyndication\\.com/safeframe", + "googlesyndication\\.com.*abg\\.js" + ], + "website": "http://www.doubleclickbygoogle.com/solutions/digital-marketing/ad-exchange/" + }, + "DoubleClick Campaign Manager (DCM)": { + "cats": [ + 36 + ], + "icon": "DoubleClick.svg", + "script": "2mdn\\.net", + "website": "http://www.doubleclickbygoogle.com/solutions/digital-marketing/campaign-manager/" + }, + "DoubleClick Floodlight": { + "cats": [ + 36 + ], + "icon": "DoubleClick.svg", + "script": "https?://fls\\.doubleclick\\.net", + "website": "http://support.google.com/ds/answer/6029713?hl=en" + }, + "DoubleClick for Publishers (DFP)": { + "cats": [ + 36 + ], + "icon": "DoubleClick.svg", + "script": "googletagservices\\.com/tag/js/gpt(?:_mobile)?\\.js", + "website": "http://www.google.com/dfp" + }, + "DovetailWRP": { + "cats": [ + 1 + ], + "html": "]* href=\"\\/DovetailWRP\\/", + "icon": "DovetailWRP.png", + "implies": "Microsoft ASP.NET", + "script": "\\/DovetailWRP\\/", + "website": "http://www.dovetailinternet.com" + }, + "Doxygen": { + "cats": [ + 4 + ], + "html": "(?:|" + ], + "icon": "Google Tag Manager.png", + "js": { + "google_tag_manager": "", + "googletag": "" + }, + "website": "http://www.google.com/tagmanager" + }, + "Google Wallet": { + "cats": [ + 41 + ], + "icon": "Google Wallet.png", + "script": [ + "checkout\\.google\\.com", + "wallet\\.google\\.com" + ], + "website": "http://wallet.google.com" + }, + "Google Web Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "gws" + }, + "icon": "Google.svg", + "website": "http://en.wikipedia.org/wiki/Google_Web_Server" + }, + "Google Web Toolkit": { + "cats": [ + 18 + ], + "icon": "Google Web Toolkit.png", + "implies": "Java", + "js": { + "__gwt_": "" + }, + "meta": { + "gwt:property": "" + }, + "website": "http://developers.google.com/web-toolkit" + }, + "Graffiti CMS": { + "cats": [ + 1 + ], + "cookies": { + "graffitibot": "" + }, + "icon": "Graffiti CMS.png", + "implies": "Microsoft ASP.NET", + "meta": { + "generator": "Graffiti CMS ([^\"]+)\\;version:\\1" + }, + "script": "/graffiti\\.js", + "website": "http://graffiticms.codeplex.com" + }, + "Grav": { + "cats": [ + 1 + ], + "icon": "Grav.png", + "implies": "PHP", + "meta": { + "generator": "GravCMS(?:\\s([\\d.]+))?\\;version:\\1" + }, + "website": "http://getgrav.org" + }, + "Gravatar": { + "cats": [ + 19 + ], + "html": "<[^>]+gravatar\\.com/avatar/", + "icon": "Gravatar.png", + "js": { + "Gravatar": "" + }, + "website": "http://gravatar.com" + }, + "Gravity Forms": { + "cats": [ + 19 + ], + "html": [ + "
]*gform_wrapper", + "
]*gform_body", + "
    ]*class=(?:\"|')[^>]*gform_fields", + "]*href=(?:\"|')[^>]*wp-content/plugins/gravityforms/css/" + ], + "icon": "gravityforms.svg", + "implies": "WordPress", + "script": "/wp-content/plugins/gravityforms/js/[^/]+\\.js\\?ver=([\\d.]+)$\\;version:\\1", + "website": "http://gravityforms.com" + }, + "Green Valley CMS": { + "cats": [ + 1 + ], + "html": "]+/dsresource\\?objectid=", + "icon": "Green Valley CMS.png", + "implies": "Apache Tomcat", + "meta": { + "DC.identifier": "/content\\.jsp\\?objectid=" + }, + "website": "http://www.greenvalley.nl/Public/Producten/Content_Management/CMS" + }, + "HERE": { + "cats": [ + 35 + ], + "icon": "HERE.png", + "script": "https?://js\\.cit\\.api\\.here\\.com/se/([\\d.]+)\\/\\;version:\\1", + "website": "http://developer.here.com" + }, + "HHVM": { + "cats": [ + 22 + ], + "headers": { + "X-Powered-By": "HHVM/?([\\d.]+)?\\;version:\\1" + }, + "icon": "HHVM.png", + "implies": "PHP\\;confidence:75", + "website": "http://hhvm.com" + }, + "HP ChaiServer": { + "cats": [ + 22 + ], + "headers": { + "Server": "HP-Chai(?:Server|SOE)(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "HP.svg", + "website": "http://hp.com" + }, + "HP Compact Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "HP_Compact_Server(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "HP.svg", + "website": "http://hp.com" + }, + "HP ProCurve": { + "cats": [ + 37 + ], + "icon": "HP.svg", + "website": "http://hp.com/networking" + }, + "HP System Management": { + "cats": [ + 46 + ], + "headers": { + "Server": "HP System Management" + }, + "icon": "HP.svg", + "website": "http://hp.com" + }, + "HP iLO": { + "cats": [ + 22, + 46 + ], + "headers": { + "Server": "HP-iLO-Server(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "HP.svg", + "website": "http://hp.com" + }, + "HTTP/2": { + "cats": [ + 19 + ], + "excludes": "SPDY", + "headers": { + "X-Firefox-Spdy": "h2" + }, + "icon": "http2.png", + "website": "https://http2.github.io" + }, + "Haddock": { + "cats": [ + 4 + ], + "html": "

    Produced by Haddock version ([0-9.]+)

    \\;version:\\1", + "script": "haddock-util\\.js", + "website": "http://www.haskell.org/haddock/" + }, + "Hammer.js": { + "cats": [ + 59 + ], + "icon": "Hammer.js.png", + "js": { + "Ha.VERSION": "^(.+)$\\;version:\\1", + "Hammer": "", + "Hammer.VERSION": "^(.+)$\\;version:\\1" + }, + "script": "hammer(?:\\.min)?\\.js", + "website": "https://hammerjs.github.io" + }, + "Handlebars": { + "cats": [ + 12 + ], + "html": "<[^>]*type=[^>]text\\/x-handlebars-template", + "icon": "Handlebars.png", + "js": { + "Handlebars": "", + "Handlebars.VERSION": "^(.+)$\\;version:\\1" + }, + "script": "handlebars(?:\\.runtime)?(?:-v([\\d.]+?))?(?:\\.min)?\\.js\\;version:\\1", + "website": "http://handlebarsjs.com" + }, + "Haravan": { + "cats": [ + 6 + ], + "icon": "Haravan.png", + "js": { + "Haravan": "" + }, + "script": "haravan.*\\.js", + "website": "https://www.haravan.com" + }, + "Haskell": { + "cats": [ + 27 + ], + "icon": "Haskell.png", + "website": "http://wiki.haskell.org/Haskell" + }, + "HeadJS": { + "cats": [ + 59 + ], + "html": "<[^>]*data-headjs-load", + "icon": "HeadJS.png", + "js": { + "head.browser.name": "" + }, + "script": "head\\.(?:core|load)(?:\\.min)?\\.js", + "website": "http://headjs.com" + }, + "Heap": { + "cats": [ + 10 + ], + "icon": "Heap.png", + "js": { + "heap": "" + }, + "script": "heap-\\d+\\.js", + "website": "http://heapanalytics.com" + }, + "Hello Bar": { + "cats": [ + 5 + ], + "icon": "Hello Bar.png", + "js": { + "HelloBar": "" + }, + "script": "hellobar\\.js", + "website": "http://hellobar.com" + }, + "Hexo": { + "cats": [ + 57 + ], + "html": [ + "Powered by ]*>Hexo]*>Created with Highcharts ([\\d.]*)\\;version:\\1", + "icon": "Highcharts.png", + "js": { + "Highcharts": "", + "Highcharts.version": "^(.+)$\\;version:\\1" + }, + "script": "highcharts.*\\.js", + "website": "https://www.highcharts.com" + }, + "Highlight.js": { + "cats": [ + 19 + ], + "icon": "Highlight.js.png", + "js": { + "hljs.highlightBlock": "", + "hljs.listLanguages": "" + }, + "script": "/(?:([\\d.])+/)?highlight(?:\\.min)?\\.js\\;version:\\1", + "website": "https://highlightjs.org/" + }, + "Highstock": { + "cats": [ + 25 + ], + "html": "]*>Created with Highstock ([\\d.]*)\\;version:\\1", + "icon": "Highcharts.png", + "script": "highstock[.-]?([\\d\\.]*\\d).*\\.js\\;version:\\1", + "website": "http://highcharts.com/products/highstock" + }, + "Hinza Advanced CMS": { + "cats": [ + 1, + 6 + ], + "icon": "hinza_advanced_cms.svg", + "implies": "Laravel", + "meta": { + "generator": "hinzacms" + }, + "website": "http://hinzaco.com" + }, + "Bloomreach": { + "cats": [ + 1 + ], + "html": "<[^>]+/binaries/(?:[^/]+/)*content/gallery/", + "icon": "Bloomreach.png", + "website": "https://developers.bloomreach.com" + }, + "Hogan.js": { + "cats": [ + 12 + ], + "icon": "Hogan.js.png", + "js": { + "Hogan": "" + }, + "script": [ + "hogan-[.-]([\\d.]*\\d)[^/]*\\.js\\;version:\\1", + "([\\d.]+)/hogan(?:\\.min)?\\.js\\;version:\\1" + ], + "website": "https://twitter.github.io/hogan.js/" + }, + "Homeland": { + "cats": [ + 1, + 2 + ], + "cookies": { + "_homeland_": "" + }, + "icon": "Homeland.png", + "implies": "Ruby on Rails", + "website": "https://gethomeland.com" + }, + "Hotaru CMS": { + "cats": [ + 1 + ], + "cookies": { + "hotaru_mobile": "" + }, + "icon": "Hotaru CMS.png", + "implies": "PHP", + "meta": { + "generator": "Hotaru CMS" + }, + "website": "http://hotarucms.org" + }, + "Hotjar": { + "cats": [ + 10 + ], + "icon": "Hotjar.png", + "js": { + "HotLeadfactory": "", + "HotleadController": "", + "hj.apiUrlBase": "" + }, + "script": "^//static\\.hotjar\\.com/c/hotjar-", + "website": "https://www.hotjar.com" + }, + "HubSpot": { + "cats": [ + 32 + ], + "html": "", + "icon": "InProces.png", + "script": "brein/inproces/website/websitefuncties\\.js", + "website": "http://www.brein.nl/oplossing/product/website" + }, + "Incapsula": { + "cats": [ + 31 + ], + "headers": { + "X-CDN": "Incapsula" + }, + "icon": "Incapsula.png", + "website": "http://www.incapsula.com" + }, + "Includable": { + "cats": [ + 18 + ], + "headers": { + "X-Includable-Version": "" + }, + "icon": "Includable.svg", + "website": "http://includable.com" + }, + "Indexhibit": { + "cats": [ + 1 + ], + "html": "<(?:link|a href) [^>]+ndxz-studio", + "implies": [ + "PHP", + "Apache", + "Exhibit" + ], + "meta": { + "generator": "Indexhibit" + }, + "website": "http://www.indexhibit.org" + }, + "Indico": { + "cats": [ + 1 + ], + "cookies": { + "MAKACSESSION": "" + }, + "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", + "icon": "Indico.png", + "website": "http://indico-software.org" + }, + "Indy": { + "cats": [ + 22 + ], + "headers": { + "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" + }, + "website": "http://indyproject.org" + }, + "InfernoJS": { + "cats": [ + 12 + ], + "icon": "InfernoJS.png", + "js": { + "Inferno": "", + "Inferno.version": "^(.+)$\\;version:\\1" + }, + "website": "https://infernojs.org" + }, + "Infusionsoft": { + "cats": [ + 32 + ], + "html": [ + "]*name=\"infusionsoft_version\" [^>]*value=\"([^>]*)\" [^>]*\\/>\\;version:\\1", + "]*value=\"([^>]*)\" [^>]*name=\"infusionsoft_version\" [^>]*\\/>\\;version:\\1" + ], + "icon": "infusionsoft.svg", + "website": "http://infusionsoft.com" + }, + "Inspectlet": { + "cats": [ + 10 + ], + "html": [ + "" + ], + "icon": "inspectlet.png", + "js": { + "__insp": "", + "__inspld": "" + }, + "script": [ + "cdn\\.inspectlet\\.com" + ], + "website": "https://www.inspectlet.com/" + }, + "Instabot": { + "cats": [ + 5, + 10, + 32, + 52, + 58 + ], + "icon": "Instabot.png", + "js": { + "Instabot": "" + }, + "script": "/rokoInstabot\\.js", + "website": "https://instabot.io/" + }, + "InstantCMS": { + "cats": [ + 1 + ], + "cookies": { + "InstantCMS[logdate]": "" + }, + "icon": "InstantCMS.png", + "implies": "PHP", + "meta": { + "generator": "InstantCMS" + }, + "website": "http://www.instantcms.ru" + }, + "Intel Active Management Technology": { + "cats": [ + 22, + 46 + ], + "headers": { + "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" + }, + "icon": "Intel Active Management Technology.png", + "website": "http://intel.com" + }, + "IntenseDebate": { + "cats": [ + 15 + ], + "icon": "IntenseDebate.png", + "script": "intensedebate\\.com", + "website": "http://intensedebate.com" + }, + "Intercom": { + "cats": [ + 10 + ], + "icon": "Intercom.png", + "js": { + "Intercom": "" + }, + "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", + "website": "https://www.intercom.com" + }, + "Intershop": { + "cats": [ + 6 + ], + "icon": "Intershop.png", + "script": "(?:is-bin|INTERSHOP)", + "website": "http://intershop.com" + }, + "Invenio": { + "cats": [ + 50 + ], + "cookies": { + "INVENIOSESSION": "" + }, + "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", + "icon": "Invenio.png", + "website": "http://invenio-software.org" + }, + "Inwemo": { + "cats": [ + 56 + ], + "icon": "inwemo.png", + "js": { + "Inwemo": "" + }, + "script": "https?://cdn\\.inwemo\\.com/inwemo\\.min\\.js", + "website": "https://inwemo.com/" + }, + "Ionic": { + "cats": [ + 18 + ], + "icon": "ionic.png", + "implies": "Angular", + "js": { + "Ionic.config": "", + "Ionic.version": "^(.+)$\\;version:\\1" + }, + "website": "https://ionicframework.com" + }, + "Ionicons": { + "cats": [ + 17 + ], + "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", + "icon": "Ionicons.png", + "website": "http://ionicons.com" + }, + "JAlbum": { + "cats": [ + 7 + ], + "icon": "JAlbum.png", + "implies": "Java", + "meta": { + "generator": "JAlbum( [\\d.]+)?\\;version:\\1" + }, + "website": "http://jalbum.net/en" + }, + "JBoss Application Server": { + "cats": [ + 22 + ], + "headers": { + "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" + }, + "icon": "JBoss Application Server.png", + "website": "http://jboss.org/jbossas.html" + }, + "JBoss Web": { + "cats": [ + 22 + ], + "excludes": "Apache Tomcat", + "headers": { + "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" + }, + "icon": "JBoss Web.png", + "implies": "JBoss Application Server", + "website": "http://jboss.org/jbossweb" + }, + "JET Enterprise": { + "cats": [ + 6 + ], + "headers": { + "powered": "jet-enterprise" + }, + "icon": "JET Enterprise.svg", + "website": "http://www.jetecommerce.com.br/" + }, + "JS Charts": { + "cats": [ + 25 + ], + "icon": "JS Charts.png", + "js": { + "JSChart": "" + }, + "script": "jscharts.*\\.js", + "website": "http://www.jscharts.com" + }, + "JSEcoin": { + "cats": [ + 56 + ], + "icon": "JSEcoin.png", + "js": { + "jseMine": "" + }, + "script": "^(?:https):?//load\\.jsecoin\\.com/load/", + "website": "https://jsecoin.com/" + }, + "JTL Shop": { + "cats": [ + 6 + ], + "cookies": { + "JTLSHOP": "" + }, + "html": "(?:]+name=\"JTLSHOP|]*>JekyllJenkins ver\\. ([\\d.]+)\\;version:\\1", + "icon": "Jenkins.png", + "implies": "Java", + "js": { + "jenkinsCIGlobal": "", + "jenkinsRules": "" + }, + "website": "https://jenkins.io/" + }, + "Jetshop": { + "cats": [ + 6 + ], + "html": "<(?:div|aside) id=\"jetshop-branding\">", + "icon": "Jetshop.png", + "js": { + "JetshopData": "" + }, + "website": "http://jetshop.se" + }, + "Jetty": { + "cats": [ + 22 + ], + "headers": { + "Server": "Jetty(?:\\(([\\d\\.]*\\d+))?\\;version:\\1" + }, + "icon": "Jetty.png", + "implies": "Java", + "website": "http://www.eclipse.org/jetty" + }, + "Jimdo": { + "cats": [ + 1 + ], + "headers": { + "X-Jimdo-Instance": "", + "X-Jimdo-Wid": "" + }, + "icon": "jimdo.png", + "url": "\\.jimdo\\.com/", + "js": { + "jimdoData": "", + "jimdo_Data": "" + }, + "website": "https://www.jimdo.com" + }, + "Jirafe": { + "cats": [ + 10, + 32 + ], + "icon": "Jirafe.png", + "js": { + "jirafe": "" + }, + "script": "/jirafe\\.js", + "website": "https://docs.jirafe.com" + }, + "Jive": { + "cats": [ + 19 + ], + "headers": { + "X-JIVE-USER-ID": "", + "X-JSL": "", + "X-Jive-Flow-Id": "", + "X-Jive-Request-Id": "", + "x-jive-chrome-wrapped": "" + }, + "icon": "Jive.png", + "website": "http://www.jivesoftware.com" + }, + "JobberBase": { + "cats": [ + 19 + ], + "icon": "JobberBase.png", + "implies": "PHP", + "js": { + "Jobber": "" + }, + "meta": { + "generator": "Jobberbase" + }, + "website": "http://www.jobberbase.com" + }, + "Joomla": { + "cats": [ + 1 + ], + "headers": { + "X-Content-Encoded-By": "Joomla! ([\\d.]+)\\;version:\\1" + }, + "html": "(?:]+id=\"wrapper_r\"|<(?:link|script)[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", + "icon": "Joomla.svg", + "implies": "PHP", + "js": { + "Joomla": "", + "jcomments": "" + }, + "meta": { + "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" + }, + "url": "option=com_", + "website": "https://www.joomla.org" + }, + "K2": { + "cats": [ + 19 + ], + "html": "", + "icon": "Lightspeed.svg", + "script": "http://assets\\.webshopapp\\.com", + "url": "seoshop.webshopapp.com", + "website": "http://www.lightspeedhq.com/products/ecommerce/" + }, + "Lighty": { + "cats": [ + 18 + ], + "cookies": { + "lighty_version": "" + }, + "icon": "Lighty.png", + "implies": "PHP", + "website": "https://gitlab.com/lighty/framework" + }, + "LimeSurvey": { + "cats": [ + 19 + ], + "headers": { + "generator": "LimeSurvey" + }, + "icon": "LimeSurvey.png", + "website": "http://limesurvey.org/" + }, + "LinkSmart": { + "cats": [ + 36 + ], + "icon": "LinkSmart.png", + "js": { + "LS_JSON": "", + "LinkSmart": "", + "_mb_site_guid": "" + }, + "script": "^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", + "website": "http://linksmart.com" + }, + "Linkedin": { + "cats": [ + 5 + ], + "icon": "Linkedin.svg", + "script": "//platform\\.linkedin\\.com/in\\.js", + "website": "http://linkedin.com" + }, + "List.js": { + "cats": [ + 59 + ], + "icon": "List.js.png", + "js": { + "List": "" + }, + "script": "^list\\.(?:min\\.)?js$", + "website": "http://listjs.com" + }, + "LiteSpeed": { + "cats": [ + 22 + ], + "headers": { + "Server": "^LiteSpeed$" + }, + "icon": "LiteSpeed.svg", + "website": "http://litespeedtech.com" + }, + "Lithium": { + "cats": [ + 1 + ], + "cookies": { + "LithiumVisitor": "" + }, + "html": " ]+Powered by Lithium", + "icon": "Lithium.png", + "implies": "PHP", + "js": { + "LITHIUM": "" + }, + "website": "https://www.lithium.com" + }, + "LiveAgent": { + "cats": [ + 52 + ], + "icon": "LiveAgent.png", + "js": { + "LiveAgent": "" + }, + "website": "https://www.ladesk.com" + }, + "LiveChat": { + "cats": [ + 52 + ], + "icon": "LiveChat.png", + "script": "cdn\\.livechatinc\\.com/.*tracking\\.js", + "website": "http://livechatinc.com" + }, + "LiveHelp": { + "cats": [ + 52, + 53 + ], + "icon": "LiveHelp.png", + "script": "^https?://server\\.livehelp\\.it/widgetjs/[0-9]{5}/[0-9]{1,3}\\.js", + "website": "http://www.livehelp.it" + }, + "LiveJournal": { + "cats": [ + 11 + ], + "icon": "LiveJournal.png", + "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 + ], + "headers": { + "X-Powered-By": "LiveStreet CMS" + }, + "icon": "LiveStreet CMS.png", + "implies": "PHP", + "js": { + "LIVESTREET_SECURITY_KEY": "" + }, + "website": "http://livestreetcms.com" + }, + "Livefyre": { + "cats": [ + 15 + ], + "html": "<[^>]+(?:id|class)=\"livefyre", + "icon": "Livefyre.png", + "js": { + "FyreLoader": "", + "L.version": "^(.+)$\\;confidence:0\\;version:\\1", + "LF.CommentCount": "", + "fyre": "" + }, + "script": "livefyre_init\\.js", + "website": "http://livefyre.com" + }, + "Liveinternet": { + "cats": [ + 10 + ], + "html": [ + "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", + "", + "", + "]+localfocus", + "icon": "LocalFocus.png", + "implies": [ + "Angular", + "D3" + ], + "website": "https://www.localfocus.nl/en/" + }, + "Locomotive": { + "cats": [ + 1 + ], + "html": "]*/sites/[a-z\\d]{24}/theme/stylesheets", + "icon": "Locomotive.png", + "implies": [ + "Ruby on Rails", + "MongoDB" + ], + "website": "http://www.locomotivecms.com" + }, + "Lodash": { + "cats": [ + 59 + ], + "excludes": "Underscore.js", + "icon": "Lo-dash.png", + "js": { + "_.VERSION": "^(.+)$\\;confidence:0\\;version:\\1", + "_.differenceBy": "" + }, + "script": "lodash.*\\.js", + "website": "http://www.lodash.com" + }, + "Logitech Media Server": { + "cats": [ + 22, + 38 + ], + "headers": { + "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" + }, + "icon": "Logitech Media Server.png", + "website": "http://www.mysqueezebox.com" + }, + "Lotus Domino": { + "cats": [ + 22 + ], + "headers": { + "Server": "Lotus-Domino" + }, + "icon": "Lotus Domino.png", + "implies": "Java", + "website": "http://www-01.ibm.com/software/lotus/products/domino" + }, + "LOU": { + "cats": [ + 58 + ], + "icon": "LOU.png", + "script": "cdn\\.louassist\\.com*", + "website": "https://www.louassist.com" + }, + "Lua": { + "cats": [ + 27 + ], + "headers": { + "X-Powered-By": "\\bLua(?: ([\\d.]+))?\\;version:\\1" + }, + "icon": "Lua.png", + "website": "http://www.lua.org" + }, + "Lucene": { + "cats": [ + 34 + ], + "icon": "Lucene.png", + "implies": "Java", + "website": "http://lucene.apache.org/core/" + }, + "Luigi’s Box": { + "cats": [ + 10, + 29 + ], + "icon": "Luigisbox.svg", + "js": { + "Luigis": "" + }, + "website": "https://www.luigisbox.com" + }, + "M.R. Inc BoxyOS": { + "cats": [ + 28 + ], + "icon": "M.R. Inc.png", + "website": "http://mrincworld.com" + }, + "M.R. Inc SiteFrame": { + "cats": [ + 18 + ], + "headers": { + "Powered-By": "M\\.R\\. Inc SiteFrame" + }, + "icon": "M.R. Inc.png", + "website": "http://mrincworld.com" + }, + "M.R. Inc Webserver": { + "cats": [ + 22 + ], + "headers": { + "Server": "M\\.R\\. Inc Webserver" + }, + "icon": "M.R. Inc.png", + "implies": [ + "M.R. Inc BoxyOS" + ], + "website": "http://mrincworld.com" + }, + "MHonArc": { + "cats": [ + 50 + ], + "html": "\\;version:\\1", + "icon": "mhonarc.png", + "website": "http://www.mhonarc.at" + }, + "MODX": { + "cats": [ + 1 + ], + "headers": { + "X-Powered-By": "^MODX" + }, + "html": [ + "]+>Powered by MODX", + "<(?:link|script)[^>]+assets/snippets/\\;confidence:20", + "]+id=\"ajaxSearch_form\\;confidence:20", + "]+id=\"ajaxSearch_input\\;confidence:20" + ], + "icon": "MODX.png", + "implies": "PHP", + "js": { + "MODX": "", + "MODX_MEDIA_PATH": "" + }, + "meta": { + "generator": "MODX[^\\d.]*([\\d.]+)?\\;version:\\1" + }, + "website": "http://modx.com" + }, + "MYPAGE Platform": { + "cats": [ + 1, + 6 + ], + "cookies": { + "botble_session": "" + }, + "headers": { + "CMS-Version": "^(.+)$\\;version:\\1\\;confidence:0" + }, + "icon": "mypage-platform.png", + "implies": "Laravel", + "website": "https://www.mypage.vn" + }, + "MadAdsMedia": { + "cats": [ + 36 + ], + "icon": "MadAdsMedia.png", + "js": { + "setMIframe": "", + "setMRefURL": "" + }, + "script": "^https?://(?:ads-by|pixel)\\.madadsmedia\\.com/", + "website": "http://madadsmedia.com" + }, + "Magento": { + "cats": [ + 6 + ], + "cookies": { + "frontend": "\\;confidence:50" + }, + "html": [ + "