PaX и переполнение буфера

Возможно ли переполнение буфера в Linux с PaX в ядре. Я хочу использовать исполняемый файл, изменив адрес возврата с помощью правильного ввода. Я использую Ubuntu 10.04 и проверяю это с помощью paxtest, но не понимаю, что означает результат. Это результат paxtest в моей системе:

Исполняемое анонимное сопоставление: убито
Исполняемый bss: убит
Исполняемые данные: Убит
Исполняемая куча: убито
Исполняемый стек: убит
Исполняемое анонимное сопоставление (mprotect): уязвимо
Исполняемый файл bss (mprotect): уязвим
Исполняемые данные (mprotect): уязвимы
Исполняемая куча (mprotect): уязвима
Исполняемая разделяемая библиотека bss (mprotect): уязвима
Исполняемые данные общей библиотеки (mprotect): уязвимы
Исполняемый стек (mprotect): уязвим
Рандомизационный тест анонимного отображения: 12 бит (угадано)
Тест рандомизации кучи (ET_EXEC): 13 бит (угадано)
Проверка рандомизации кучи (ET_DYN): 14 бит (угадано)
Основная исполняемая рандомизация (ET_EXEC): 12 бит (угадано)
Основная исполняемая рандомизация (ET_DYN): 12 бит (угадано)
Рандомизация общей библиотеки: 12 бит (угадано)
Проверка рандомизации стека (SEGMEXEC): 19 бит (угадано)
Проверка рандомизации стека (PAGEEXEC): 19 бит (угадано)
Возврат к функции (strcpy): уязвим
Возврат к функции (strcpy, RANDEXEC): уязвим
Возврат к функции (memcpy): уязвим
Возврат к функции (memcpy, RANDEXEC): уязвим
Исполняемая разделяемая библиотека bss: уязвима
Исполняемые данные общей библиотеки: убиты
Сегменты для записи текста: уязвимы

1 ответ

Да, ты можешь. Смотрите строки:

    Return to function (strcpy)              : Vulnerable
    Return to function (strcpy, RANDEXEC)    : Vulnerable

Увы, мой школьный проект состоял в том, чтобы предотвратить именно такой подвиг, используя grsecurity. PaX не помешал мне переписать обратный адрес.

Другие вопросы по тегам