README.md
Rendering markdown...
import socket
import time
def send_tcp_request(ip_address, port, http_request):
vuln = False
sock = None
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(60)
server_address = (ip_address, port)
print(f"Connecting to {ip_address} port {port}")
sock.connect(server_address)
start_time = time.time()
print(f"Sending {repr(http_request)}")
sock.sendall(http_request.encode())
data = sock.recv(16)
if not data:
vuln = True
print(f"No response received, server may be vulnerable.")
else:
while data:
print(f"Received: {data.decode()}")
data = sock.recv(16)
elapsed_time = time.time() - start_time
print(f"Elapsed time: {elapsed_time} seconds")
except socket.timeout:
vuln = True
print(f"Socket timeout, server may be vulnerable.")
except socket.error as e:
print(f"Socket error: {e}")
finally:
if sock is not None:
print("Closing socket")
sock.close()
return vuln
input_ip = input("Enter the host/IP address: ")
input_port = int(input("Enter the port: "))
# sending bad request
bad_request = "GET / HTTP/1.0\n\n"
print("\n=== Sending bad request ===")
is_vulnerable = send_tcp_request(input_ip, input_port, bad_request)
print(f"\nServer vulnerability status: {is_vulnerable}")
# sending good request
proper_request = f"GET / HTTP/1.1\r\nHost: {input_ip}\r\nConnection: Close\r\n\r\n"
print("\n=== Sending good request ===")
is_vulnerable = send_tcp_request(input_ip, input_port, proper_request)
print(f"\nServer vulnerability status: {is_vulnerable}")