signature

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AmazonCloudFrontSignature = Signature{
	Name:        "Amazon CloudFront",
	Description: "A fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds, all within a developer-friendly environment.",
	Cpe:         "",

	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "via",
			Value: `\.cloudfront\.net \(CloudFront\)`,
		}, {
			Name:  "x-cache",
			Value: `from cloudfront`,
		}},
	},
	OnlySameHost: true,
}
View Source
var AmazonS3Signature = Signature{
	Name:        "Amazon S3",
	Description: "Cloud Object Storage — Experience Reliability & Scalability With AWS Online Storage Solutions.",
	Cpe:         "",

	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `AmazonS3`,
		}},
	},
	OnlySameHost: true,
}
View Source
var AngularJsSignature = Signature{
	Name:        "AngularJS",
	Description: "A discontinued free and open-source JavaScript-based web framework for developing single-page applications.",
	Cpe:         "cpa:/a:angularjs:angular.js",

	DetectPattern: DetectPattern{
		Bodies: []string{
			`angular`,
		},
		Urls: []string{
			`/angular-`,
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`\* @license AngularJS v(\d+\.\d+\.\d+)`,
			`http:\/\/errors.angularjs.org\/(\d+\.\d+\.\d+(-rc\.\d+)?)`,
		},
	},

	OnlySameHost: false,
}
View Source
var ApacheSignature = Signature{
	Name:        "Apache HTTP Server",
	Description: "Apache is a free and open-source cross-platform web server software.",
	Cpe:         "cpe:/a:apache:http_server",
	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "server",
			Value: "Apache",
		}},
	},
	VersionPattern: VersionPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `Apache/(\d+\.\d+\.\d+)`,
		}},
	},
	OnlySameHost: true,
}
View Source
var AwsElbSignature = Signature{
	Name:        "AWS ELB",
	Description: "Elastic Load Balancing automatically distributes incoming application traffic across multiple targets, such as Amazon EC2 instances, containers, IP addresses, and Lambda functions.",
	Cpe:         "",

	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `awselb`,
		}},
		Cookies: []Cookie{{
			Name: "AWSALB",
		}, {
			Name: "AWSALBCORS",
		}, {
			Name: "AWSELB",
		}, {
			Name: "AWSELBCORS",
		}},
	},
	VersionPattern: VersionPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `awselb/(\d+\.\d+)`,
		}},
	},

	OnlySameHost: true,
}
View Source
var BackboneJsSignature = Signature{
	Name:        "Backbone.js",
	Description: "Backbone.js is a JavaScript rich-client web app framework based on the model–view–controller design paradigm, intended to connect to an API over a RESTful JSON interface.",
	Cpe:         "cpe:/a:backbone_project:backbone",

	DetectPattern: DetectPattern{
		Bodies: []string{
			`Backbone.history has already been started`,
			`t.VERSION="(\d+\.\d+\.\d+)"`,
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`t.VERSION="(\d+\.\d+\.\d+)"`,
		},
	},
}
View Source
var BootstrapSignature = Signature{
	Name:        "Bootstrap",
	Description: "Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins.",
	Cpe:         "cpe:/a:getbootstrap:bootstrap",

	DetectPattern: DetectPattern{
		Urls: []string{
			"/bootstrap/",
			"/bootstrap.min.css",
			"/bootstrap.min.js",
		},
		Bodies: []string{
			`Bootstrap`,
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`/bootstrap/(\d+\.\d+\.\d+)`,
		},
		Bodies: []string{
			`\* Bootstrap v(\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var ChartJsSignature = Signature{
	Name:        "Chart.js",
	Description: "Simple yet flexible JavaScript charting library for the modern web.",
	Cpe:         "cpe:/a:chartjs:chartjs",

	DetectPattern: DetectPattern{
		Urls: []string{
			"chart.js",
		},
		Bodies: []string{
			"Chart.js",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`Chart\.js v(\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var ClaritySignature = Signature{
	Name:        "Microsoft Clarity",
	Description: "Clarity is a free product that captures how people use your site. Setup is easy and you'll start getting data in minutes.",
	Cpe:         "cpe:/a:microsoft:clarity",

	DetectPattern: DetectPattern{
		Urls: []string{
			"clarity.js",
		},
		Bodies: []string{
			"clarity-js",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`www\.clarity\.ms\/s\/(\d+\.\d+\.\d+)\/clarity\.js`,
		},
		Bodies: []string{
			`/\* clarity-js v([0-9.]+):`,
		},
	},
}
View Source
var CoreJsSignature = Signature{
	Name:        "core-js",
	Description: "Modular standard library for JavaScript.",
	Cpe:         "",

	DetectPattern: DetectPattern{
		Bodies: []string{
			"github.com/zloirock/core-js",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`https://github.com/zloirock/core-js/blob/v(\d+\.\d+\.\d+)/LICENSE`,
		},
	},
}
View Source
var DojoToolkitSignature = Signature{
	Name:        "Dojo Toolkit",
	Description: "A fast, small, and feature-rich JavaScript library.",
	Cpe:         "cpe:/a:dojo:dojo_toolkit",

	DetectPattern: DetectPattern{
		Urls: []string{
			"dojo.js",
		},
		Bodies: []string{
			"dojotoolkit",
			"dojo.version",
		},
	},
	VersionFuncs: []VersionFunc{
		func(res *crawler.Response) string {
			matches := regexp.MustCompile(`dojo\.version={major:(\d+),minor:(\d+),patch:(\d+),`).FindStringSubmatch(res.Body)
			if len(matches) > 3 {
				return matches[1] + "." + matches[2] + "." + matches[3]
			}
			return ""
		},
	},
}
View Source
var JQueryBxSliderSignature = Signature{
	Name:        "jQuery bxSlider",
	Description: "bxSlider is a fully responsive jQuery content slider.",
	Cpe:         "cpe:/a:bxslider:bxslider",

	DetectPattern: DetectPattern{
		Urls: []string{
			"bxslider",
		},
		Bodies: []string{
			"bxSlider",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`bxslider/(\d+\.\d+\.\d+)/`,
		},
		Bodies: []string{
			`\* bxSlider v(\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var JQueryCookieSignature = Signature{
	Name:        "jQuery Cookie",
	Description: "A simple, lightweight jQuery plugin for reading, writing and deleting cookies.",
	Cpe:         "cpe:/a:jquery.cookie_project:jquery.cookie",

	DetectPattern: DetectPattern{
		Urls: []string{
			"jquery-cookie",
		},
		Bodies: []string{
			"jQuery Cookie Plugin",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`jquery-cookie[@/](\d+\.\d+\.\d+)`,
		},
		Bodies: []string{
			`jQuery Cookie Plugin v(\d+\.\d+)`,
		},
	},
}
View Source
var JQueryMigrateSignature = Signature{
	Name:        "jQuery Migrate",
	Description: "jQuery Migrate makes older code compatible with jQuery 3.0+.",
	Cpe:         "cpe:/a:jquery_migrate_project:jquery_migrate",

	DetectPattern: DetectPattern{
		Urls: []string{
			"jquery-migrate",
		},
		Bodies: []string{
			"jQuery Migrate",
			"jQuery.migrate",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`jquery-migrate\.min\.js\?ver=(\d+\.\d+\.\d+)`,
		},
		Bodies: []string{
			`jQuery Migrate v(\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var JQuerySignature = Signature{
	Name:        "jQuery",
	Description: "A fast, small, and feature-rich JavaScript library.",
	Cpe:         "cpe:/a:jquery:jquery",

	DetectPattern: DetectPattern{
		Urls: []string{
			"jquery",
		},
		Bodies: []string{
			"jquery",
			"jQuery",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`jquery[@/-](\d+\.\d+\.\d+)`,
		},
		Bodies: []string{
			`jQuery v(\d+\.\d+\.\d+)`,
			`jQuery JavaScript Library v(\d+\.\d+\.\d+)`,
			`var C="(\d+\.\d+\.\d+)"`,
			`d="(\d+\.\d+\.\d+)"`,
		},
	},
}
View Source
var JQueryUiSignature = Signature{
	Name:        "jquery-ui",
	Description: "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.",
	Cpe:         "cpe:/a:jqueryui:jquery_ui",

	DetectPattern: DetectPattern{
		Urls: []string{
			"jquery-ui",
		},
		Bodies: []string{
			"jQuery UI CSS Framework",
			"/*! jQuery UI",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`jquery-ui-(\d+\.\d+\.\d+)`,
		},
		Bodies: []string{
			`jQuery UI CSS Framework (\d+\.\d+\.\d+)`,
			`/*! jQuery UI - v(\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var KongaSignature = Signature{
	Name:        "Konga",
	Description: "An open source tool that enables you to manage your Kong API Gateway with ease.",
	Cpe:         "cpe:/a:konga_project:konga",

	DetectPattern: DetectPattern{
		Urls: []string{
			"konga",
		},
		Bodies: []string{
			"KONGA_CONFIG",
			"konga_version",
			"konga_settings",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`konga-loader\.js\?r=(\d+\.\d+\.\d+)`,
		},
		Bodies: []string{
			`konga_version = "(\d+\.\d+\.\d+)"`,
			`\.js\?r=(\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var LodashSignature = Signature{
	Name:        "Lodash",
	Description: "A modern JavaScript utility library delivering modularity, performance & extras.",
	Cpe:         "cpe:/a:lodash:lodash",

	DetectPattern: DetectPattern{
		Urls: []string{
			"lodash",
		},
		Bodies: []string{
			"lodash",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`var VERSION = '(\d+\.\d+\.\d+)'`,
		},
	},
}
View Source
var ModPerlSignature = Signature{
	Name:        "mod_perl",
	Description: "mod_perl brings together the full power of the Perl programming language and the Apache HTTP server.",
	Cpe:         "cpe:/a:apache:mod_perl",

	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "server",
			Value: "mod_perl",
		}},
	},
	VersionPattern: VersionPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `mod_perl/(\d+\.\d+\.\d+)`,
		}},
	},
	OnlySameHost: true,
}
View Source
var MomentJsSignature = Signature{
	Name:        "Moment.js",
	Description: "Parse, validate, manipulate, and display dates and times in JavaScript.",
	Cpe:         "cpe:/a:jqueryui:jquery_ui",

	DetectPattern: DetectPattern{
		Urls: []string{
			"moment",
		},
		Bodies: []string{
			"moment",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`//! version : (\d+\.\d+\.\d+)`,
			`VERSION = '(\d+\.\d+\.\d+)'`,
			`b.version="(\d+\.\d+\.\d+)"`,
		},
	},
}
View Source
var NginxSignature = Signature{
	Name:        "Nginx",
	Description: "An HTTP web server, reverse proxy, content cache, load balancer, TCP/UDP proxy server, and mail proxy server.",
	Cpe:         "cpe:/a:nginx:nginx",

	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "server",
			Value: "nginx",
		}},
	},
	VersionPattern: VersionPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `nginx/(\d+\.\d+\.\d+)`,
		}},
	},
	OnlySameHost: true,
}
View Source
var OpenSSLSignature = Signature{
	Name:        "OpenSSL",
	Description: "OpenSSL is a software library for applications that provide secure communications over computer networks.",
	Cpe:         "cpe:/a:openssl:openssl",

	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "server",
			Value: "OpenSSL",
		}},
	},
	VersionPattern: VersionPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `OpenSSL/(\d+\.\d+\.\d+[a-zA-Z]?)`,
		}},
	},

	OnlySameHost: true,
}
View Source
var OtherHostUrl = "http://other.com"
View Source
var PerlSignature = Signature{
	Name:        "Perl",
	Description: "Perl is a highly capable, feature-rich programming language with over 37 years of development.",
	Cpe:         "cpe:/a:perl:perl",

	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "server",
			Value: "Perl",
		}},
	},
	VersionPattern: VersionPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `Perl/v?(\d+\.\d+\.\d+)`,
		}},
	},

	OnlySameHost: true,
}
View Source
var PhpSignature = Signature{
	Name:        "PHP",
	Description: "A general-purpose scripting language geared towards web development.",
	Cpe:         "cpe:/a:php:php",

	DetectPattern: DetectPattern{
		Headers: []Header{{
			Name:  "server",
			Value: "PHP",
		}, {
			Name:  "x-powered-by",
			Value: "PHP",
		}},
		Bodies: []string{
			`\.php`,
			`<\?php`,
		},
	},
	VersionPattern: VersionPattern{
		Headers: []Header{{
			Name:  "server",
			Value: `PHP/(\d+\.\d+\.\d+)`,
		}, {
			Name:  "x-powered-by",
			Value: `PHP/(\d+\.\d+\.\d+)`,
		}},
	},

	OnlySameHost: true,
}
View Source
var SameHost = "example.com"
View Source
var SameHostUrl = "http://example.com"
View Source
var StyledComponentsSignature = Signature{
	Name:        "styled components",
	Description: "styled-components is the result of wondering how we could enhance CSS for styling React component systems.",
	Cpe:         "",

	DetectPattern: DetectPattern{
		Urls: []string{
			"styled-components",
		},
		Bodies: []string{
			"data-styled=\"true\"",
			"data-styled-version",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`data-styled-version="(\d+\.\d+\.\d+)"`,
			`t\["data-styled-version"\]="(\d+\.\d+\.\d+)"`,
			`\[data-styled-version="(\d+\.\d+\.\d+)"\]`,
			`setAttribute\("data-styled-version","(\d+\.\d+\.\d+)"\)`,
			`<style data-styled="true" data-styled-version="(\d+\.\d+\.\d+)">`,
		},
	},
}
View Source
var SwiperSignature = Signature{
	Name:        "Swiper",
	Description: "Most modern mobile touch slider and framework with hardware accelerated transitions.",
	Cpe:         "cpe:/a:swiperjs:swiper",

	DetectPattern: DetectPattern{
		Urls: []string{
			"npm/swiper@",
		},
		Bodies: []string{
			`\* Swiper `,
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`npm/swiper@(\d+\.\d+\.\d+)/`,
		},
		Bodies: []string{
			`\* Swiper (\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var UnderscoreSignature = Signature{
	Name:        "Underscore.js",
	Description: "A JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.",
	Cpe:         "cpe:/a:underscorejs:underscore",

	DetectPattern: DetectPattern{
		Urls: []string{
			"underscore",
		},
		Bodies: []string{
			"Underscore.js",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`Underscore\.js (\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var UnpkgSignature = Signature{
	Name:        "UNPKG",
	Description: "unpkg is a fast, global content delivery network for everything on npm.",
	Cpe:         "",

	DetectPattern: DetectPattern{
		Urls: []string{
			"unpkg.com",
		},
	},
}
View Source
var VueJsSignature = Signature{
	Name:        "Vue.js",
	Description: "Vue.js is a progressive JavaScript framework for building user interfaces.",
	Cpe:         "cpe:/a:vuejs:vuejs",

	DetectPattern: DetectPattern{
		Urls: []string{
			"/vue.js",
			"/vue.min.js",
		},
		Bodies: []string{
			"Vue.js",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			"Vue.js v(\\d+\\.\\d+\\.\\d+)",
			"version=\"(\\d+\\.\\d+\\.\\d+)\"",
		},
	},
}
View Source
var WebVitalsSignature = Signature{
	Name:        "Web Vitals",
	Description: "Web Vitals are quality signals key to delivering great UX on the web (https://web.dev/vitals).",
	Cpe:         "cpe:/a:magazine3:core_web_vitals:",

	DetectPattern: DetectPattern{
		Urls: []string{
			"/web-vitals@",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`/web-vitals@v?(\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var WordpressPluginAllInOneSEOSignature = Signature{
	Name:        "WordPress Plugin - All in One SEO Pack",
	Description: "The original WordPress SEO plugin, downloaded over 65,000,000 times since 2007.",
	Cpe:         "cpe:/a:semperfiwebdesign:all_in_one_seo_pack",

	DetectPattern: DetectPattern{
		Bodies: []string{
			"All in One SEO",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`All in One SEO (\d+\.\d+\.\d+)`,
			`All in One SEO \(AIOSEO\) (\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var WordpressPluginContactForm7Signature = Signature{
	Name:        "WordPress Plugin - Contact Form 7",
	Description: "Contact Form 7 can manage multiple contact forms, plus you can customize the form and the mail contents flexibly with simple markup. The form supports Ajax-powered submitting, CAPTCHA, Akismet spam filtering and so on.",
	Cpe:         "cpe:/a:takayukister:contact_form_7",

	DetectPattern: DetectPattern{
		Urls: []string{
			`/wp-content/plugins/contact-form-7/`,
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`/wp-content/plugins/contact-form-7/.+\?ver=(\d+\.\d+\.\d+)`,
		},
	},
}
View Source
var WordpressPluginPageNaviSignature = Signature{
	Name:        "WordPress Plugin - WP-PageNavi",
	Description: "Want to replace the old ← Older posts | Newer posts → links with some page links? This plugin provides the wp_pagenavi() template tag which generates fancy pagination links.",

	DetectPattern: DetectPattern{
		Urls: []string{
			"/plugins/wp-pagenavi",
		},
		Bodies: []string{
			"for WP-PageNavi plugin",
		},
	},
	VersionPattern: VersionPattern{
		Urls: []string{
			`/plugins/wp-pagenavi/pagenavi-css\.css\?ver=([0-9.]+)`,
		},
	},
}
View Source
var WordpressPluginYoastSEOSignature = Signature{
	Name:        "WordPress Plugin - Yoast SEO",
	Description: "Improve your WordPress SEO: Write better content and have a fully optimized WordPress site using the Yoast SEO plugin.",
	Cpe:         "cpe:/a:yoast:yoast_seo",

	DetectPattern: DetectPattern{
		Bodies: []string{
			"<!-- This site is optimized with the Yoast SEO plugin",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`<!-- This site is optimized with the Yoast SEO plugin v(\d+\.\d+) -`,
		},
	},
}
View Source
var WordpressSignature = Signature{
	Name:        "WordPress",
	Description: "WordPress is a free and open-source content management system (CMS) written in PHP and paired with a MySQL or MariaDB database. Features include a plugin architecture and a template system, referred to within WordPress as Themes.",
	Cpe:         "cpe:/a:wordpress:wordpress",

	DetectPattern: DetectPattern{
		Bodies: []string{
			"WordPress",
		},
	},
	VersionPattern: VersionPattern{
		Bodies: []string{
			`WordPress (\d+\.\d+\.\d+)`,
		},
	},

	OnlySameHost: true,
}

Functions

func Detect added in v0.3.0

func Detect(response *crawler.Response, signature *Signature, targetHost string) bool

func GetVersion added in v0.3.0

func GetVersion(response *crawler.Response, signature *Signature) string

Types

type Cookie struct {
	Name  string
	Value string
}

type DetectPattern added in v0.3.0

type DetectPattern struct {
	Bodies  []string
	Urls    []string
	Headers []Header
	Cookies []Cookie
}
type Header struct {
	Name  string
	Value string
}

type Signature added in v0.3.0

type Signature struct {
	Name        string
	Description string
	Cpe         string

	DetectPattern  DetectPattern
	VersionPattern VersionPattern

	VersionFuncs []VersionFunc

	OnlySameHost bool
}

type TestCase added in v0.3.0

type TestCase struct {
	// contains filtered or unexported fields
}

type VersionFunc added in v0.4.0

type VersionFunc func(res *crawler.Response) string

type VersionPattern added in v0.3.0

type VersionPattern struct {
	Bodies  []string
	Urls    []string
	Headers []Header
	Cookies []Cookie
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL