add common referrer options
This commit is contained in:
44
proxychain/requestmodifers/spoof_referrer_from_baidu_post.go
Normal file
44
proxychain/requestmodifers/spoof_referrer_from_baidu_post.go
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"ladder/proxychain"
|
||||||
|
"math/rand"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromBaiduSearch modifies the referrer header
|
||||||
|
// pretending to be from a BaiduSearch
|
||||||
|
func SpoofReferrerFromBaiduSearch(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
// https://www.baidu.com/link?url=5biIeDvUIihawf3Zbbysach2Xn4H3w3FzO6LZKgSs-B5Yt4M4RUFikokOk5zetf2&wd=&eqid=9da80d8208009b8480000706655d5ed6
|
||||||
|
referrer := fmt.Sprintf("https://baidu.com/link?url=%s", generateRandomBaiduURL())
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer(referrer),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// utility functions ==================
|
||||||
|
|
||||||
|
func generateRandomString(charset string, length int) string {
|
||||||
|
var seededRand *rand.Rand = rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
|
var stringBuilder strings.Builder
|
||||||
|
for i := 0; i < length; i++ {
|
||||||
|
stringBuilder.WriteByte(charset[seededRand.Intn(len(charset))])
|
||||||
|
}
|
||||||
|
return stringBuilder.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func generateRandomBaiduURL() string {
|
||||||
|
const alphanumericCharset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||||
|
const hexCharset = "0123456789abcdef"
|
||||||
|
randomAlphanumeric := generateRandomString(alphanumericCharset, 30) // Length before "-"
|
||||||
|
randomHex := generateRandomString(hexCharset, 16) // Length of eqid
|
||||||
|
return randomAlphanumeric + "-" + "&wd=&eqid=" + randomHex
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromBingSearch modifies the referrer header
|
||||||
|
// pretending to be from a bing search site
|
||||||
|
func SpoofReferrerFromBingSearch(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://www.bing.com/"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromGoogleSearch modifies the referrer header
|
||||||
|
// pretending to be from a google search site
|
||||||
|
func SpoofReferrerFromGoogleSearch(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://www.google.com/"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromLinkedInPost modifies the referrer header
|
||||||
|
// pretending to be from a linkedin post
|
||||||
|
func SpoofReferrerFromLinkedInPost(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://www.linkedin.com/"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
ModifyQueryParams("utm_campaign", "post"),
|
||||||
|
ModifyQueryParams("utm_medium", "web"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
24
proxychain/requestmodifers/spoof_referrer_from_naver_post.go
Normal file
24
proxychain/requestmodifers/spoof_referrer_from_naver_post.go
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromNaverSearch modifies the referrer header
|
||||||
|
// pretending to be from a Naver search (popular in South Korea)
|
||||||
|
func SpoofReferrerFromNaverSearch(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
referrer := fmt.Sprintf(
|
||||||
|
"https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=%s",
|
||||||
|
chain.Request.URL.Host,
|
||||||
|
)
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer(referrer),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromPinterestPost modifies the referrer header
|
||||||
|
// pretending to be from a pinterest post
|
||||||
|
func SpoofReferrerFromPinterestPost(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://www.pinterest.com/"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
19
proxychain/requestmodifers/spoof_referrer_from_qq_post.go
Normal file
19
proxychain/requestmodifers/spoof_referrer_from_qq_post.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromQQPost modifies the referrer header
|
||||||
|
// pretending to be from a QQ post (popular social media in China)
|
||||||
|
func SpoofReferrerFromQQPost(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://new.qq.com/'"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromRedditPost modifies the referrer header
|
||||||
|
// pretending to be from a reddit post
|
||||||
|
func SpoofReferrerFromRedditPost(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://www.reddit.com/"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromTumblrPost modifies the referrer header
|
||||||
|
// pretending to be from a tumblr post
|
||||||
|
func SpoofReferrerFromTumblrPost(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://www.tumblr.com/"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromTwitterPost modifies the referrer header
|
||||||
|
// pretending to be from a twitter post
|
||||||
|
func SpoofReferrerFromTwitterPost(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://t.co/"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ladder/proxychain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromVkontaktePost modifies the referrer header
|
||||||
|
// pretending to be from a vkontakte post (popular in Russia)
|
||||||
|
func SpoofReferrerFromVkontaktePost(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer("https://away.vk.com/"),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
22
proxychain/requestmodifers/spoof_referrer_from_weibo_post.go
Normal file
22
proxychain/requestmodifers/spoof_referrer_from_weibo_post.go
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package requestmodifers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"ladder/proxychain"
|
||||||
|
"math/rand"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SpoofReferrerFromWeiboPost modifies the referrer header
|
||||||
|
// pretending to be from a Weibo post (popular in China)
|
||||||
|
func SpoofReferrerFromWeiboPost(url string) proxychain.RequestModification {
|
||||||
|
return func(chain *proxychain.ProxyChain) error {
|
||||||
|
referrer := fmt.Sprintf("http://weibo.com/u/%d", rand.Intn(90001))
|
||||||
|
chain.AddRequestModifications(
|
||||||
|
SpoofReferrer(referrer),
|
||||||
|
SetRequestHeader("sec-fetch-site", "cross-site"),
|
||||||
|
SetRequestHeader("sec-fetch-dest", "document"),
|
||||||
|
SetRequestHeader("sec-fetch-mode", "navigate"),
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user