Простая setuid бинарная эксплуатация
У меня есть программа setuid, которая выводит файл таким образом:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
system("ls /challenge/binary/binary1/.passwd");
return 0;
}
Что мне нужно, это заставить программу раскрывать содержимое файла, а не просто указывать его имя. Поэтому я попытался создать псевдоним, чтобы изменить поведение ls следующим образом:
alias ls='cat'
но все же, это не работает. Не могли бы вы указать мне правильное направление!
2 ответа
Алиасы живут только на оболочке, которая их определила, и system
запускает новую оболочку. Эта оболочка не будет читать ~/.bashrc
или другие файлы, в которых псевдонимы обычно определяются: либо только интерактивные оболочки. Некоторые оболочки, но не все, читают другой файл, но существует независимый от оболочки способ использования этого.
Команда поиска команд Shell пытается следующие элементы в следующем порядке:
- Псевдонимы - нет.
- Функции - нет, по той же причине.
- Встроенных - нет.
- Команды в
PATH
- это должно быть по умолчанию.
Так что работайте над тем, чтобы поиск ls
в $PATH
повернет cat
программа.
+ Изменить ls
в cat
,
ls
список каталогов, он не отображает файлы. cat
делает это