Отправка двоичных данных в get ()

У меня есть программа-жертва (с уязвимостью переполнения буфера): она использует gets () для записи в буфер фиксированного размера.

Предположим, я поместил shellcode в файл SC. Затем я запускаю

$ ./victim < SC Input your data: $ 

Причина, по которой шеллкод не работает, такова: SC перенаправляется жертве, вводит шеллкод, вызывает появление оболочки, но порожденная оболочка обнаруживает, что ее stdin закрыт, поэтому немедленно выходит.

Я пробовал expect на инъекцию, но expect , expect бомбы появятся после появления оболочки.

Кажется, что единственный практический способ – получить шеллкод в буфер буфера моей мыши, чтобы я мог его вводить, сохраняя клавиатуру в качестве устройства ввода. Но я понятия не имею, как получить двоичные данные в моем буфере пасты.

Любые идеи о том, как обойти эту проблему?

2 Solutions collect form web for “Отправка двоичных данных в get ()”

Решение этой проблемы (в которой кто-то столкнулся в том же контексте) находится здесь: https://stackoverflow.com/questions/8509045/execve-bin-sh-0-0-in-a-pipe

Вы можете сделать это с помощью простого скрипта, в котором вы печатаете специальные символы.

Например, в Perl вы можете напечатать любой символ, указав его шестнадцатеричный код. Например: perl -e 'print "\x54\x0A"' печатает 'T', за которым следует новая строка.

Затем вы можете скопировать напечатанный текст, даже если он не отображается. Конечно, ваш терминал должен находиться в сыром режиме.

  • передавая stdin для обработки A и обработки B (вызывается A)
  • Безопасно ли вводить другую команду в STDIN, пока предыдущая команда записывает в STDOUT?
  • Ждите ключа в сценарии оболочки, который может быть отправлен в / bin / bash
  • Функция Bash, которая принимает входные данные от параметра или трубы
  • Создайте команду, поместив строку в tty
  • Почему cc (компилятор C) и подобные утилиты по умолчанию не используют стандартные потоки?
  • Как команда может иметь более одного выхода?
  • vim: Синтаксис синтаксиса с помощью аргумента командной строки
  • Сценарий, использующий fifos, не генерирующий выход при обработке из stdin
  • Перенаправить stdin и stdout в порты
  • Каковы стандартные stdin и stdout дочернего процесса?
  • Linux и Unix - лучшая ОС в мире.