Отправка двоичных данных в 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', за которым следует новая строка.

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

  • Как перенаправление файлов bash на стандарт отличается от shell (`sh`) в Linux?
  • Сценарий Bash, который считывает имена файлов из канала или из командной строки args?
  • Bash: замена процесса и stdin
  • while цикл работает только один раз?
  • nohup: игнорирование ввода и перенаправление stderr в stdout
  • uniq и bash для цикла, не записывающего в stdout перед закрытием stdin (для системы уведомлений посетителей в одной строке)
  • piping ssh к сценарию оболочки и не видеть stdin echo
  • Можно ли использовать Open Office через STDIN?
  • Какова связь между выходом программы, стандартным выходом и файловыми дескрипторами?
  • Как расколоть stdin в несколько многострочных строк и поместить каждый из них в разные переменные bash
  • Повторение stdin при запуске ed (1) скрипта
  • Linux и Unix - лучшая ОС в мире.