Публикации по теме 'buffer-overflow'


Понимание уязвимости переполнения буфера
Что такое уязвимость, связанная с переполнением буфера? Буферы - это те блоки памяти, которые используются для хранения временных данных в то время, когда данные передаются из одного места в другое. Большинство буферов используются в программах, где нам временно необходимо сохранять значения переменных. Пример : у нас есть приложение, которое может принимать вводимые пользователем 20 символов. Таким образом, для обработки буфера памяти, вводимого пользователем, требуется 20..

Горячее исправление функций C/C++ с помощью Intel Pin | кодирование.видение
5 лет назад я сказал в одной из своих статей, что однажды вернусь с методом горячего исправления функций внутри живых процессов; Итак… я думаю, это тот самый день. Здесь мы попытаемся добиться замены извне функции внутри работающего исполняемого файла без остановки/замораживания процесса ( или сломать его…). На мой взгляд, применение горячих исправлений — довольно сложная задача, если ее реализовать с нуля , поскольку: для этого требуется доступ к памяти другого процесса..

Переполнение буфера с помощью pwntools (pwnable.kr)
Привет! Сегодня пробую BOF Challenge от pwnable.kr Исходный код: - #include <stdio.h> #include <string.h> #include <stdlib.h> void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); // smash me! if(key == 0xcafebabe){ system("/bin/sh"); } else{ printf("Nah..\n"); } } int main(int argc, char* argv[]){..

Обход ASLR и DEP — Получение оболочки с помощью pwntools | кодирование.видение
Сегодня я хотел бы уделить немного времени и представить небольшой трюк, чтобы обойти как ASLR ( рандомизация макета адресного пространства ), так и DEP ( Предотвращение выполнения данных ), чтобы получить оболочку в переполнении буфера уязвимом двоичном файле. Я видел, как эта проблема обсуждалась с использованием стратегий возврата к PLT , и это нормально, если целевой метод уже используется в двоичном файле — хотя, будем откровенны, не многие программы будут вызывать system()..

Вопросы по теме 'buffer-overflow'

Переполнение JSP-буфера
У меня есть файл размером 1 МБ для загрузки, и установлено следующее, и я получаю исключение. Я думаю, что это размер моего буфера или настройка autoFlush. В настоящее время: <%@ page errorPage="error.jsp" buffer="500kb" autoFlush="false"...
2624 просмотров
schedule 13.09.2022

Безопасно ли использовать snprintf и друзей?
Недавно на SO возник вопрос ( С какой стати кто-нибудь использует strncpy вместо strcpy? ), на который были ответы ( ответ 1 , ответ 2 ), из-за чего я сомневался в других строковых функциях с 'n' в имени, таких как snprintf (которые я широко...
9321 просмотров
schedule 27.06.2023

Почему переполнение буфера может вызвать ошибки сегментации при доступе к целому числу?
Во время вызова функции B() из функции A(), B() выделяет массив из 100 символов и заполняет его несколько раз, в том числе один раз строкой из 101 символа и один раз строкой из 110 символов. Это очевидная ошибка. Позже функция A() пытается...
1016 просмотров
schedule 23.04.2022

Проблемы с AudioRecord на устройствах, отличных от HTC
У меня проблемы с использованием AudioRecord. Пример использования части кода, полученного из проекта splmeter : private static final int FREQUENCY = 8000; private static final int CHANNEL = AudioFormat.CHANNEL_CONFIGURATION_MONO; private...
1579 просмотров

Шестнадцатеричные значения во входных файлах GDB
Я пытаюсь использовать конкретный эксплойт на DVL, перенаправляя ввод (на получение), используя run ‹inputfile внутри gdb Я могу успешно переполнить программу, но у меня проблемы с добавлением шестнадцатеричных значений к строке. Я пробовал цитаты,...
3468 просмотров
schedule 08.10.2022

Считается ли использование sscanf безопасным?
У меня смутные воспоминания о предположениях, что sscanf было плохо. Я знаю, что если я использую спецификатор ширины поля, буферы не переполнятся, так что моя память просто играет со мной?
24234 просмотров
schedule 25.12.2022

Valgrind выдает ошибку, но все вроде нормально
Это похоже на дубликат моего предыдущего поста, но это не так ..... Здесь Valgrind выдает следующую ошибку: udit@udit-Dabba ~/mec $ valgrind --leak-check=full sendip -v -p ipv6 -f file.txt -6s ::1 -p esp -es 0x20 -eq 0x40 -ei z30 -eI z100...
11060 просмотров

Как получить информацию об исключении переполнения буфера в смешанном приложении?
Во всех приложениях WPF, которые я разрабатываю, есть глобальный обработчик исключений, подписанный на AppDomain.CurrentDomain.UnhandledException , который регистрирует все, что может найти, а затем показывает диалоговое окно, предлагающее...
3385 просмотров
schedule 16.03.2024

Поиск адреса переменной C без отладки
Я работаю над базовым проектом переполнения буфера. Цель состоит в том, чтобы переполнить буфер для запуска оболочки. Код, который я использую, выглядит так: int func(char *str) { //4 bytes for str, 16 bytes for the buffer, 4 for the ebp, 4...
145 просмотров
schedule 17.02.2023

Обнаружено переполнение буфера в режиме деблокирования — linux
Хорошо.. Я сделал систему, которая использует zlib для распаковки строки... Я думаю, что это работает, но у меня проблема с конвертером base64, поэтому я не могу быть уверен, что данные верны... это работает для очень маленькая строка, т.е. "помощь",...
4528 просмотров
schedule 24.12.2023

Ввод символов, отличных от ASCII, в scanf(%s)
Есть ли способ выдать шестнадцатеричные символы, отличные от ascii, для scanf, который использует %s ? Я пытаюсь вставить шестнадцатеричные символы, такие как \x08\xDE\xAD и т. д. (чтобы продемонстрировать переполнение буфера). Ввод...
3556 просмотров
schedule 04.04.2023

Шестнадцатеричная строка как вход для scanf в gdb
Можем ли мы дать входную строку по ее шестнадцатеричному значению в gdb. Например, простая программа #include <stdio.h> int main() { char buffer[20]; fscanf(stdin, "%s", buffer); printf("%s", buffer); } Отладка:...
3030 просмотров
schedule 10.02.2023

Функция sscanf изменяет содержимое другой строки
У меня проблемы с чтением строк с sscanf . Я упростил код, чтобы сосредоточиться на проблеме. Ниже приведена функция во всем коде, которая должна открывать файл и что-то читать. Но sscanf ведет себя странно. Например, я объявляю строку с именем...
767 просмотров
schedule 19.04.2022

пример использования переполнения буфера из Hacking: The Art of Exploitation
Я нашел несколько связанных сообщений об этом на сайте, но ни один из них не объяснил мою проблему. Код описан здесь: Ссылка Моя проблема заключается в следующем: Автор пытается переписать адрес возврата функции strcpy() в программе...
1584 просмотров

Почему этот код выдает предупреждения о переполнении буфера (C6385/C6386) при анализе кода в Visual Studio 2012?
Я пытаюсь использовать функцию анализа кода Visual Studio 2012. Я только что запустил их в свой существующий проект и обнаружил несколько предупреждений о переполнении буфера ( C6385 / C6386 ) в той части, которая содержит мою собственную реализацию...
2174 просмотров

Linux - не может создать дамп ядра
Я выполняю некоторые тесты на переполнение буфера, и мне нужно создать дамп ядра, так как я не буду присоединять к нему отладчик, потому что это многопоточное приложение. Итак, что я сделал, это ulimit -c unlimited и похоже, что все прошло...
1133 просмотров

Неправильный вывод при вычислении величины 3 векторов в Atmel Studio
У меня возникли проблемы с попыткой получить вывод с плавающей запятой. То, что я пытаюсь сделать, это взять выходные данные акселерометра по 3 осям. Выход каждой оси имеет старший и младший байты, объединенные в одну переменную. Затем величина...
446 просмотров

GCC, как обнаружить переполнение буфера стека
Поскольку в gcc есть опция -fstack-protector-strong для обнаружения разбиения стека. Однако он не всегда может обнаружить переполнение буфера стека. Для первой функции func, когда я ввожу строку на 10 символов больше, программа не всегда дает...
13885 просмотров
schedule 11.05.2022

Почему я все еще получаю исключение cookie стека, хотя я отключил флаг / GS в VS11 при компиляции? Сценарий: обучающий тест переполнения буфера
Недавно я попытался протестировать учебное приложение для демонстрации переполнения буфера, написанное на C. Я использовал цепочку инструментов Visual Studio 2012 для компиляции и связывания исходников и убедился, что установлены следующие параметры:...
663 просмотров

Отсутствует обратный адрес в стеке
Я хочу написать простой пример переполнения буфера для архитектуры набора инструкций ARMv6 с использованием Raspberry PI и ОС Raspbian. Первое, на что я обратил внимание, это расположение фрейма стека. К сожалению, не могу найти обратный адрес....
408 просмотров
schedule 28.10.2022