Skip to content

Latest commit

 

History

History

doc-viewer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Doc Viewer

Автор: Чуприлин Андрей

История

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

Деплой

Сервис находится в папке service и обернут в докер.

Внутри докера сервис работает на порту 9999.

Описание сервиса

В сервисе возможность работать с документами имеется только у пользователя с логином admin.

Однако простой вход из-под аккаунта администратора не работает.

Для проверки администратора используется криптостойкая хэш-функция с солью.

Войдя в сервис от имени администратора, появляется возможность создавать и редактировать документы, содержимое которых отображается необычным образом.

Примечание

Хэш-функция была взята из задания crypto-200 из Hack you 2014 и частично переделана автором.

Решение задания

Поискав по папкам с помощью dirsearch (или его аналога), можно найти исходник алгоритма, хэширующего строку.

Хэш-функция уязвима к HLE (Hash Length Extension) атаке. Имея на руках данные и хэш от них, мы можем "дописать" новые данные, при этом правильно посчитав хэш. Подменив данные и хэш одновременно, мы сможем пройти проверку на админа и войти в сервис.

Далее, при создании или редактировании документа, в содержимом есть возможность исполнить код (уязвимость SSTI). Использовав pyaload для данной уязвимости, можно прочитать файл flag.txt, содержащий флаг.

Файл solver.py содержит реализацию использования данной уязвимости.

Флаг

Cup{hl5_@nd_sst1}