EKOPARTY CTF 2016 Write-up часть 2
Продолжение публикации write-up'ов с EKOPARTY CTF 2016.
В этой часть про задания разделов Misc, Reverse и Web
EKO misc 250 Old but gold
Задача: These QR codes look weird
Решение:
В приложенном архиве лежат 14 картинок с перфокартами. Декодируем их и получаем 14 частей текста. Выстраиваем эти части в правильном порядке и видим, что в каждой части есть по одной опечатке. Из этих опечаток складывается флаг
EKO misc 300 The Fake Satoshi
Задача: Hello Mr. Giarc, upload again your false PGP key to pgp.mit.edu and send us any file you want with its signature to prove you are the fake Satoshi!
The key on the server should look like the following line (case sensitive):
Type bits/keyID Date User ID
pub 1024R/5EB7CB21 2008-10-30 Fake Satoshi EKOPARTY12 (Swampers) satoshin@gmx.com>
Решение:
Про коллизии short keyID написано много статей. Поэтому довольно легко найти программу scallion, которая ищет такие коллизии. На не очень сильной виртуальной машине поиск занимает около 30 секунд. После нахождения достаточно импортировать ключ в pgp и настроить UserID. Подпись файла и отправка ключей на сервер ничего сложного из себя не представляют.
EKO rev 50 F#ck
Задача: The miracle of the expressive functional programming, is it really functional?
Решение:
Скачиваем exe-файл. Судя по размеру очень похоже на .net приложение. При попытке запуска ругается на недостающую сборку. Открываем в dotpeek, и с минимальными правками исполняем код, который выводит флаг.
EKO rev 75 RrEeGgEeXx
Задача: State-of-the-art on authentication mechanisms.
Решение:
Скачиваем exe-файл. Судя по размеру очень похоже на .net приложение. Открываем в dotpeek, и видим последовательные проверки входных данных по регулярным выражениям:
^.{40}$
\\w{3}\\{.*\\}_s.*e_
\\{o{2}O{2}o{2}
O{2}o{2}O{2}\\}
sup3r_r3g3x_challenge
Строка, которая проходит все эти регулярные выражения:
EKO{ooOOoo_sup3r_r3g3x_challenge_OOooOO}
EKO web 25 Mr Robot
В браузере вводим адресную строку https://ctf.ekoparty.org/robots.txt
В результате получаем строку Dissalow: /static/wIMti7Z27b.txt
Переходим по ней https://ctf.ekoparty.org/static/wIMti7Z27b.txt
Получаем флаг EKO{robot_is_following_us}
EKO web 50 RFC7230
Parrot OS - выполняем в консоли команду whatweb ctf.ekoparty.org
В полученном ответе находим флаг
http://ctf.ekoparty.org [301 Moved Permanently] Country[UNITED STATES][US], HTTPServer[EKO{this_is_my_great_server}], IP[52.204.197.190], RedirectLocation[https://ctf.ekoparty.org/], Title[301 Moved Permanently]
https://ctf.ekoparty.org/ [200 OK] Country[UNITED STATES][US], HTML5, HTTPServer[EKO{this_is_my_great_server}], IP[52.204.197.190], JQuery, Meta-Author[NULL Life], Script, Strict-Transport-Security[max-age=63072000; preload], Title[EKOPARTY CTF 2016], UncommonHeaders[x-content-type-options], X-Frame-Options[SAMEORIGIN], X-UA-Compatible[IE=edge], X-XSS-Protection[1; mode=block]
EKO{this_is_my_great_server}
EKO web 150 Carder
Задача: The fastest carder from the far west.
http://86dc35f7013f13cdb5a4e845a3d74937f2700c7b.ctf.site:20000
Решение:
На указанном сайте предлагается за 15 секунд ввести данные трех карточек для которых известны первые четыре и последние четыре цифры. Кроме алгоритма Луна особо него проверять, поэтому пишется программа, которая перебором выбирает такие цифры, чтобы номера карточек были проверяемы по этому алгоритму.
EKO web 200 Url shortener
Задача: We developed this url shortener, it will allow you to share links with your friends!
http://9a958a70ea8697789e52027dc12d7fe98cad7833.ctf.site:20000/
Решение:
Требуется «обмануть» проверку допустимых доменов. По исходному коду видно, что проверка там такая:
$pu = parse_url($url);
$pu["host"] === "ctf.ekoparty.org"
Такую проверку можно обойти url вида:
http://some.domain:80#@ctf.ekoparty.org/
«Сокращатель» перейдет по указанному адресу, принадлежащему some.domain. Флаг будет в user-agent.