Пятница, 29.03.2024, 01:08 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Marra_Kesh, xXxSh@dowxXx  
delphicode » Обсуждения » Свободное общение » Переполнение буфера. (Выполнить код в стеке.)
Переполнение буфера.
NeoДата: Понедельник, 19.09.2011, 15:24 | Сообщение # 1
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Всем привет!Недавно я серьёзно занялся изучением уязвимости переполнения буфера.Научился изменять адрес возврата
на тот адрес,на который мне заблагорассудится.Только вот проблема!Я переполняю буфер своим ассемблерным кодом в виде символов,потом затираю адрес возврата адресом буфера,куда я код свой ввёл,по идее должно выполниться то,что введено в буфере,но,блин,не выполняется! surprised Уже сил нету!Я даже Dep отключил,всё-равно не получается.
Если кто занимался этим,подскажите в чём дело.Почему код не хочет выполняться в стеке?У меня особая надежда на c@t и vvova15,т.к переполнение буфера вызываю в C прогах.
 
darkoffДата: Воскресенье, 23.10.2011, 09:41 | Сообщение # 2
Группа: Удаленные



Neo а ошибка вылетает? там в ней адрес должен быть
 
NeoДата: Воскресенье, 23.10.2011, 14:53 | Сообщение # 3
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Дело в том,что на моём сервис паке не вылетает ошибка,что типо приложение обратилось по адресу xxxxxx и
не может быть read и т.д.Но если трассировать в С bildere,то bilder выдаст эту ошибочку с адресом,так что эта проблема решена.
Только компилировать нужно в visual C++ 6.0,т.к в нём нет защиты от переполнения буфера(на других не тестил).В bildere даже если всё правильно сделаешь,нифига не выйдет!Вот вложение,там я добился изменение адреса возврата на void overload(),которая по идее никогда не вызывается.Но мне нужно добиться запуск cmd.Вот эта статья мне больше всех понравилась,только не пойму один момент:
Code
.386                     
.model flat, stdcall               
extrn ExitProcess:proc             
.data                             
start:              
;---------------[ SUPA SHELL CODE]---------------------------------------------;
nach:
     push 1              ; Параметр для вызова WinExec
     mov  esi,esp        ; Устанавливаем esi на стэк
try:
     lodsd               ; Ищем текстовую строку ЗАЧЕМ и почему 012345678h?
     cmp  eax,012345678h ; с именем программы
     jne  try            ;

Эх,был бы рабочий пример с запуском cmd! wink
Прикрепления: overload.rar (24.9 Kb)


Сообщение отредактировал Neo - Воскресенье, 23.10.2011, 14:54
 
NeoДата: Пятница, 28.10.2011, 18:50 | Сообщение # 4
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Ура!!!Разобрался!Получилось!cmd запускается!!!!!!!!!! smile smile biggrin smile smile
 
NeoДата: Четверг, 10.11.2011, 16:27 | Сообщение # 5
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Короче предлагаю тем,кто интересуется этим делом объединиться знаниями и начать писать простенькие эксплойты,пока быть может,к своим же программам.

Сообщение отредактировал Neo - Четверг, 10.11.2011, 16:31
 
delphicode » Обсуждения » Свободное общение » Переполнение буфера. (Выполнить код в стеке.)
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz