#c #gdb #dynamic-linking #exploit
#c #gdb #динамическое связывание #использовать
Вопрос:
Я решал задачу из упражнения nebula exploit (https://exploit-exercises .lains.space/nebula/level13/). Поскольку скомпилированный двоичный файл динамически связан, я подумал о том, чтобы написать свой пользовательский getuid() для возврата 1000 и установить LD_PRELOAD=custom_getuid. Похоже, это не работает, когда я напрямую выполняю двоичный файл, но я могу обойти проверку, выполнив в gdb, ltrace, strace. gdb может загружать мой пользовательский getuid. Кто-нибудь может объяснить это поведение, пожалуйста? Спасибо!
Ответ №1:
Я обнаружил проблему, LD_PRELOAD не влияет на двоичные файлы suid. Итак, мой двоичный файл имеет suid, установленный для пользователя flag13.