ХакерДом: CTF/UCSBiCTF2009/operla ...

Null Page | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация | Вход:  Пароль:  

Браузер oPerla


Браузер Operla, как можно догадаться из названия, написан на Perl'е. Скачать его вместе с остальными браузерами можно с ftp.hackerdom.ru (ещё рано!), там же можно найти немало образов прошлых CTF. Всего было 3 версии этого браузера: 0.1, 0.2 и 0.3 соответственно. До релиза было далеко :) За разбор браузеров я сел не сразу, как и многие другие я занимался решением квестов. Потом, поняв, что на квестах игру не выйграешь, занялся основной задачей. К этому моменту несколько участников уже изучали браузеры. Узнав, на чем написаны браузеры и кто каким уже занимается я решил хакнуть “erbrawser”, который был написан на Erlang. Пока этот язык ставился на мой Linux я мельком посмотрел на operla версии 0.2, и остановился на нем :)


Так как код этого браузера небольшой я приведу его прямо тут:



В строке $cstr =~ s/([^A-Za-z0–9])/sprintf... перед "%" необходимо убрать символ "\" :)
А теперь модуль Object:



В основном коде, в функции getUrl, можно увидеть, что небольшими хитростями браузер можно заставить выполнить ещё один GET запрос. Но, к сожалению, условие в необходимом if всегда будет false (см. функцию trustedCstore). А вот если посмотреть модуль Object, то там без труда можно обнаружить 2 eval, один в функции animate, другой в action.


Не тратя время зря я взялся за функию action. Все оказалось достаточно просто, взлом браузера производился в два этапа:



Вот такой должна быть первая страница:



А вот такой должны быть вторая:



Приведенный выше Perl код делал следущее:



Невзирая на то, что я занимался взломом operla версии 0.2, эксплоит работал и на версии 0.3.


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]