• XSS.stack #1 – первый литературный журнал от юзеров форума

[достало] Нужна помощь по "хаку" над консолью ввода в GDB (FIFO)

swagcat228

X-pert
Эксперт
Регистрация
23.12.2019
Сообщения
284
Реакции
232
Депозит
300
Парни, привет.

Столкнулся с проблеомй, не могу решить. Возможно глупая ситуация, но я не смог найти ей решения)

Вопрос в чём: как передать в GDB на запуск программы несколько аргументов, внутри которых нульбайты?

Дело в том, что BASH нульбайты сжирает. о чём нас и предупреждает, если они ему встретятся. Для запуска каверзных программ у меня был такой вот хак:
Bash:
mkfifo ./input #создаём фифо-обменник
cat > ./input & #открывает ему постоянный ввод отдельным процесом на фоне
echo $! > ./input-cat-pid #запоминаем PID этого процесса, на потом, что бы убить
 
mkfifo ./output #создаём фифо-обменник
cat ./output #открывает ему постоянный вывод отдельным процесом на фоне

ну и программа потом в GDB запускалась с аргументом run < ./input

А что если аргумента у меня аж три? Я уже все волосы вырвал. Внутри проги работает ф-я strcpy

1589228916100.png


которая копирует в кучу 3 аргумента в 3 хип-чанка. то бишь надо их только передать с нульбайтами. Как???
 
Можно попробовать переопределить конец строки или использовать функцию предполагающую прием не строковых данных с указанием длины. В любом из решений придётся отказаться от strcpy(). Вообще странно, что она присутсвует, т.к. она входит в список небезопасных.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх