воскресенье, 5 июня 2016 г.

Подводная фотосъемка. Мыльница.

Для того, чтобы снимать водный мир приобрел одноразовую камеру - мыльницу, естественно производства Китая.

Камера представляет собой простейший пленочный фотоаппарат, заключенный в пластиковый кожух.
В качестве безусловного плюса фотоаппарата можно назвать его цену - около 20 евро.

Минусы камеры характеры для всех ОЧЕНЬ дешевых фотоаппаратов:
  • полное отсутствие приближения (zoom'a);
  • ручная перемотка пленки после каждого снятого кадра;
  • дешевая пластмассовая линза;
  • возня с пленкой.
Кстати, хитрые желтолицые братья позаботились, чтобы камеру и кожух нельзя было использовать повторно - при достать пленку аккуратно невозможно - крепления отламываются и пластиковый кожух становится неработоспособен.
Тем не менее, делать подводные снимки ей вполне возможно. Снимал я в окрестностях острова Хрисси, о котором писал ранее.

Пластиковая мыльница для подводной съемки
Под катом несколько фотографий, сделанных этим фотоаппаратом.

понедельник, 11 января 2016 г.

Эксплоит который может написать каждый

По сложившейся традиции разбираю очередное задание олимпиады по информационной безопасности MCTF. В этот раз мы будем организованно писать эксплоит для серверного приложения, написанного на языке Python.
Общеизвестно, что эксплоит - это компьютерная программа, фрагмент программного кода или последовательность команд, которые используются уязвимости в программном обеспечении и применяются для осуществления атаки на вычислительную систему. Целью атаки является захват контроля над системой или нарушение её корректной работы (с) вики.
В качестве подопытного предлагается код сервера на языке Python с несколько странной реализацией протокола. Ознакомиться с кодом приложения можно здесь, далее я прокомментирую его наиболее яркие фрагменты. Но прежде всего нам нужное его установить на локальной машине для вдумчивого препарирования. Итак

Запуск файла server.py на Ubuntu

В целом особых подводных камней тут нет, Python включен во все дистрибутивы повсеместно, однако тут ВНЕЗАПНО используется малоизвестная библиотека mmh3 (о подляне, которую она подкладывает я буду еще писать).
К сожалению, в дистрибутиве ubuntu ее нет, поэтому ставим из исходников

sudo apt-get install python-pip
sudo apt-get install python-dev
sudo python -m pip install mmh3

В результате скачиваются и компилируются исходники данного модуля, после чего сервер можно запустить командой
python server.py

Кроме того для безошибочной работы сервера нужно положить в его рабочую директорию файл flag.txt и каталогом выше подключаемый модуль ../file_handler.py.
Вообще цель заданий в этой олимпиаде - найти некие "флаги". Таким образом цель взлома server.py - считать содержимое файла flag.txt, который расположен в одном каталоге с исполняемым файлом сервера.