NSK CTF Канал
256 subscribers
28 photos
2 videos
7 files
24 links
Сайт: https://nskctf.ru/

По всем вопросам: @user_9_9_9_9
Download Telegram
Тренировочный таск #2

В этот раз посложнее..😄

Дан не очень тривиальный python-код, необходимо разобраться, что к чему:
import base64; exec(base64.b64decode("ZXhlYygiUCA9IChsYW1iZGEgSiwgWCwgSzogSi5qb2luKDxzZXA+ICAgICAgICAgICAgbWFwKGNociwgWygoZSBeIEtbZGl2bW9kKGksIGxlbihLKSlbMV1dKSAtIGkpICYgMjU1PHNlcD4gICAgICAgICAgICAgICAgICAgICAgZm9yIGksIGUgaW4gZW51bWVyYXRlKFgpXSk8c2VwPiAgICAgICAgKSkoPHNlcD4gICAgY2hyKEZhbHNlKSAqIEZhbHNlLDxzZXA+ICAgIFs8c2VwPiAgICAgICAgMTExLCA5OSwgNzMsIDg4LCAzMywgOTksIDk3LCA4OCwgOTMsIDIxOSwgMTE1LCAxMDEsIDkzLCA3NiwgNDIsIDEzOCw8c2VwPiAgICAgICAgMTQ1LCA4MSwgNzYsIDIyMiwgMTI2LCAxNDgsIDg5LCAxNzgsIDM4LCAxMjgsIDE1MSwgMTczLCAxODgsIDM3LCAxNDEsIDE0MSw8c2VwPiAgICAgICAgMTgyLCAxNzcsIDIwNCwgMTMwLCAxNTIsIDE4NywgMTczLCAyMDIsIDEyOCwgMTU5LCAxMjEsIDE4NywgMjEyLCA4MiwgMTU0LCA2NCw8c2VwPiAgICAgICAgMTY2LCA2MCwgMTEwLCAxMjEsIDcyLCA5MiwgNjMsIDE1MCwgMTI2LCAxOTAsIDcxLCAyNDksIDE3NSwgMTAxLCA4MSwgMTQ2PHNlcD4gICAgXSw8c2VwPiAgICBbc3VtKChUcnVlLCkqbikgZm9yIG4gaW4gKDEzLCAyMSwgMzQsIDU1LCA4OSldPHNlcD4pPHNlcD5CPV9faW1wb3J0X18oUFswOjhdKS5fX2RpY3RfX1tQWzg6MTNdXTxzZXA+Tj1fX2ltcG9ydF9fKFBbMDo4XSkuX19kaWN0X19bUFsxMzoxN11dPHNlcD5jbGFzcyBVOjxzZXA+ICAgIGRlZiBfX2luaXRfXyhzLCpYLCoqSyk6PHNlcD4gICAgICAgIFMsQSxDLE09WDtEPXMuX19kaWN0X188c2VwPiAgICAgICAgRFtQWzQxOjQzXV09TTxzZXA+ICAgICAgICBEW1BbNDM6NDRdXT1BJU08c2VwPiAgICAgICAgRFtQWzQ0OjQ2XV09QyVNPHNlcD4gICAgICAgIERbUFs0Njo0OF1dPVMlTTxzZXA+ICAgICAgICBEW1BbNDg6NTBdXT0oKGdldGF0dHIoTS0xLFBbMTc6MjddKSgpKzcpLy84KW9yIDE8c2VwPiAgICBkZWYgdShzKTo8c2VwPiAgICAgICAgRD1zLl9fZGljdF9fPHNlcD4gICAgICAgIERbUFs0Njo0OF1dPSgoRFtQWzQzOjQ0XV0qRFtQWzQ2OjQ4XV0pK0RbUFs0NDo0Nl1dKSVEW1BbNDE6NDNdXTxzZXA+ICAgICAgICByZXR1cm4gRFtQWzQ2OjQ4XV08c2VwPiAgICBkZWYgaihzKTo8c2VwPiAgICAgICAgWT1nZXRhdHRyKGludCxQWzI3OjM1XSk7IG49cy5fX2RpY3RfX1tQWzQ4OjUwXV07IGc9cy51OyBFPVBbMzU6NDFdPHNlcD4gICAgICAgIHdoaWxlIDE6PHNlcD4gICAgICAgICAgICBmb3IgXyBpbiBZKGcoKSxuLEUpOiB5aWVsZCBfPHNlcD5lbmNyeXB0PWxhbWJkYSBYLHgsYT1pbnQoUFs1MDo1Nl0sMTYpLGM9aW50KFBbNTY6NjRdLDE2KSxtPTE8PCg4PDwyKTpCKCgoKHFeTihrKSkrKE4oaykvL2xlbih7MCwxLDIsMyw0fSkpK34xMzM2KSYyNTUpZm9yIGsgaW5bVSh4LGEsYyxtKS5qKCldZm9yIHEgaW4gWCkiLnJlcGxhY2UoJzxzZXA+JywgJ1xuJykpO2E9KCduc2tjdGZ7JyAraW5wdXQoIkVudGVyIGZsYWcgdG8gYmUgZW5jcnlwdGVkOiAiKS5zdHJpcCgpLnJlcGxhY2UoJyAnLCcnKSsnfScpLmVuY29kZSgpO3ByaW50KCJFbmNyeXB0ZWQgZmxhZzoiLGVuY3J5cHQoYSxhWzBdKS5oZXgoKSkKCg==".encode())) # Сундук - на дубе, заяц - в сундуке, утка - в зайце, яйцо - в утке, игла — в яйце…

➡️ Мы запустили его, ввели флаг и получили вывод:
Encrypted flag: 8a00b3b87c17ea1a701c58da717ec1c443f90bd2eb7d404981ac0f84c0e8f159c6422eb587f0ea8bb7141261a831bbca7c60711bceaafdda0729d893


Все ответы снова отправляем Степе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳4❤‍🔥21👍1🔥1💯1
Как вам прошлый таск?

⚡️было тяжеловато
😎легкотня

Оценивайте и следите за новостями, совсем скоро будет следующее задание 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
😎533❤‍🔥1👍1💯1
Тренировочный таск #3

Необходимо запустить следующий файл, открыть необходимые 10 портов и флаг будет твой!

Решения направляем Степе.
Please open Telegram to view this post
VIEW IN TELEGRAM
3🐳3❤‍🔥2🔥1🥰1
таск_3.html
26 KB
❤‍🔥2🐳21🔥1👀1
📌 Каждая пятидесятая зарегистрированная команда получит мерч Тринадцатой Летней школы CTF!

А также напоминаем, что призовой фонд соревнований составляет 100 тысяч рублей.

Не упустите возможность попытать удачу! Зарегистрируйте команду до 10 октября 12:00 💙
Please open Telegram to view this post
VIEW IN TELEGRAM
👀4❤‍🔥32🔥1💯1
This media is not supported in your browser
VIEW IN TELEGRAM
🔝Семь лет тишины…

Семь лет, в которых никто не видел ни вспышек, ни порталов, ни следов Лаборатории X. Казалось, что она исчезла навсегда, растворившись во вне-временной пустоте. Но недавно мир снова содрогнулся: в разных точках пространства вспыхнули аномалии, запах гари и озона напомнил о старых экспериментах, а где-то в воздухе раздался знакомый смех.
И снова трое. dr. Demon — чьи замыслы слишком часто завершаются облаками дыма. mr. Fade — мастер вносить сумятицу и превращать любой эксперимент в непредсказуемый аттракцион. mr. S — тот, кто всегда говорит «осторожнее», но первым тянется к кнопке с надписью «Не нажимать».

Но похоже, Лаборатория ждала не только их. В её коридорах уже слышны шаги других — тех, кто пока еще безымянен. Они появляются в уцелевших журналах, прячутся в строчках кода, мелькают в свете разрядов. Кто-то назовёт их исследователями, кто-то — безумцами. Но именно им предстоит вписать новые имена в историю Лаборатории X.

Конечно, все как всегда: Лаборатория Х снова в руинах, эксперименты в хаосе, а где-то в коридоре до сих пор жужжит установка, которую никто не помнит, зачем включили. Вам же, новобранцам, предстоит разобраться в этом бедламе, собрать осколки системы и попытаться удержать реальность от окончательного развала. Хотя, если честно, всем интересно другое: что на этот раз рванёт первым?

🔝Добро пожаловать в Лабораторию X.
NSK CTF возвращается!

Кстати, в ролике есть пасхалка, смотрите внимательнее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥42🔥21😁1💯1
Надеемся, что все успели решить первые два тренировочных задания. Время раскрывать карты:

✔️ 1 таск: совсем простенький, вставляем шифр в онлайн-сервис по дешифровке шифра цезаря (например: https://www.dcode.fr) и получаем флаг: nskctf{welcome_to_the_game_this_was_easy_wasnt_it}.

✔️ 2 таск: посложнее, решение на питоне смотрите в приложенных файлах, флаг: nskctf{th1s_0n3_is_mor3_confus1ng_than_simple_caesar_c1ph3r}.

Кстати, уже завтра будет следующий таск, не пропустите!

Также напоминаем, что формат флага, как на тренировке, так и на соревновании — nskctf{...}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42❤‍🔥21
⚡️ Успейте зарегистрироваться по ссылке https://sibguti-2025.timepad.ru/event/3574456/!
❤‍🔥311👍1🔥1😎1
Тренировочный таск #4

Не все случайности случайны. А сможете ли вы одолеть случайность?
import random
import sys

FLAG = "nskctf{fake_flag}"

random.seed()
print("Some very important data:", end=' [')
for _ in range(623):
x = random.getrandbits(32)
print(x, end=', ')
print(random.getrandbits(32), end=']')
print("\nEnd of very important data")

encrypted_flag = []
for char in FLAG:
r = random.getrandbits(32)
encrypted_flag.append(ord(char) ^ (r & 0xFF))

print("Encrypted flag:")
print(encrypted_flag)


В файлике ниже представлен вывод данной программы😑
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥622🥰2🔥1
output.txt
7.4 KB
3❤‍🔥2🔥1💯1
⚡️ Успейте зарегистрироваться по ссылке https://sibguti-2025.timepad.ru/event/3574456/!
❤‍🔥42🔥2👍1
Тренировочный таск #5

В прошлом задании вы подчиняли себе случайность, а в этом завершающем таске пришла пора подчинить себе время

До соревнований осталось меньше недели, успейте решить последний таск и отправить флаг Стёпе!

Файл с заданием прикреплен ниже 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳6❤‍🔥22🔥1🥰1
TimeMachine.zip
69.5 KB
🐳4🔥31❤‍🔥1
Команда KEVA снова в строю и снова разрабатывает таски для NSK CTF!

Команда KEVA образовалась в 2008 году и состоит из студентов Томского государственного университета систем управления и радиоэлектроники.

Осталось 4 дня до старта, команда уже на готове, успейте зарегистрироваться до 10 октября 12:00 (по Новосибирскому времени) 💙
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9🔥5👍21😎1
📄 Делимся исходным кодом wasm-модуля из 3 тренировочного таска:
static const char ERR[] = "try harder! you opened incorrect ports!";

static const unsigned char OK_A[29] = { 0xf9, 0xf9, 0x69, 0x5b, 0xd, 0xe2, 0x1, 0x7a, 0x5e, 0x7d, 0x5f, 0xe5, 0x15, 0x9d, 0x72, 0x35, 0x14, 0x5b, 0xd1, 0x2a, 0x91, 0xde, 0x11, 0xfd, 0x19, 0xfc, 0xad, 0x71, 0xc8 };
static const unsigned char OK_B[29] = { 0x97, 0x8a, 0x2, 0x38, 0x79, 0x84, 0x7a, 0x4b, 0x2d, 0x22, 0x28, 0x84, 0x66, 0xf0, 0x2d, 0x6, 0x75, 0x28, 0xa8, 0x75, 0xe5, 0xb1, 0x4e, 0x8f, 0x2a, 0x9d, 0xc9, 0x4e, 0xb5 };
static char OK_BUF[30];
static int OK_READY = 0;

static const char* ok_msg(){
if (!OK_READY){
for (int i = 0; i < 29; i++) OK_BUF[i] = (char)(OK_A[i] ^ OK_B[i]);
OK_BUF[29] = '\0';
OK_READY = 1;
}
return OK_BUF;
}

static int contains(const int *arr, int n, int v){
for (int i = 0; i < n; i++) if (arr[i] == v) return 1;
return 0;
}

__attribute__((export_name("callRouter")))
const char* callRouter(int a0,int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9){
const int expected[10] = {53872, 7, 43123, 1126, 52152, 24680, 38651, 41867, 2672, 12935};
int in[10] = {a0,a1,a2,a3,a4,a5,a6,a7,a8,a9};
for (int i = 0; i < 10; i++){
if (!contains(in, 10, expected[i])) return ERR;
}
return ok_msg();
}


открыли порты:
{53872, 7, 43123, 1126, 52152, 24680, 38651, 41867, 2672, 12935}

получили флаг: nskctf{1s_wasm_3asy_to_r3ad?}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤‍🔥21💯1
💡 Делимся решением 4 тренировочного таска

В Python для random используется псевдослучайный генератор MT19937, его состояние можно предсказать, имея 624 32-битных выхода, и соответственно узнать генерируемые далее числа.

Правильный флаг:
nskctf{rand0m_Not_s0_Rand0M}

Уже завтра раскроем решение финального тренировочного таска, успейте решить 🐾
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤‍🔥11🔥1