A server that proxies requests and uses fhttp & my fork of CycleTLS to modify your clienthello and prevent your requests from being fingerprinted.

Overview

TLS-Fingerprint-API

A server that proxies requests and uses my fork of CycleTLS & fhttp (fork of net/http) to prevent your requests from being fingerprinted. Built on open source software, this repo is a simple yet effective solution to censorship. It uses CycleTLS to spoof tls fingerprints, and fhttp to enable mimicry of chrome http/2 connection settings, header order, pseudo header order, and enable push.

Support

I decided to make this after being tired of similar software being gatekept in the community, no one should have to pay over 3k for this. If you like my work, any support would be greatly appreciated ❤️ https://paypal.me/carcraftz?locale.x=en_US

How to use:

Deploy this server somewhere. Localhost is preferrable to reduce latency.

Modify your code to make requests to the server INSTEAD of the endpoint you want to request. Ex: If running on localhost, make requests to http://127.0.0.1:8082. Make sure to also remove any code that uses a proxy in the request.

Add the request header "poptls-url", and set it equal to the endpoint you want to request. For example, if you want to request https://httpbin.org/get, you would add the header "poptls-url" = "https://httpbin.org/get"

Optional: Add the request header "poptls-proxy" and set it equal to the URL for the proxy you want to use (format: http://user:[email protected]:port or http://host:port). This will make the server use your proxy for the request.

Optional: Add the request header "poptls-allowredirect" and set it to true or false to enable/disable redirects. Redirects are enabled by default.

Run on a different Port:

By default the program runs on port 8082. You can specify another port by passing a flag --port=PORTNUM

Examples:

Node.js

To call this in node.js, lets say with node-fetch, you could do

fetch("http://localhost:8082",{
headers:{
"poptls-url":"https://httpbin.org/get",
"poptls-proxy":"https://user:[email protected]:port", //optional
"poptls-allowredirect:"true" //optional (TRUE by default)
}
})```
Comments
  • WebSocket upgrader types issue

    WebSocket upgrader types issue

    I am a novice golang coder so excuse me if this is a dumb question. But I am trying to adapt this project to handle WebSocket connections. In particular, I want to make a WebSocket connection and use https://pkg.go.dev/github.com/gorilla/websocket to upgrade the initial request.

    Code that produces issue:

    connPub, err := upgrader.Upgrade(w, req, nethttp.Header(upgradeHeader))
    

    image image

    But I'm running into a typings issue shown above. I ran into a similar thing elsewhere but was able to handle it by casting/converting req.Header (of type fhttp.Header) to nethttp.Header (I imported the vanilla net/http as nethttp) by doing nethttp.Header(req.Header). But here I'm not sure what to do since that approach won't work. Any advice on how to workaround this to get WebSocket upgrade working?

    opened by nicoandmee 4
  • Windows security alert of Trojan Win32/Sabsik.FL.B!ml when running proxy.go

    Windows security alert of Trojan Win32/Sabsik.FL.B!ml when running proxy.go

    Could be a false positive but from googling it this could be something pretty nasty https://howtofix.guide/trojanwin32-sabsik-fl-bml/

    It comes back every time proxy.go is initiated. If this is a false positive has anyone else experienced it?

    located in AppData\Local\Temp\go-build#######

    opened by caldaryx 2
  • major refactor, clean up, and header bug fix

    major refactor, clean up, and header bug fix

    Hi, I removed unnecessary code and improved some logic, which in turn fixed some uncaught bugs. In the future, I would also recommend to deal with the data as bytes instead of converting it to strings. Hussein#9050.

    opened by HusseinElguindi 2
  • Running file on Docker

    Running file on Docker

    Hey, thanks a lot for this work you have done!

    I wanted to run it on my server with Docker, however, as I understood correctly from online sources, I need the go.mod and go.sum files. I have no experience with golang unfortunately, so I don't know how to get those files. Can you provide them? Thanks!

    opened by MunzerDw 1
  • Fixes

    Fixes

    Fixes response cookies will only take the first set-cookie header fixes the setting of headers fixes param only if theres params for the url

    please review as i havent tested compiling on this branch

    opened by 043674543 0
  • request headers arriving on remote servers modified

    request headers arriving on remote servers modified

    We have noticed, in all outgoing requests arriving the Accept-Encoding seems to be hardcoded to 'gzip, deflate, br' and in case we pass our own encodings, it will prepend our encoding to gzip, deflate, br. So e.g. we pass 'gzip', we would get 'gzip, gzip, deflate, br' in 'accept-encoding' on the remote server.

    opened by sla-te 0
  • Connection Failed

    Connection Failed

    Hello I’m not sure if the the endpoints I use however I sometimes get the Connection Failed error. Is it possible to setup some internal retry logic up-to 3 times ? Before sending the Connection Failed response ?

    opened by matthewklinko 0
  • 200 empty response

    200 empty response

    Worked great so far to avoid fingerprints, but getting detected by Bet365 now (most likely CF blocking it).

    Reproduce:

    1. Go to random event at Bet365
    2. Find a request containing 'web?' in networks tab, copy as curl
    3. Paste it into your API

    It returns 200 OK, with empty response body. Without your API, I'm getting 403 Forbidden by CF.

    opened by bjermeland 4
  • Secure cookies issue ?

    Secure cookies issue ?

    As it's an API instead of a proxy and the api is HTTP, if we request an HTTPS website and it returns a "secure" cookie, the secure cookie will not be sent.

    Is it possible to either

    • make it a real http proxy instead of an api
    • allow to access it using https so secure cookies are set
    opened by momala454 1
Owner
Email me at me (at) carcraftz.dev in order to contact me
null
Arvind Iyengar 1 Mar 21, 2022
Echo-server - An HTTP echo server designed for testing applications and proxies

echo-server An HTTP echo server designed for testing applications and proxies. R

Erik Cavalcanti 6 Sep 16, 2022
A proxy to hide NFT metadata during the sale and prevent people from sniping specific NFTs.

NFT Sale Proxy A proxy to hide NFT metadata during the sale and prevent people from sniping specific NFTs. Check alephao/nft-sale-proxy-examples to se

Aleph Retamal 25 Nov 1, 2022
A wrapper for cloudflared that manages your local proxies for you

Cloudflared Tunnel Wrapper cfdtunnel is a wrapper for cloudflared access tunnel, designed to access multiple tunnels without having to worry about you

Mateus Miranda 39 Nov 1, 2022
IP2Proxy Go package allows users to query an IP address to determine if it was being used as open proxy, web proxy, VPN anonymizer and TOR exits.

IP2Proxy Go Package This package allows user to query an IP address if it was being used as VPN anonymizer, open proxies, web proxies, Tor exits, data

IP2Location 11 Sep 15, 2022
An example go service that is being tested by nonnative.

Nonnative Example An example go service that is being tested by nonnative. Structure The project follows the structure in golang-standards/project-lay

Alejandro Falkowski 3 Oct 31, 2021
Allows you to programatically modify key:value sysctl pairs on MacOS

go-sysctl-mac Allows you to programatically modify key:value sysctl pairs on MacOS. Tested & confirmd to work on MacOS Big Sur & newer releases. Examp

Carter Peel 0 Dec 4, 2021
Pspy-modify - Automatic privilege escalation by pspy

=========== UPDATE CONTENT ============== 更新内容 在Linux提权过程中,我们可以尝试高权限运行的文件我们当前用户是

Jumbo 17 Nov 18, 2022
Gogrok is a self hosted, easy to use alternative to ngrok. It uses SSH as a base protocol, using channels and existing functionality to tunnel requests to an endpoint.

gogrok A simple, easy to use ngrok alternative (self hosted!) The server and client can also be easily embedded into your applications, see the 'serve

Tyler Stuyfzand 5 Jun 15, 2022
gproxy is a tiny service/library for creating lets-encrypt/acme secured gRPC and http reverse proxies

gproxy is a reverse proxy service AND library for creating flexible, expression-based, lets-encrypt/acme secured gRPC/http reverse proxies GProxy as a

null 16 Sep 11, 2022
HTTP proxy written in Go. COW can automatically identify blocked sites and use parent proxies to access.

COW (Climb Over the Wall) proxy COW 是一个简化穿墙的 HTTP 代理服务器。它能自动检测被墙网站,仅对这些网站使用二级代理。 English README. 当前版本:0.9.8 CHANGELOG 欢迎在 develop branch 进行开发并发送 pull

Chen Yufei 8.3k Nov 28, 2022
Standalone client for proxies of Opera VPN

opera-proxy Standalone Opera VPN client. Younger brother of hola-proxy. Just run it and it'll start a plain HTTP proxy server forwarding traffic throu

null 355 Nov 27, 2022
Standalone client for proxies of Windscribe browser extension

windscribe-proxy Standalone Windscribe proxy client. Younger brother of opera-proxy. Just run it and it'll start a plain HTTP proxy server forwarding

null 60 Nov 21, 2022
A pair of local reverse proxies (one in Windows, one in Linux) for Tailscale on WSL2

tailscale-wsl2 TL;DR Running two reverse proxies (one in Windows, one in the WSL2 Linux VM), the Windows Tailscale daemon can be accessed via WSL2: $

Danny Hermes 29 Nov 16, 2022
Crimson prober - Asynchronous TCP scanner through SOCKS5 proxies

Crimson Prober v1 Alpha version of Asynchronous TCP scanner through SOCKS5 proxi

karmaz 2 Feb 19, 2022
Cli for proxies.gay

RocketProxies CLI for RocketProxies Installation From source: Have golang installed: https://go.dev/doc/install run go install -v github.com/MonkeySki

John. 3 May 11, 2022
A fork of the simple WireGuard VPN server GUI community maintained

Subspace - A simple WireGuard VPN server GUI Subspace - A simple WireGuard VPN server GUI Slack Screenshots Features Contributing Setup 1. Get a serve

null 1.7k Nov 21, 2022
An opinionated fork of Jigsaw-Code/outline-ss-server

Outline ss-server This repository has the Shadowsocks service used by Outline servers. It uses components from go-shadowsocks2, and adds a number of i

Shadowsocks.NET 22 Aug 21, 2022
A discord server guard which uses emojis and bot detection (WIP)

server-guard A discord server guard which uses emojis and bot detection (WIP) Config options SusLevel: how many checks the account has to fail before

post 11 Nov 3, 2022