First version 1.0
parent
bb233d7c9d
commit
03b479ec62
|
@ -0,0 +1,90 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"Name": "AdotpAPet API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{33})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "IUCN API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{64})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "TheCatAPI API Key",
|
||||||
|
"Regex": "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[0-9a-f]{12}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "TheDogAPI API Key",
|
||||||
|
"Regex": "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[0-9a-f]{12}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "AniAPI OAuth Token",
|
||||||
|
"Regex": "^[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+\\.?[A-Za-z0-9-_.+/=]*$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "MyAnimeList OAuth Token",
|
||||||
|
"Regex": "^[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+\\.?[A-Za-z0-9-_.+/=]*$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "AbuseIPDB API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{80})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "AlienVault Open Threat Exchange API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{64})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Google Safe Browsing API Key",
|
||||||
|
"Regex": "AIza[0-9A-Za-z-_]{35}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "URLScan API Key",
|
||||||
|
"Regex": "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "VirusTotal API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{64})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Cooper Hewitt API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{32})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Dribbble API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{64})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Europeana API Key",
|
||||||
|
"Regex": "^\\s*([a-z]{8,10})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "IconFinder API Key",
|
||||||
|
"Regex": "^\\s*([a-zA-Z0-9]{64})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Rijksmuseum API Key",
|
||||||
|
"Regex": "^\\s*([a-zA-Z0-9]{8})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Micro User Service API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{48})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Covalent API Key",
|
||||||
|
"Regex": "ckey_[a-z0-9]{27}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Etherscan API Key",
|
||||||
|
"Regex": "^\\s*([A-Z0-9]{34})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Nownodes API Key",
|
||||||
|
"Regex": "^\\s*([A-Za-z0-9]{32})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "API Bible API Key",
|
||||||
|
"Regex": "^\\s*([a-z0-9]{32})\\z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Google Books API Key",
|
||||||
|
"Regex": "AIza[0-9A-Za-z-_]{35}"
|
||||||
|
}
|
||||||
|
]
|
|
@ -0,0 +1,5 @@
|
||||||
|
module ApiGuesser
|
||||||
|
|
||||||
|
go 1.16
|
||||||
|
|
||||||
|
replace github.com/daffainfo/ApiGuesser => /ApiGuesser
|
|
@ -0,0 +1,90 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"encoding/json"
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"regexp"
|
||||||
|
)
|
||||||
|
|
||||||
|
type regex_data struct {
|
||||||
|
Name string `json:"Name"`
|
||||||
|
Regex string `json:"Regex"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func show_banner() {
|
||||||
|
fmt.Println(`
|
||||||
|
_
|
||||||
|
___ ___|_|___ ___ _ _ ___ ___ ___ ___ ___
|
||||||
|
| .'| . | |___| . | | | -_|_ -|_ -| -_| _|
|
||||||
|
|__,| _|_| |_ |___|___|___|___|___|_|
|
||||||
|
|_| |___|
|
||||||
|
|
||||||
|
Author: Muhammad Daffa
|
||||||
|
Version: 1.0`)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Regex_api_file(path string) {
|
||||||
|
file, err := os.Open(path)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
for scanner.Scan() {
|
||||||
|
fmt.Println(scanner.Text())
|
||||||
|
Regex_api(scanner.Text())
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := scanner.Err(); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Regex_api(contents string) {
|
||||||
|
var data []regex_data
|
||||||
|
|
||||||
|
resp, err := http.Get("https://raw.githubusercontent.com/daffainfo/ApiGuesser/main/db.json")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("No response from request")
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
|
byteValue, _ := ioutil.ReadAll(resp.Body)
|
||||||
|
|
||||||
|
var errjson = json.Unmarshal([]byte(byteValue), &data)
|
||||||
|
if errjson != nil {
|
||||||
|
fmt.Println(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := range data {
|
||||||
|
re := regexp.MustCompile(data[i].Regex)
|
||||||
|
if re.MatchString(contents) {
|
||||||
|
res1 := re.FindAllString(contents, 1)
|
||||||
|
fmt.Println("[+] "+data[i].Name, " ", res1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
show_banner()
|
||||||
|
api := flag.String("api", "", "An API Key. Example: tue3sv9hzsey1me4l7fwq3t46u5k8wag")
|
||||||
|
path := flag.String("path", "", "A file with API Key. Example: daffainfo.txt")
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
if *api != "" && *path == "" && len(*api) > 3 {
|
||||||
|
fmt.Println("Possible API Key:")
|
||||||
|
Regex_api(*api)
|
||||||
|
} else if *api == "" && *path != "" {
|
||||||
|
Regex_api_file(*path)
|
||||||
|
} else if *api != "" || *path != "" {
|
||||||
|
fmt.Println("Can't call 2 arguments at once")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue