Writeup Web | Конвертер | HackerLab

ConverterHackerLab.webp

Название: Конвертер
Категория: Web
Уровень: Лёгкий
Ссылка на задание: https://hackerlab.pro/categories/web/8c871c3d-c395-47f6-9f3d-93ec11ed5b6f
Баллы: 300


Reconnaissance

Нас встречает обычный ASCII конвертер, который кодирует текст и декодирует его. Первая мысль это CMD Injection, поскольку вполне возможно там функция ascii которая передаётся в PHP или Python.
1781283169139.webp

Как оказалось, приложение было написано на jinja2, поскольку payload {{ 7*7 }} выдал 49. И тут мы понимаем, что здесь SSTI.


Exploitation

1781283293382.webp

Как мы знаем а кто не знает сейчас объясню, SSTI - это атака, которая позволяет взаимодействовать с подклассами Python. т.е использовать функции Python напрямую. Давайте попробуем посмотреть какие подклассы нам доступны:
Python:
# По хорошему нам нужно было сначала найти доступные классы, потом базис и только потом подклассы, но я сократил чтобы не растягивать WriteUp, в конце оставлю ссылку
{{ [].__class__.__base__.__subclasses__() }}
1781283493137.webp

На скришоте видно, какие подклассы мы можем использовать, нам очень повезло, мы можем использовать класс os._wrap_close, поскольку этот класс в модуле os, мы можем "выпрыгнуть" в глобальную область видимости этого модуля. Мы буквально получили доступ к функциям popen() и system(). Его индекс 137, давайте используем его и посмотрим как устроен сайт изнутри.
Python:
{{ [].__class__.__base__.__subclasses__()[137].__init__.__globals__['popen']('ls -lah').read() }}
1781283868414.webp

Отлично, мы получили доступ к исходным файлам проекта. Давайте прочитаем файл app.py.
finish.webp

Я использовал также grep чтобы сразу вывести флаг, без кода приложения.
Ссылка на материал: PayloadsAllTheThings/Server Side Template Injection/Python.md at master · swisskyrepo/PayloadsAllTheThings
 
  • Нравится
Реакции: Trager
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →

Популярный контент

🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab