-
На предстоящей неделе мы с вами займёмся следующим:
- среда, 30 сентября — семинар; время: 18:23; место: ауд. 204 тема семинара: «Анализ уязвимостей на примере нескольких сервисов»
- пятница, 2 октября — семинар; время: 18:23; место: ауд. 204 тема семинара: «unix-iii»
- суббота, 3 октября — тренировка; время: 16:32; место: ауд. 203 и 430
Просьба всем медвежатам выразить в коментариях свои впечатления от первых двух недель семинаров и тренировок. Можно похвалить, поругать и высказать предложения :)
-
Очередной crashme открывает серию заданий в которых вам не придётся ничего запускать на реальной машине, вместо этого вам предлагается очень хорошо подумать и ответить на следующие вопросы:
- что неправильно в данном коде?
- Какое окружение необходимо для того, что бы использовать уязвимость?
- Как именно вы сможете использовать уязвимость?
- Как можно закрыть уязвимость?
Уязвимость может показатся вам несколько абстрактной, но тем не менее она есть. Вы станете немного лучше понимать язык C, когда найдёте её.
Итак, думаем:
char *start, *end, *ref; /* Some code that process user input so that start and end * point to valid memory addresses and start + k < end. * Where k is some constant you can't control. * ref is made to point to some program-defined chunk, * but you can't control this one. */ int n = end - start; if (memcmp(ref, start, n) != 0) { printf("Checksum mismatch. Access denied.\n"); exit(EXIT_FAILURE); } printf("Checksum matches. Access granted.\n");
P.S. В комментариях, возможно, уже есть правильный ответ. Настоятельно рекомендую решить задачу прежде чем смотреть обсуждение.
-
Приветствую, медведи!
Я вернулся! :) Update: семинар переносится со вторника (7.10.2008) на среду (8.10.2008). Мне очень жаль, ребята, но мне сегодня днём сообщили, что я должен прийти на очень важное собрание во вторник в 18:00. Приношу свои дикие медвежие извинения. Update: забыл указать время семинара :) 8.10.2008 в 18:25, сбор возле ауд. 204 :)
-
С первым крешми успешно справились, держите второй! Задание аналогичное предыдушему:
Уронить и объяснить почему это получилось. Есть небольшое дополнение: программа
предназначена для архитектуры IA32.
-
На просторах интернетов нашел несколько небольших задачек на понимание языка C и архитектуры IA32. Идея мне понравилась, посему предлагаю придумывать/находить подобные головоломки. Язык и окружение роли не играют, важны только простота задачи и загруженность мозга.
