Это как работает переполнение буфера? - PullRequest
1 голос
/ 12 марта 2011

Я полагаю, что в Интернете есть похожие вопросы и некоторые данные ... но я хочу быть уверенным, что я правильно понял концепцию, поскольку все онлайн-учебники слишком длинные и фокусируются на подвигах, и т. Д. Итак, как я понимаю, простое переполнение буфера будет выглядеть примерно так:

/////////////////////////////////////////////// ///

  1. Вы отправляете строку аргументов / ввода следующим образом: nop инструкции (x90) + шеллкод + некоторые текст + адрес какого-то nop инструкция.

  2. Если строка имеет правильную длину, она переопределит возврат адрес ebp с адресом некоторых из nop инструкции. Как только он прыгает там - он будет затем пропустить до достигнув шеллкода .... а остальное это история.

/////////////////////////////////////////////// /

Я больше похож на парня и ассемблера типа c ++ / php / c # и c за пределами моих умственных способностей ... смеется ... так серьезно ... или в шутку ... это описание над чем-то вроде строки ? Плюс, насколько я понимаю, есть некоторые средства защиты от буферов, хотя я пока не предпринимаю их. Как брандмауэр поймает это?

10x!

Ответы [ 3 ]

4 голосов
/ 12 марта 2011

Уничтожение стека для удовольствия и получения прибыли - это , которое должно читаться как для всех, кто серьезно относится к пониманию работы переполнения буфера.Вы не найдете лучшего ответа, чем то, что дает эта белая книга.

Редактировать

Если вы уже прочитали Smashing the Stack и хотите пойти дальше, тогда я могу предложитьчтение Взлом: искусство эксплуатации 2-е изд

Hacking: The Art of Exploitation

1 голос
/ 12 марта 2011

Да, это один из способов исследовать переполнение буфера. Эта книга - отличное чтение.

Мне не известны какие-либо брандмауэры с возможностями мониторинга переполнения буфера в других приложениях (если вы это имеете в виду).

0 голосов
/ 12 марта 2011

В частности, то, что вы описываете, называется NOP салазками (или «слайд», или «рампа»). Здесь - статья, в которой приведен реальный пример этого приманки.

Вы можете защитить от такой атаки, например, ограничив количество прочитанных символов до меньшего.чем размер вашего буфера.В более общем смысле, инструменты обнаружения сетевых вторжений, такие как Snort , нацелены на широкое обнаружение и предотвращение на случай, если такие вещи, как отсутствие проверки входных данных, останутся незамеченными.

...