Update README.md, server.py

This commit is contained in:
Namhyeon Go 2022-11-25 21:35:02 +09:00
parent 9402eb9d46
commit b5b57f5012
2 changed files with 11 additions and 10 deletions

View File

@ -20,6 +20,7 @@ CA_KEY=ca.key
CA_CERT=ca.crt CA_CERT=ca.crt
CERT_KEY=cert.key CERT_KEY=cert.key
CERT_DIR=certs/ CERT_DIR=certs/
CLIENT_ENCODING=utf-8
``` ```
2. Run `python server.py` and set HTTP proxy in your web browser (e.g. Firefox) 2. Run `python server.py` and set HTTP proxy in your web browser (e.g. Firefox)

View File

@ -22,6 +22,11 @@ from decouple import config
try: try:
listening_port = config('PORT', cast=int) listening_port = config('PORT', cast=int)
server_url = config('SERVER_URL') server_url = config('SERVER_URL')
cakey = config('CA_KEY')
cacert = config('CA_CERT')
certkey = config('CERT_KEY')
certdir = config('CERT_DIR')
client_encoding = config('CLIENT_ENCODING')
except KeyboardInterrupt: except KeyboardInterrupt:
print("\n[*] User has requested an interrupt") print("\n[*] User has requested an interrupt")
print("[*] Application Exiting.....") print("[*] Application Exiting.....")
@ -36,11 +41,6 @@ args = parser.parse_args()
max_connection = args.max_conn max_connection = args.max_conn
buffer_size = args.buffer_size buffer_size = args.buffer_size
cakey = config('CA_KEY')
cacert = config('CA_CERT')
certkey = config('CERT_KEY')
certdir = config('CERT_DIR')
def start(): #Main Program def start(): #Main Program
try: try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@ -99,7 +99,7 @@ def conn_string(conn, data, addr):
proxy_server(webserver, port, scheme, method, url, conn, addr, data) proxy_server(webserver, port, scheme, method, url, conn, addr, data)
def proxy_connect(webserver, conn): def proxy_connect(webserver, conn):
hostname = webserver.decode('utf-8') hostname = webserver.decode(client_encoding)
certpath = "%s/%s.crt" % (certdir.rstrip('/'), hostname) certpath = "%s/%s.crt" % (certdir.rstrip('/'), hostname)
# https://stackoverflow.com/questions/24055036/handle-https-request-in-proxy-server-by-c-sharp-connect-tunnel # https://stackoverflow.com/questions/24055036/handle-https-request-in-proxy-server-by-c-sharp-connect-tunnel
@ -141,12 +141,12 @@ def proxy_server(webserver, port, scheme, method, url, conn, addr, data):
"User-Agent": "php-httpproxy/0.1.3 (Client; Python " + python_version() + "); abuse@catswords.com", "User-Agent": "php-httpproxy/0.1.3 (Client; Python " + python_version() + "); abuse@catswords.com",
}, },
'data': { 'data': {
"data": base64.b64encode(data).decode("utf-8"), "data": base64.b64encode(data).decode(client_encoding),
"client": str(addr[0]), "client": str(addr[0]),
"server": webserver.decode("utf-8"), "server": webserver.decode(client_encoding),
"port": str(port), "port": str(port),
"scheme": scheme.decode("utf-8"), "scheme": scheme.decode(client_encoding),
"url": url.decode("utf-8"), "url": url.decode(client_encoding),
"length": str(len(data)), "length": str(len(data)),
"chunksize": str(buffer_size), "chunksize": str(buffer_size),
"datetime": datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") "datetime": datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")