|
5 / 5 / 2
Регистрация: 11.06.2012
Сообщений: 192
|
|||||||||||
Переполнение буфера ret2libc11.07.2013, 07:28. Показов 1451. Ответов 2
Метки нет (Все метки)
Пытаюсь передать управление шеллу по технике переполнения буфера ret2libc
Уязвимая программа:
0
|
|||||||||||
| 11.07.2013, 07:28 | |
|
Ответы с готовыми решениями:
2
Переполнение буфера Переполнение буфера: что тут происходит? Обработка переполнения буфера |
|
11 / 11 / 3
Регистрация: 18.03.2010
Сообщений: 45
|
|
| 12.07.2013, 12:30 | |
|
Вы в gdb запускаете программу без параметров(предположение моё):
а надо: gdb "./crack test" Можете сначала проверить и без gdb. Добавлено через 26 минут Попробовал под CentOS. Таких ошибок нет. [bag@bag TMP]$ gdb ./crack GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1) Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/bag/TMP/TMP/crack...done. (gdb) disas main Dump of assembler code for function main: 0x08048464 <+0>: push %ebp 0x08048465 <+1>: mov %esp,%ebp 0x08048467 <+3>: and $0xfffffff0,%esp 0x0804846a <+6>: sub $0x10,%esp 0x0804846d <+9>: mov 0xc(%ebp),%eax 0x08048470 <+12>: add $0x4,%eax 0x08048473 <+15>: mov (%eax),%eax 0x08048475 <+17>: mov %eax,(%esp) 0x08048478 <+20>: call 0x8048424 <evil> 0x0804847d <+25>: mov $0x0,%eax 0x08048482 <+30>: leave 0x08048483 <+31>: ret End of assembler dump. (gdb) b *0x08048478 Breakpoint 1 at 0x8048478: file crack.c, line 14. (gdb) disas evil Dump of assembler code for function evil: 0x08048424 <+0>: push %ebp 0x08048425 <+1>: mov %esp,%ebp 0x08048427 <+3>: sub $0x218,%esp 0x0804842d <+9>: mov 0x8(%ebp),%eax 0x08048430 <+12>: mov %eax,0x4(%esp) 0x08048434 <+16>: lea -0x1fc(%ebp),%eax 0x0804843a <+22>: mov %eax,(%esp) 0x0804843d <+25>: call 0x8048334 <strcpy@plt> 0x08048442 <+30>: movl $0x8048554,(%esp) 0x08048449 <+37>: call 0x8048354 <puts@plt> 0x0804844e <+42>: mov $0x8048563,%eax 0x08048453 <+47>: mov 0x8(%ebp),%edx 0x08048456 <+50>: mov %edx,0x4(%esp) 0x0804845a <+54>: mov %eax,(%esp) 0x0804845d <+57>: call 0x8048344 <printf@plt> 0x08048462 <+62>: leave 0x08048463 <+63>: ret End of assembler dump. (gdb) b *0x08048463 Breakpoint 2 at 0x8048463: file crack.c, line 10. (gdb) run $(python -c 'print '\x41' * 508') Starting program: /home/bag/TMP/TMP/crack $(python -c 'print '\x41' * 508') Traceback (most recent call last): File "<string>", line 1, in <module> NameError: name 'x41' is not defined Breakpoint 1, 0x08048478 in main (argc=1, argv=0xbffff404) at crack.c:14 14 evil(argv[1]); Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.i686 (gdb) stepi evil (input=0x0) at crack.c:5 5 { (gdb) info registers esp esp 0xbffff33c 0xbffff33c (gdb) x/30x 0xbffff33c - 32 0xbffff31c: 0x08048300 0x00200000 0x080496f4 0xbffff358 0xbffff32c: 0x080484b9 0x002cb1e4 0x08048258 0x002cdce0 0xbffff33c: 0x0804847d 0x00000000 0x08048370 0x080484ab 0xbffff34c: 0x002ccff4 0x080484a0 0x00000000 0xbffff3d8 0xbffff35c: 0x00150ce6 0x00000001 0xbffff404 0xbffff40c 0xbffff36c: 0xb7fff3d0 0x08048370 0xffffffff 0x00136fc4 0xbffff37c: 0x08048258 0x00000001 0xbffff3c0 0x00126a05 0xbffff38c: 0x00137ab0 0xb7fff6b0 (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0x001b3620 in strcpy () from /lib/libc.so.6 (gdb) bt f #0 0x001b3620 in strcpy () from /lib/libc.so.6 No symbol table info available. #1 0x08048442 in evil (input=0x0) at crack.c:7 buffer = "\000\000\000\000\334\361\377\277\034u\0 23\000\304o\023\000\237\062\022\000\000` \023\000\000\020\000\000\001\000\000\000 \304o\023\000\000\000\000\000 \362\377\277e8\022\000\260z\023\000\000\ 371\377\267\001\000\000\000\001\000\000\ 000\000\000\000\000\001\000\000\000\020\ 362\377\277`\361\377\277\360\353\022\000 \000\000\000\000\234,\023\000\374\361\37 7\277\360\353\022\000\234,\023\000+\025\ 023\000\224\204\021\000\034u\023\000\374 \361\377\277\022\206\021\000\002\000\377 \277H\342\022\000\210\000\000\000\304o\0 23\000\000\000\000\000Ԃ\021\000\064\203\ 021\000\a", '\000' <repeats 15 times>, "B\027\022\000\273\310\024\000j\202\004\ b\260\366\377\267\002\000\377\267\375x\0 22\000,\202\004\b\340{\023\000\304o\023\ 000\314\333\023\000\001\000\000\000\274\ 362\377\277\326\036\022\000\037/\001\000\304o\023\000X\363\377\277\n\271 \021\000\034u\023\000\260z\023", '\000' <repeats 33 times>"\200, \366\377\267\000\000\000\000h\001\021\00 0\324\335\023\000\200+\023\000\204\362\3 77\277Dg\024\000\016\000\000\000q\352".. . #2 0x0804847d in main (argc=1, argv=0xbffff404) at crack.c:14 No locals. (gdb) run $(python -c 'print "\x41" * 508') The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/bag/TMP/TMP/crack $(python -c 'print "\x41" * 508') Breakpoint 1, 0x08048478 in main (argc=2, argv=0xbffff204) at crack.c:14 14 evil(argv[1]); (gdb) stepi evil (input=0xbffff3ab 'A' <repeats 200 times>...) at crack.c:5 5 { (gdb) info registers esp esp 0xbffff13c 0xbffff13c (gdb) x/30x 0xbffff13c - 32 0xbffff11c: 0x08048300 0x00200000 0x080496f4 0xbffff158 0xbffff12c: 0x080484b9 0x002cb1e4 0x08048258 0x002cdce0 0xbffff13c: 0x0804847d 0xbffff3ab 0x08048370 0x080484ab 0xbffff14c: 0x002ccff4 0x080484a0 0x00000000 0xbffff1d8 0xbffff15c: 0x00150ce6 0x00000002 0xbffff204 0xbffff210 0xbffff16c: 0xb7fff3d0 0x08048370 0xffffffff 0x00136fc4 0xbffff17c: 0x08048258 0x00000001 0xbffff1c0 0x00126a05 0xbffff18c: 0x00137ab0 0xb7fff6b0 (gdb) c Continuing. Buffer stored! Buffer is: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA Breakpoint 2, 0x08048463 in evil (input=can't compute CFA for this frame ) at crack.c:10 10 }
0
|
|
|
5 / 5 / 2
Регистрация: 11.06.2012
Сообщений: 192
|
||
| 12.07.2013, 16:31 [ТС] | ||
|
0
|
||
| 12.07.2013, 16:31 | |
|
Помогаю со студенческими работами здесь
3
переполнение буфера Переполнение буфера Переполнение буфера Переполнение буфера переполнение буфера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|