Skip to content

Latest commit

 

History

History
110 lines (61 loc) · 3.72 KB

File metadata and controls

110 lines (61 loc) · 3.72 KB

MapnaCTF 2024


Web: Flag Holding

Переходим на сайт и видим, что нам сообщают о том, что мы додны обращаться к ресурсу относительно http://flagland.internal/:

ScreenShot

Перехватываем запрос через BurpSuite и вставляем Referer: http://flagland.internal/

Подробнее на HackTricks: https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/403-and-401-bypasses

ScreenShot

Далее нам сообщают о том, что мы не установили параметр "secret"

ScreenShot

Обозначим его и присвоим какое-либо значение:

ScreenShot

Как видим, у нас появилась подсказка с пропущенными словами. Отгадываем словами http и flag и пытаемся их подставить:

ScreenShot

MAPNA{533m5-l1k3-y0u-kn0w-h77p-1836a2f}


Web: Novel reader

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

ScreenShot

Также у нас есть исходники:

ScreenShot

Среди исходного кода находим следующее:

ScreenShot

http://3.64.250.135:9000/api/read/public/A-Sad-Tale.txt

При этом мы не можем просто так прочитать секретную историю (так как она находится в директории /private, а не /public)

ScreenShot

Снова обращаемся к исходникам и понимаем следующее: unquote - функция из urlib.parse, которая способна декодировать URL, но при этом, только одноуровнево, например /../ -> %2F%2e%2e%2F. Многоуровневое URL-кодирование позволяет обойти данный вид защиты -> %252F%252e%252e%252F

Получается, для того, чтобы достать flag.txt, нам надо полняться на 2 директории выше, миновав stuff/public/

Варианты решений:

1) http://3.64.250.135:9000/api/read/public%252F%252e%252e%252F%252e%252e%252Fflag.txt

2) http://3.64.250.135:9000/api/read/public/%252e%252e/%252e%252e/flag.txt

ScreenShot

MAPNA{uhhh-1-7h1nk-1-f0r607-70-ch3ck-cr3d17>0-4b331d4b}


Web: Novel reader 2

Здесь у нас тот же сервис, что был и в первом задании.

ScreenShot

Суть заключается в том, что нам надо добиться минимального отрицательного баланса

ScreenShot

И применяем технику из прошлого таска:

http://3.64.250.135:9000/api/read/public/%252e%252e/private/A-Secret-Tale.txt

ScreenShot

MAPNA{uhhh-y0u-607-m3-4641n-3f4b38571}


Forensics: PLC I

ScreenShot

Расположение частей:

Пакет №35 -> MAPNA{y Пакет №50 -> 0U_sHOu Пакет №19 -> Ld_4lW4 Пакет №39 -> yS__CaR Пакет №31 -> 3__PaAD Пакет №46 -> d1n9!!}

MAPNA{y0U_sHOuLd_4lW4yS__CaR3__PaADd1n9!!}