core

package
Version: v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2021 License: MIT Imports: 42 Imported by: 0

Documentation

Index

Constants

View Source
const WappalyzerURL = "https://raw.githubusercontent.com/AliasIO/wappalyzer/master/src/technologies.json"

WappalyzerURL is the link to the latest apps.json file in the Wappalyzer repo

Variables

This section is empty.

Functions

func AppendTo

func AppendTo(filename string, data string) (string, error)

AppendTo append string to a file

func Base64Decode

func Base64Decode(raw string) string

Base64Decode just Base64 Encode

func Base64Encode

func Base64Encode(raw string) string

Base64Encode just Base64 Encode

func BeautifyHeaders

func BeautifyHeaders(res libs.Response) string

BeautifyHeaders beautify headers

func BeautifyRequest

func BeautifyRequest(req libs.Request) string

BeautifyRequest beautify request

func BeautifyResponse

func BeautifyResponse(res libs.Response) string

BeautifyResponse beautify response

func BigResponseReq

func BigResponseReq(baseUrl string) string

func BuildClient

func BuildClient(options libs.Options) *resty.Client

BuildClient build base HTTP client

func BuildWordlists

func BuildWordlists(options libs.Options, link string, doc *goquery.Document)

BuildWordlists based on HTML content

func CleanWords

func CleanWords(filename string)

CleanWords clean wordlists

func DoScreenshot

func DoScreenshot(options libs.Options, raw string) string

func DownloadFile

func DownloadFile(from, to string) error

DownloadFile pulls the latest apps.json file from the Wappalyzer github

func FileExists

func FileExists(filename string) bool

FileExists check if file is exist or not

func FindMatches

func FindMatches(content string, regexes []AppRegexp) ([][]string, string)

runs a list of regexes on content

func FindVersion

func FindVersion(matches [][]string, version string) string

parses a version against matches

func FolderExists

func FolderExists(foldername string) bool

FolderExists check if file is exist or not

func GenHash

func GenHash(text string) string

GenHash gen SHA1 hash from string

func GenerateReport

func GenerateReport(options libs.Options, contents []Content) error

GenerateReport generate report file

func GetFavHash

func GetFavHash(URL string) string

func GetFileNames

func GetFileNames(dir string, ext string) []string

GetFileNames get all file name with extension

func GetLinks(doc *goquery.Document) []string

GetLinks get links

func GetTS

func GetTS() string

GetTS get current timestamp and return a string

func GetTitle

func GetTitle(doc *goquery.Document) string

GetTitle get title of response

func InitConfig

func InitConfig(options *libs.Options)

InitConfig init config

func JustSend

func JustSend(options libs.Options, url string, client *resty.Client) (res libs.Response, err error)

JustSend just sending request

func LoadTechs

func LoadTechs(options libs.Options) error

LoadTechs

func LocalFingerPrint

func LocalFingerPrint(options libs.Options, filename string) string

LocalFingerPrint do fingerprint but from local file

func Mmh3Hash32

func Mmh3Hash32(raw []byte) string

func NewDoScreenshot

func NewDoScreenshot(options libs.Options, raw string) string

NewDoScreenshot new do screenshot based on rod

func ParseBurpRequest

func ParseBurpRequest(raw string) string

ParseBurpRequest parse burp style request

func ParseDocLevel0

func ParseDocLevel0(options libs.Options, doc *goquery.Document) string

ParseDocLevel0 calculate Hash based on src in scripts

func ParseDocLevel1

func ParseDocLevel1(options libs.Options, doc *goquery.Document) string

ParseDocLevel1 calculate Hash based on src in scripts

func ParseDocLevel2

func ParseDocLevel2(options libs.Options, doc *goquery.Document) string

ParseDocLevel2 calculate Hash based on src in scripts

func ParseID

func ParseID(doc *goquery.Document) []string

ParseID parse id attr

func ParseInput

func ParseInput(doc *goquery.Document) []string

ParseInput parse input tag

func ParseLink(link string) []string

ParseLink parse link to a words

func ParseLinks(links []string) []string

ParseLinks get words from link urls

func ParseResponse

func ParseResponse(resp resty.Response) (res libs.Response)

ParseResponse field to Response

func PrintOverview

func PrintOverview(options libs.Options, overview Overview) string

PrintOverview print probe string

func PrintScreen

func PrintScreen(options libs.Options, screen Screen) string

PrintScreen print probe string

func ReadingFile

func ReadingFile(filename string) []string

ReadingFile Reading file and return content as []string

func ReadingFileUnique

func ReadingFileUnique(filename string) []string

ReadingFileUnique Reading file and return content as []string

func RenderReport

func RenderReport(options libs.Options)

func Sending

func Sending(options libs.Options, url string, client *resty.Client) string

Sending send request and calculate checksum

func StandBase64

func StandBase64(data []byte) []byte

StandBase64 base64 from bytes

func StripPath

func StripPath(raw string) string

StripPath just strip some invalid string path

func URLDecode

func URLDecode(raw string) string

URLDecode decode url

func URLEncode

func URLEncode(raw string) string

URLEncode Encode query

func Unique

func Unique(filename string)

Unique unique content of a file and remove blank line

func WriteToFile

func WriteToFile(filename string, data string) (string, error)

WriteToFile write string to a file

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"`

	HTMLRegex   []AppRegexp `json:"-"`
	ScriptRegex []AppRegexp `json:"-"`
	URLRegex    []AppRegexp `json:"-"`
	HeaderRegex []AppRegexp `json:"-"`
	MetaRegex   []AppRegexp `json:"-"`
	CookieRegex []AppRegexp `json:"-"`
	JSRegex     []AppRegexp `json:"-"`
}

App type encapsulates all the data about an App from apps.json

func (*App) FindInHeaders

func (app *App) FindInHeaders(headers http.Header) (matches [][]string, version string)

type AppRegexp

type AppRegexp struct {
	Name    string
	Regexp  *regexp.Regexp
	Version string
}

type AppsDefinition

type AppsDefinition struct {
	Apps map[string]App      `json:"technologies"`
	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 Content

type Content struct {
	ImgPath    string
	URL        string
	Title      string
	Tech       string
	ScreenPath string
	Header     string
	Status     string
	Length     string
	Checksum   string
}

type Match

type Match struct {
	App     `json:"app"`
	AppName string     `json:"app_name"`
	Matches [][]string `json:"matches"`
	Version string     `json:"version"`
}

Match type encapsulates the App information from a match on a document

type Overview

type Overview struct {
	URL           string `json:"url"`
	Title         string `json:"title"`
	CheckSum      string `json:"checksum"`
	ContentFile   string `json:"content_file"`
	Status        string `json:"status"`
	ResponseTime  string `json:"time"`
	ContentLength string `json:"length"`
	Redirect      string `json:"redirect"`
	Headers       string `json:"headers"`
	Favicon       string `json:"favicon"`
}

Overview overview data

func CalcCheckSum

func CalcCheckSum(options libs.Options, url string, res libs.Response) Overview

type ReportData

type ReportData struct {
	Contents []Content
}

type Result

type Result struct {
	Host    string  `json:"host"`
	Matches []Match `json:"matches"`
}

Result type encapsulates the result information from a given host

type Screen

type Screen struct {
	URL          string `json:"url"`
	Image        string `json:"image"`
	ContentFile  string `json:"content_file"`
	Technologies string `json:"tech"`
	// with check sum
	Title    string `json:"title"`
	CheckSum string `json:"checksum"`
	Status   string `json:"status"`
}

Screen overview struct

type SecretRegex

type SecretRegex struct {
	R      *regexp.Regexp
	Reason string `json:"Reason"`
	Rule   string `json:"Rule"`
}

func (*SecretRegex) SetRegex

func (s *SecretRegex) SetRegex(regex string)

type SecretResult

type SecretResult struct {
	Url     string
	Matches string
}

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 WebAnalyzer

type WebAnalyzer struct {
	AppDefs *AppsDefinition
}

WebAnalyzer types holds an analyzation job

var WA *WebAnalyzer

func (*WebAnalyzer) CategoryById

func (wa *WebAnalyzer) CategoryById(cid string) string

func (*WebAnalyzer) LoadApps

func (wa *WebAnalyzer) LoadApps(filename string) error

load apps from file

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL