Переполнение буфера - недостаточно места для шелл-кода - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть упражнение переполнения буфера. После некоторого размышления я успешно завершаю работу приложения и перезаписываю точные 4 байта EIP, а затем мне удается преобразовать JMP в ESP, который содержит часть моей полезной нагрузки (начало 40 байтов полезной нагрузки, также я заметил, что EBP также ссылается на мой другой часть полезной нагрузки, но также эта часть занимает 40 байт (я успешно могу перенаправить поток в часть шелл-кода EBP).

Я пытался запустить egg-hunter, но из-за того, что у него windows x64, шелл-код hunter имеет длину 46 байт, поэтому он не может работать с имеющимся у меня 40-байтным пространством, также я не нашел никаких указаний на остаток моего буфера что охотник его найдет.

Некоторая информация о буфере buffer = "A" * 7 + ret + "^" + "B" * 1000 (можно использовать только 40)

  • Я могу заменить местоположение «B» в буфере на «^», но такая же проблема существует
  • "^" - это символ, вызывающий сбой
  • перезапись eip после 7 байтов
  • B - остальная часть полезной нагрузки, но может использоваться только 40 байтов, остальные просто обрезаны
  • buffer = "A" * 7 + ret + здесь я также могу поставить 40 байт + "^" + "B" * 1000, я пробовал это с охотником за яйцами и его работами, но все еще Я приземлился для небольшого буфера и той же проблемы .. Есть идеи?

Спасибо

...