HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 30.03.2025, 16:58
M4x
Новичок
Регистрация: 20.05.2024
Сообщений: 0
С нами: 1046281

Репутация: 0
По умолчанию

Без лишних предисловий перейдем к делу.

Давайте сначала посмотрим на файл request.txt с перехваченным запросом. Мы видим флаг, закодированный в base64, который передается через GET-запрос. Вот он:

Код:


Код:
FLAG=lUmU56gHyTe0DabyGJIZEI9mGyx/4NG1tX8yhml1KmQWEdfQ3TNNkU3z1w==
Скопируйте эту строку, она нам еще пригодится. Файл request.txt нам больше не нужен, так что можно о нем забыть.

Теперь давайте заглянем в sourceCode.txt. Как можно понять из названия, это тот самый код с сервера, который, как говорится в описании, удалось перехватить — исходный код функции для шифрования. Забегая вперед, скажу, что для того, чтобы справиться с этой задачкой, вам точно понадобится хорошее знание Python.

В файлике sourceCode.txt мы видим строку:

Python:


Код:
cipher
=
Cipher
(
algorithms
.
ARC4
(
hashed_key
)
,
mode
=
None
,
backend
=
default_backend
(
)
)
Это говорит нам о том, что используется алгоритм шифрования RC4, который, к слову, считается устаревшим и уже не безопасным.

Далее, в коде мы видим:

Python:


Код:
FLAG
=
'**{*******************************}'
.
encode
(
)
key
=
FLAG
[
:
6
]
Здесь мы видим, что ключом шифрования служат первые шесть символов флага. То есть, это будет Antichat.

Затем у нас есть строка:

Python:


Код:
hashed_key
=
hashlib
.
sha256
(
key
)
.
digest
(
)
[
:
16
]
Это значит, что ключ хешируется, и для шифрования используются только первые 16 байт. Теперь у нас есть вся информация, чтобы расшифровать флаг. Я бы не советовал использовать онлайн-декодеры — скорее всего, они не помогут, да и в этом нет необходимости. Мы просто немного подправим код. Итак, приступим!

Сначала импортируем необходимые библиотеки:

Python:


Код:
from
cryptography
.
hazmat
.
primitives
.
ciphers
import
Cipher
,
algorithms
,
modes
from
cryptography
.
hazmat
.
backends
import
default_backend
import
base64
import
hashlib
Затем декодируем флаг из base64:

Python:


Код:
FLAG
=
base64
.
b64decode
(
'lUmU56gHyTe0DabyGJIZEI9mGyx/4NG1tX8yhml1KmQWEdfQ3TNNkU3z1w=='
)
Указываем ключ. Не забываем, что ключ — это байтовая строка:

Python:


Код:
key
=
b'CODEBY'
Хешируем ключ, но используем только его первые 16 байт:

Python:


Код:
hashed_key
=
hashlib
.
sha256
(
key
)
.
digest
(
)
[
:
16
]
Указываем, что будем использовать алгоритм шифрования RC4:

Python:


Код:
cipher
=
Cipher
(
algorithms
.
ARC4
(
hashed_key
)
,
mode
=
None
,
backend
=
default_backend
(
)
)
encryptor
=
cipher
.
encryptor
(
)
Теперь передаем флаг на вход функции для расшифровки:

Python:


Код:
ct
=
encryptor
.
update
(
FLAG
)
+
encryptor
.
finalize
(
)
И, наконец, печатаем флаг:

Python:


Код:
print
(
ct
)
Запускаем скрипт и получаем флаг.

Не стоит просто копировать код — лучше подумайте над тем, что вы прочитали, и попробуйте написать скрипт самостоятельно. В конце концов, важно не только получить флаг и подняться в рейтинге, а прежде всего научиться чему-то новому.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.