fireblazer

package
v0.0.0-...-cdca1d0 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ApiMetadata map[string]ServiceMeta // a shell of what was :3 (check embed.go to understand where it comes from, it's all initialized there)
View Source
var GetClient = sync.OnceValue(func() *http.Client {

	return &http.Client{
		Transport: &http3.Transport{
			EnableDatagrams: true,
			TLSClientConfig: &tls.Config{

				ServerName: "googleapis.com",
				NextProtos: []string{http3.NextProtoH3},
			},
			Dial: func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (*quic.Conn, error) {
				hostAddr, _ := net.ResolveUDPAddr("udp4", "0.0.0.0:0")
				listener, err := net.ListenUDP("udp", hostAddr)

				if err != nil {
					log.Printf("Failed to listen on local port - try raising ulimit? Error: %v", err)
				}

				var udpAddr *net.UDPAddr
				udpAddr, err = net.ResolveUDPAddr("udp", addr)

				if err != nil {
					log.Printf("Failed to resolve %s", addr)
					return nil, err
				}

				StoredResolvedAddr = udpAddr

				return quic.Dial(ctx, listener, udpAddr, tlsCfg, cfg)
			},
		},
		Timeout: 20 * time.Second,
	}
})
View Source
var GoogleApiList []string
View Source
var KeyLogFile os.File
View Source
var SANames map[string]string
View Source
var StoredResolvedAddr *net.UDPAddr

Functions

func AppendAPIKeyToURL

func AppendAPIKeyToURL(apiUrl string, apiKey string) string

Parse query params and append the API key to it.

func EnumerateServiceAccounts

func EnumerateServiceAccounts(projectNum string, workerCount int, updateCh chan ScanUpdate, rawKey string) ([]string, error)

func GetBrandIdentity

func GetBrandIdentity(projectNumber string) (map[string]interface{}, error)

func GetP4SACount

func GetP4SACount() int

func MultipartAllDiscoveries

func MultipartAllDiscoveries(apiKey string, cleannames []string) (map[string]bool, error)

WIP - just need to figure out how to use this damn thing I was hoping to be able to multipart it and send multiple services with one big payload. But I might just remove this. Http3 lets me send the data in one big stream, there's no need for this anymore. Still, it has potential for other uses if I keep digging.

func ReqHeaderOnly

func ReqHeaderOnly(req http.Request, apiKey string, useActualResolvedName bool) (*http.Response, error)

For handling errors with a retry for the connection stream itself - otherwise i'd be limited to retrying the domain name resolution / dial

func ReqWithBackoff

func ReqWithBackoff(req *http.Request, client *http.Client) (*http.Response, error)

func TestKeyServicePair

func TestKeyServicePair(target TargetKey, service string, useGet bool) (bool, error)

Types

type APIsConfig

type APIsConfig struct {
	Active []string `json:"active"`
	Dep404 []string `json:"dep404"`
	FP     []string `json:"fp"`
}

type ElapsedCombo

type ElapsedCombo struct {
	ServiceClean string
	TimeElapsed  int64
}

func ScanServices

func ScanServices(target TargetKey, gapiServices []Service, workerCount int, timingEnabled bool, updateCh chan<- ScanUpdate, useGet bool) ([]string, int, *ElapsedCombo)

This function is maybe my finest work, but the decrement thing might be better off for interactive mode handled in main.go? Either way, all functioons should strive to be as clear-cut like this. Does its thing and thats it.

type EmailTemplate

type EmailTemplate struct {
	From            string `json:"from,omitempty"`
	FromDisplayName string `json:"fromDisplayName,omitempty"`
	Subject         string `json:"subject,omitempty"`
	Format          string `json:"format,omitempty"`
	Body            string `json:"body,omitempty"`
	ReplyTo         string `json:"replyTo,omitempty"`
}

type IdentityToolkitResponse

type IdentityToolkitResponse struct {
	ProjectDetails
	Error *struct {
		Message string `json:"message"`
		Code    int    `json:"code"`
		Status  string `json:"status"`
		Details []struct {
			Metadata struct {
				Consumer string `json:"consumer"`
			} `json:"metadata"`
		} `json:"details"`
	} `json:"error"`
}

type IdpConfig

type IdpConfig struct {
	Enabled              bool     `json:"enabled,omitempty"`
	WhitelistedAudiences []string `json:"whitelistedAudiences,omitempty"`
	Secret               string   `json:"secret,omitempty"`
	ExperimentPercent    int32    `json:"experimentPercent,omitempty"`
	ClientId             string   `json:"clientId,omitempty"`
	Provider             string   `json:"provider,omitempty"`
}

type ProjectDetails

type ProjectDetails struct {
	ProjectId                   string         `json:"projectId,omitempty"`
	AuthorizedDomains           []string       `json:"authorizedDomains,omitempty"`
	UseEmailSending             bool           `json:"useEmailSending,omitempty"`
	EnableAnonymousUser         bool           `json:"enableAnonymousUser,omitempty"`
	AllowPasswordUser           bool           `json:"allowPasswordUser,omitempty"`
	ApiKey                      string         `json:"apiKey,omitempty"`
	DynamicLinksDomain          string         `json:"dynamicLinksDomain,omitempty"`
	ChangeEmailTemplate         *EmailTemplate `json:"changeEmailTemplate,omitempty"`
	ResetPasswordTemplate       *EmailTemplate `json:"resetPasswordTemplate,omitempty"`
	LegacyResetPasswordTemplate *EmailTemplate `json:"legacyResetPasswordTemplate,omitempty"`
	VerifyEmailTemplate         *EmailTemplate `json:"verifyEmailTemplate,omitempty"`
	IdpConfig                   []IdpConfig    `json:"idpConfig,omitempty"`
}

func TestKeyValidity

func TestKeyValidity(apiKey string) (bool, *ProjectDetails, error)

type ScanUpdate

type ScanUpdate struct {
	Key           string
	WasFound      bool
	ItemCleanName string
}

type Service

type Service struct {
	CleanName    string
	DiscoveryUrl string
}

type ServiceMeta

type ServiceMeta struct {
	Title   string
	Summary string
}

type TargetKey

type TargetKey struct {
	Raw         string
	Key         string
	Referrer    string
	IosBundleId string
	AndroidPkg  string
	AndroidCert string
}

Jump to

Keyboard shortcuts

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