Documentation ¶
Index ¶
- type App
- type AppRegexp
- type AppsDefinition
- type Category
- type Detector
- type JSObject
- type Match
- type Result
- type StringArray
- type Wappalyzer
- func (w *Wappalyzer) AppDefinitions() *AppsDefinition
- func (w *Wappalyzer) DOM(dom string) map[string][]*Match
- func (w *Wappalyzer) Headers(headers map[string]string) map[string][]*Match
- func (w *Wappalyzer) Init(config []byte) error
- func (w *Wappalyzer) JS(jsObjects []*JSObject) map[string][]*Match
- func (w *Wappalyzer) JSResultsToObjects(in interface{}) []*JSObject
- func (w *Wappalyzer) JSToInject() string
- func (w *Wappalyzer) MergeMatches(results []map[string][]*Match) map[string]*am.WebTech
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct { Cats StringArray `json:"cats"` CatNames []string `json:"category_names"` Cookies map[string]string `json:"cookies"` Headers map[string]string `json:"headers"` Meta map[string]string `json:"meta"` JS map[string]string `json:"js"` HTML StringArray `json:"html"` Script StringArray `json:"script"` URL StringArray `json:"url"` Website string `json:"website"` Implies StringArray `json:"implies"` Icon string `json:"icon"` HTMLRegex []AppRegexp `json:"-"` JSRegex []AppRegexp `json:"-"` ScriptRegex []AppRegexp `json:"-"` URLRegex []AppRegexp `json:"-"` HeaderRegex []AppRegexp `json:"-"` MetaRegex []AppRegexp `json:"-"` CookieRegex []AppRegexp `json:"-"` }
App type encapsulates all the data about an App from apps.json
type AppsDefinition ¶
type AppsDefinition struct { Apps map[string]App `json:"apps"` Cats map[string]Category `json:"categories"` }
AppsDefinition type encapsulates the json encoding of the whole apps.json file
type Category ¶
type Category struct {
Name string `json:"name"`
}
Category names defined by wappalyzer
type Detector ¶
type Detector interface { Init(config []byte) error // injects js into the current browser context to detect versions via js objects JS(jsObjects []*JSObject) map[string][]*Match // runs detector against headers/cookies Headers(headers map[string]string) map[string][]*Match // runs detector against HTML, meta, script tags etc DOM(dom string) map[string][]*Match // returns a script of js code to inject for detecting tech JSToInject() string // JSResultsToObjects takes in an interface, and marshals it to a slice // of JSObjects JSResultsToObjects(in interface{}) []*JSObject // Merges all matches found and returns a map of WebTech results MergeMatches(results []map[string][]*Match) map[string]*am.WebTech }
type Match ¶
type Match struct { AppName string `json:"app_name"` Matches [][]string `json:"matches"` Version string `json:"version"` MatchLocation string `json:"match_location"` }
Match type encapsulates the App information from a match on a document
type Result ¶
type Result struct { Host string `json:"host"` Matches []Match `json:"matches"` Duration time.Duration `json:"duration"` Error error `json:"error"` }
Result type encapsulates the result information from a given host
type StringArray ¶
type StringArray []string
StringArray type is a wrapper for []string for use in unmarshalling the apps.json
func (*StringArray) UnmarshalJSON ¶
func (t *StringArray) UnmarshalJSON(data []byte) error
UnmarshalJSON is a custom unmarshaler for handling bogus apps.json types from wappalyzer
type Wappalyzer ¶
type Wappalyzer struct { JSObjects []JSObject // contains filtered or unexported fields }
Wappalyzer for finding technology in http responses/data
func NewWappalyzer ¶
func NewWappalyzer() *Wappalyzer
NewWappalyzer for finding technology in http responses/data
func (*Wappalyzer) AppDefinitions ¶
func (w *Wappalyzer) AppDefinitions() *AppsDefinition
func (*Wappalyzer) DOM ¶
func (w *Wappalyzer) DOM(dom string) map[string][]*Match
DOM searches the pre-serialized dom and script/meta tags to extract matches
func (*Wappalyzer) Headers ¶
func (w *Wappalyzer) Headers(headers map[string]string) map[string][]*Match
Headers finds matches in headers/cookies
func (*Wappalyzer) Init ¶
func (w *Wappalyzer) Init(config []byte) error
Init downloads and initializes the application definitions
func (*Wappalyzer) JS ¶
func (w *Wappalyzer) JS(jsObjects []*JSObject) map[string][]*Match
JS parses out the js objects to create a map of result matches
func (*Wappalyzer) JSResultsToObjects ¶
func (w *Wappalyzer) JSResultsToObjects(in interface{}) []*JSObject
JSResultsToObjects takes in an interface, and marshals it to a slice of JSObjects
func (*Wappalyzer) JSToInject ¶
func (w *Wappalyzer) JSToInject() string
func (*Wappalyzer) MergeMatches ¶
MergeMatches all matches found and returns a map of WebTech results