Writeup ПОСТимся

Write-up-POSTimsya CTF

ПОСТимся

https://hackerlab.pro/categories/web/278a31a5-0091-4190-a189-bf374c5ded2d

Открывается сайт
1781557333299.webp


Сразу же посмотрим код элемента через F12

1781557344018.webp


Заметим форму отправку, а также скрипт, который на стороне сервера. Форма отправляется на /api/posts/search. В скрипте ниже можем понять, что запрос декодируется из base64 из поля filter.

Из GET главной страницы сделаем POST, а также обратимся к /api/posts/search

Получиться так

1781557352424.webp


Видим, присылается в формате json три поля: content, id, title. Отправим в формате json кавычку(чтобы каждый раз не конвертировать в base64 воспользуемся расширением (https://portswigger.net/bappstore/65033cbd2c344fbabe57ac060b5dd100)

1781557379255.webp


500-ая ошибка. sql-injection явно присутствует. Определим, сколько колонок выводится!
1781557392412.webp


Три колонки. Определим, какая СУБД(Система Управления Базой Данных) используется(PayloadsAllTheThings/SQL Injection at master · swisskyrepo/PayloadsAllTheThings)

1781557400791.webp


sqlite 3.40.1. Определим, какие таблицы есть

1781557408931.webp


Таблица - flag, также название колонки - flag. Выведем сам флаг

1781557417324.webp
 
Мы в соцсетях:

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

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

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

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

HackerLab