Snawoot/hola-proxy

How to know the password associated with uuid

Jeffade1 opened this issue · 1 comments

Hi @Snawoot and everyone.
When we use hola-proxy to get a list of proxies, it generates automatically a login (user-uuid-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) and a password (xxxxxxxxxxxx) and show them.
When we use hola browser extension or desktop app, it's only possible to see the login uuid.
How and where can we get the password associated with the login from hola?
Thanks in advance👍

Hi!

Not sure about desktop app, but for browser extension password is returned as "agent_key" in request to https://client.hola.org/client_cgi/zgettunnels. Relevant source code can be found here:

hola-proxy/holaapi.go

Lines 217 to 254 in 7d891ac

func zgettunnels(ctx context.Context,
client *http.Client,
user_uuid string,
session_key int64,
country string,
proxy_type string,
limit uint) (res *ZGetTunnelsResponse, reterr error) {
var tunnels ZGetTunnelsResponse
params := make(url.Values)
if proxy_type == "lum" {
params.Add("country", country+".pool_lum_"+country+"_shared")
} else if proxy_type == "virt" { // seems to be for brazil and japan only
params.Add("country", country+".pool_virt_pool_"+country)
} else if proxy_type == "peer" {
//params.Add("country", country + ".peer")
params.Add("country", country)
} else if proxy_type == "pool" {
params.Add("country", country+".pool")
} else { // direct or skip
params.Add("country", country)
}
params.Add("limit", strconv.FormatInt(int64(limit), 10))
params.Add("ping_id", strconv.FormatFloat(rand.New(RandomSource).Float64(), 'f', -1, 64))
params.Add("ext_ver", EXT_VER)
params.Add("browser", EXT_BROWSER)
params.Add("product", PRODUCT)
params.Add("uuid", user_uuid)
params.Add("session_key", strconv.FormatInt(session_key, 10))
params.Add("is_premium", "0")
data, err := do_req(ctx, client, "", ZGETTUNNELS_URL, params, nil)
if err != nil {
reterr = err
return
}
reterr = json.Unmarshal(data, &tunnels)
res = &tunnels
return
}

Probably you can reproduce such request with the uuid you need.