Это задание для подготовки CTF , которое можно найти в https://rookies.fluxfingers.net/code.php?p=chal&id=142.
Задача состоит в том, чтобы вычислить сумму для всех четных числа - сумма всех нечетных чисел .
Я решил это, но при отправке ответного сообщения на сервер оно не отвечает с флагом .
Но с n c rkchals.fluxfingers. net 5002 второе сообщение можно отправить . Мой код:
import socket
import re
#connection establishing
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("rkchals.fluxfingers.net",5002))
message = str(s.recv(3000))
#data processing
numbers= re.findall("\d+",message)
uneven_numbers=list()
even_numbers = list()
for i in numbers:
if(int(i)%2==0):
even_numbers.append(int(i))
else:
uneven_numbers.append(int(i))
answer = sum(even_numbers)-sum(uneven_numbers)
#log
print("server says: " + message + "\n")
print("numberarray is: " + str(numbers) + "\n")
print("even numbers are: " + str(even_numbers) + "\n")
print("odd numbers are: " + str(uneven_numbers) + "\n")
print("sum of even - sum of odd: " + str(answer) + "\n")
#sending the answer as string to get the flag
s.sendall(bytes(str(answer),"utf-8"))
print("flag is: " + str(s.recv(1024)))
В конце, когда я отправляю ответ сервер игнорирует его (?) , потому что последняя команда должна дать мне флаг в качестве ответа в результате отправки ответа ранее.
Что я должен изменить, чтобы сервер мог получать мое второе сообщение?
Я пытался: timeout (?)
I отсутствие знаний, и я не мог найти ответ здесь.