Skip to content

Instantly share code, notes, and snippets.

@g4rcez
Created March 23, 2018 17:50
Show Gist options
  • Save g4rcez/3dcc66e44319e6628105cac697be4af9 to your computer and use it in GitHub Desktop.
Save g4rcez/3dcc66e44319e6628105cac697be4af9 to your computer and use it in GitHub Desktop.
Prog CTiF 5
#!/usr/bin/python3
# This code don't capture the flag...Not Yet - Bugnario - Hackaflag 2017
import itertools, socket
def bin_sequence(number):
return list(map(''.join, itertools.islice(itertools.product('01', repeat=len(bin(number)[2:])), 0, number)))
def sanitize_list(list_binaries):
return list(filter(lambda k: '11' in k, list_binaries))
server = "localhost"
port = 1337
connection = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
connection.connect((server,port))
connection.send('Begin'.encode())
data = (connection.recv(1024)).decode('utf-8')
print(data)
input()
while True:
print("<<<" + data)
if data % 2 == 0:
connection.send('1'.encode())
else:
connection.send('0'.encode())
data = (connection.recv(1024)).decode()
@g4rcez
Copy link
Author

g4rcez commented Mar 23, 2018

#!/usr/bin/python3
import socket, sys, time, random
from threading import Thread

def send(socket, payload):
socket.send(payload.encode())

def play(client_socket,ip,prt):
try:
msg="""Bem Vindo\nA ideia aqui é simples, você só precisa retornar 1 quando o número for par e 0 para quando impar, se você fizer direito, você pega a flag.\n Você precisa responder em menos de 3 segundos\nInsira "Begin" para iniciar!\n"""
print(client_socket)
send(client_socket,msg)
data = client_socket.recv(512)
datad=data.decode()
print(datad)
if datad.strip('\n') == "Begin":
client_socket.settimeout(3)
n=0;ini=0;end=100
while n < 100:
num=random.randrange(ini,end,1)
msg=str(n)+"- "+"Number: " + str(num)+"\n"
if (num%2) == 0:
expected_response = 1
else:
expected_response = 0
send(client_socket,msg)
data = client_socket.recv(8)
datad=data.decode()
try:
if int(datad) == int(expected_response):
msg="["+'\x1b[1;36;40m'+"+"+'\x1b[0m'+"] - Nice, Keep going\n"
send(client_socket,msg)
n+=1
ini+=50
end+=100

					if n == 100:
						msg="\nFlag: 0utFl4g{Exploit_C0d3_n0t_Pe0pl3}\n"
						send(client_socket,msg)
						client_socket.close()
				else:
					msg="["+'\x1b[1;31;40m'+'-'+'\x1b[0m'+"] - Bye\n"
					send(client_socket,msg)
					client_socket.close()

			except Exception as error:
				print("Error: ", error)
				msg="["+'\x1b[1;31;40m'+'-'+'\x1b[0m'+"] - Bye\n"
				send(client_socket,msg)
				client_socket.close()
	else:
		msg = "Bye, Jar Jar Binks \n"
		send(client_socket,msg)		
		client_socket.close()

except socket.timeout:
	msg="["+'\x1b[1;31;40m'+'-'+'\x1b[0m'+"] - TIME IS OVER BRO, U LOSE\n"
	send(client_socket,msg)
	client_socket.close()

def main():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip = '0.0.0.0'
port = 1337
try:
server.bind((ip,port))
server.listen(25)
print("On at port: ", str(port))
while True:
(client_socket,address) = server.accept()
client,prt = str(address[0]),str(address[1])
print(client_socket.gettimeout())
Thread(target=play, args=(client_socket, client, prt,)).start()
except Exception as error:
pass

client_socket.close()

main()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment