отправка данных с сокетом python не совпадает с netcat - переполнение буфера - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь попрактиковаться в переполнении буфера с помощью 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 все кажется одинаковым, поэтому я не знаю, почему это происходит.

Если кто-то сталкивался с чем-то подобным, был бы признателен за любую помощь , спасибо!

...