Разбор заданий «Volga. CTF» Сергей Бобров Август, 2012 г.
Задания Финал • Сервис «Карта Сокровищ» [Python/Django] Отборочные • Web 100 [XSS/Bot] • Web 200 [Authentication Bypass] • Web 500 [Verb Tampering/Backup Files/Deobfuscation/Unserialize Tricks] • Stegano 200 [WAV-file]
Сервис «Карта Сокровищ»
Сервис «Карта Сокровищ» : Уязвимости Отображение всех флагов в xml, предоставляющей данные для визуализации
Сервис «Карта Сокровищ» : Уязвимости Внедрение операторов XPath treasure = treasure_xml. xpath('/treasures/treasure [id = '%s' and owner='%s']' % (id, request. session['user']. name)) Эксплуатация /treasure/view/? id=<id>' or '1'='1 Username = ' or id= '<id>
Сервис «Карта Сокровищ» : Уязвимости Регистрация пользователей с одинаковым логином • При регистрации не проверялось наличие такого пользователя • При проверке прав использовался только логин пользователя Эксплуатация • Смотрим имя последнего пользователя с флагом • Регистрируемся с данными Login: <login>, Password: 1 • ? ? ? • PROFIT!
Сервис «Карта Сокровищ» : Уязвимости Внедрение внешних сущностей XML (XXE Attack) • При добавлении флага на стороне клиента формировалась XML • На сервере XML-парсеры поддерживали XML e. Xternal Entity Эксплуатация <!DOCTYPE x [ <!ENTITY xxe SYSTEM "file: ///path. To. Service/Treasure. xml"> ]> <treasure><name>x</name> <treasure. Data>&xxe; </treasure. Data> <x>5</x><y>5</y></treasure>
Отборочные: Задание WEB 100
Отборочные: Задание WEB 200 /robots. txt Disallow: /_31337_4 dm 1 np 4 g 3 if($password != ‘xxx’) { header(‘Location: index. php? error’) }
Отборочные: Задание WEB 500 Verb Tampering. htaccess <Limit GET> require valid-user </Limit> Файлы бэкапа Обфускация Битовыми операциями формируются слова «chr» и цифры 0 -9. Далее формируется строка a. s. s. e. r. t(c. o. d. e) Где каждая буква представляет собой c. h. r(0. 1. 2)
Отборочные: Задание WEB 500 Unserialize Tricks // bit. ly/n. Wyef. G Примерный вид эксплоита: auth=a: 3: {s: 5: "login"; s: 6: "pirate"; s: 8: "password"; s: 7: "pirate 1"; s: 4: " name"; O: 7: "Textbox": 1: {s: 12: "