Шелл-код продолжает ломаться в эксплойте переполнения буфера FTP-сервера Ability

Я прохожу курс «Тестирование на проникновение с возвратом» на сайте Attack-security.com и работаю над эксплойтом переполнения буфера для сервера Ability Server. Я могу успешно перезаписать EIP и перейти к своему шеллкоду. Однако, когда я начинаю просматривать шелл-код в отладчике, он отрывается от шелл-кода. Я почти на 100% уверен, что удалил плохие символы. Я даже сравнил шелл-код до того, как отправил его, с шелл-кодом в отладчике после того, как отправил его, и они идентичны.

Прошу прощения за то, что выкладываю фотографии через альбом imgur. Поскольку я новичок на stackoverflow.com, они не позволят мне публиковать фотографии, пока я не получу авторитет улиц.

Картинка находится здесь, в альбоме переполнения буфера. (Единственный альбом) http://edwardmcfellon.imgur.com/

{Picture 1} Здесь у меня есть точка останова, установленная в EIP. Пока все хорошо.

{Рисунок 2}Я позволяю программе продолжать работу, и она переходит к моему шелл-коду. Все по-прежнему хорошо.

{Рисунок 3}Когда программа выполняет POP EBX, мой шеллкод ломается, и это моя проблема.

{Рисунок 4}Вот куда он попадает после поломки.

Любая помощь будет оценена по достоинству. К вашему сведению, я новичок в написании переполнений буфера и хочу понять, почему это происходит и как предотвратить это в будущем. Заранее спасибо.


person user1925422    schedule 06.01.2013    source источник


Ответы (2)


Убедитесь, что вы включили слайд NOP. Повышает стабильность вашего эксплойта

person Jaron Bradley    schedule 11.01.2013
comment
Извините, Джарон... но проблема была не в NOP. Хотя это привело меня к решению проблемы. - person user1925422; 13.01.2013

Вероятно, ESP указывает за пределами стека, поэтому инструкция POP EBX в конечном итоге пытается прочитать из недопустимой памяти.

person MarioVilas    schedule 13.01.2013