Сейчас на форуме: vasilevradislav (+2 невидимых)

 eXeL@B —› Оффтоп —› Buffer overflow levels
Посл.ответ Сообщение

Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 22 июня 2009 10:50
· Личное сообщение · #1

Недавно на работе был тренинг по secure кодингу. так вот там после прохождения темы переполнений дали 12 тестиков, для закрепления результатов так сказать.

каждый тест(этап) представляет собой маленькую прожку в которой есть ошибка, которой можно воспользоваться сделав переполнение. после этого вам предлагают перейти к след. этапу.

в общем для тех у кого есть время, довольно интересные и не сильно сложные задачки для мозга

1860_22.06.2009_CRACKLAB.rU.tgz - levels.rar




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 22 июня 2009 13:02 · Поправил: Coderess
· Личное сообщение · #2

Кажись, я на пути решения первого уровня

Мда, думал все сложнее

level1 и level11 решил

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 22 июня 2009 18:57
· Личное сообщение · #3

первые 3 сделал быстро, как время будет продолжу
а в общем интересно... Ограничение по времени на все задания сколько было?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 22 июня 2009 20:32
· Личное сообщение · #4

плохо что с исходниками ... есть тузлы , которые ищут переполнения по исходнику. В ехе искать чуть труднее , тоже есть бруты под это , именно заточенные. Как закрепление сойдет , но если искать переполнения уже в реальной проге или сервисе , то это всеравно уже несравнимо ИМХО

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 22 июня 2009 20:36
· Личное сообщение · #5

но если искать переполнения уже в реальной проге или сервисе , то это всеравно уже несравнимо ИМХО

Ну почему-же, попадаются FTP-клиенты, в которых уязвимость level11 встречается
на securityvulns.ru описание читал, думаю еще программисты не научились использовать
безопасные эквиваленты функциям

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 23 июня 2009 12:27 · Поправил: cppasm
· Личное сообщение · #6

Сложного ничего нету, пока зарешал первых шесть.
Кто-нибудь может объяснить в чём прикол шестого уровня?
Там никакие уязвимости и переполнения вообще не используются.
Уровень чисто на знание местонахождения cmd.exe
Как это к теме безопасного программирования относится не ясно.

mak пишет:
но если искать переполнения уже в реальной проге или сервисе , то это всеравно уже несравнимо ИМХО

Ничего подобного.
Многие вещи как раз сложнее в исходнике искать - типа неявных приведений к int при вычислениях и т.д.
В ассемблере такие вещи сразу видно.

// Добавлено
Решил всё.
Восьмой прикольный и двенадцатый

Кстати там есть глюки. ;)
В смысле есть уровни, которые имеют вполне легальное решение без использования каких-либо уязвимостей.



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 24 июня 2009 11:30 · Поправил: RSI
· Личное сообщение · #7

Isaev пишет:
Ограничение по времени на все задания сколько было?


ну 2 часа дали


Кто-нибудь может объяснить в чём прикол шестого уровня?
Там никакие уязвимости и переполнения вообще не используются.
Уровень чисто на знание местонахождения cmd.exe
Как это к теме безопасного программирования относится не ясно.


ну тебе этот пример показывает что ты можешь прогу заставить открыть и другой файл. ежели c:\windows\system32\cmd.exe
если скажем передашь ей параметр .. то уже можешь окрыть c:\cmd.exe




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 24 июня 2009 12:07
· Личное сообщение · #8

cppasm пишет:
Кстати там есть глюки. ;)

jump_level самый большой глюк

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 24 июня 2009 14:01 · Поправил: cppasm
· Личное сообщение · #9

RSI пишет:
ну тебе этот пример показывает что ты можешь прогу заставить открыть и другой файл. ежели c:\windows\system32\cmd.exe
если скажем передашь ей параметр .. то уже можешь окрыть c:\cmd.exe

Как?
Code:
  1. strcpy(path,"C:\WINDOWS");
  2. strncat(path, argv[1], sizeof(path)/2);
  3. strcat(path,"\cmd.exe");

Путь в любом случае должен начинаться с C:\WINDOWS\ и заканчиваться \cmd.exe
При этом если этот файл существует - переходим на следующий уровень.
cmd.exe как бы в системе в одном месте лежит.

Т.е. передав ".." можно конечно и C:\Windows\..\cmd.exe открыть (он же C:\cmd.exe)
НО УРОВЕНЬ ПРОЙТИ ЭТО НЕ ПОМОЖЕТ - ФАЙЛА C:\cmd.exe ТАМ ВЕДЬ НЕТУ.


 eXeL@B —› Оффтоп —› Buffer overflow levels

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати