๐Ÿ“ฆ EqualifyEverything / dockerized-wappalyzer

A Go flavor of Wappalyzer, but Dockerized

โ˜… 0 stars โ‘‚ 0 forks ๐Ÿ‘ 0 watching โš–๏ธ GNU General Public License v3.0
๐Ÿ“ฅ Clone https://github.com/EqualifyEverything/dockerized-wappalyzer.git
HTTPS git clone https://github.com/EqualifyEverything/dockerized-wappalyzer.git
SSH git clone git@github.com:EqualifyEverything/dockerized-wappalyzer.git
CLI gh repo clone EqualifyEverything/dockerized-wappalyzer
Bentley Hensel Bentley Hensel License 80cc9a7 2 years ago ๐Ÿ“ History
๐Ÿ“‚ 80cc9a78b2a1c7ee819f72991eddf0ee10675372 View all commits โ†’
๐Ÿ“ .github
๐Ÿ“ cmd
๐Ÿ“ examples
๐Ÿ“ scan
๐Ÿ“„ .gitignore
๐Ÿ“„ Dockerfile
๐Ÿ“„ fingerprints.go
๐Ÿ“„ go.mod
๐Ÿ“„ go.sum
๐Ÿ“„ LICENSE
๐Ÿ“„ LICENSE.md
๐Ÿ“„ README.md
๐Ÿ“„ tech.go
๐Ÿ“„ README.md

Wappalyzergo

A high performance port of the Wappalyzer Technology Detection Library to Go. Inspired by Webanalyze and Project Discovery

Uses data from https://github.com/AliasIO/wappalyzer

Features

  • Very simple and easy to use, with clean codebase.
  • Normalized regexes + auto-updating database of wappalyzer fingerprints.
  • Optimized for performance: parsing HTML manually for best speed.
  • Dockerized Endpoint

Getting Started

Docker Variables

  • PORT: the port number to listen on
  • LOG_LEVEL: log level (debug, info, warn, error)
  • HTTP_PROXY: HTTP proxy address
  • HTTPS_PROXY: HTTPS proxy address

API Endpoint

  • Send a GET request to http://your_server_address:port?url=<url_to_analyze> to analyze a URL.
  • Replace your_server_address with the IP address or domain name of the server running the application.
  • Replace port with the value of the PORT variable.

Example

docker run -p 8087:8087 -e PORT=8087 -e LOG_LEVEL=info -d ghcr.io/equalifyapp/

This will start the application and expose port 8087 on the host machine. You can then access the API using the endpoint described above.

Using go install

go install -v github.com/projectdiscovery/wappalyzergo/cmd/update-fingerprints@latest

After this command wappalyzergo library source will be in your current go.mod.

Example

Usage Example:

`` go package main import ( "fmt" "io/ioutil" "log" "net/http" wappalyzer "github.com/projectdiscovery/wappalyzergo" ) func main() { resp, err := http.DefaultClient.Get("https://www.hackerone.com") if err != nil { log.Fatal(err) } data, _ := ioutil.ReadAll(resp.Body) // Ignoring error for example wappalyzerClient, err := wappalyzer.New() fingerprints := wappalyzerClient.Fingerprint(resp.Header, data) fmt.Printf("%v\n", fingerprints) // Output: map[Acquia Cloud Platform:{} Amazon EC2:{} Apache:{} Cloudflare:{} Drupal:{} PHP:{} Percona:{} React:{} Varnish:{}] } `` /Volumes/Macintosh Hd/Users/Shared/GitHub/Orgs/TheBoatyMcBoatFace/wappalyzergo/wappalyzergo_test.go