В Python для random используется псевдослучайный генератор MT19937, его состояние можно предсказать, имея 624 32-битных выхода, и соответственно узнать генерируемые далее числа.
Правильный флаг:
nskctf{rand0m_Not_s0_Rand0M}
Уже завтра раскроем решение финального тренировочного таска, успейте решить Please open Telegram to view this post
VIEW IN TELEGRAM
❤7❤🔥1⚡1🔥1
using System;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;
namespace WinFormsApp1
{
public class CountdownForm : Form
{
private readonly Label _label;
private readonly System.Windows.Forms.Timer _timer;
private int _seconds = 2592000;
private static readonly byte[] Key = Convert.FromBase64String("T9muLMd0UpRYgb99ZqihElEuegrsWFtvA6c88wznaRw=");
private static readonly byte[] IV = Convert.FromBase64String("wljtQ0QGd4NNOU+5VvMjlw==");
private static readonly byte[] Cipher = Convert.FromBase64String("3YfjykEeazHsGKp5hykYgzYWa+HXaT5c6PtYPfNB9B8=");
public CountdownForm()
{
Text = "Time Machine";
StartPosition = FormStartPosition.CenterScreen;
ClientSize = new System.Drawing.Size(800, 150);
_label = new Label
{
Dock = DockStyle.Fill,
TextAlign = System.Drawing.ContentAlignment.MiddleCenter,
Font = new System.Drawing.Font("Segoe UI", 14f, System.Drawing.FontStyle.Bold),
Text = "Wait " + _seconds.ToString() + " seconds for flag to be revealed"
};
Controls.Add(_label);
_timer = new System.Windows.Forms.Timer { Interval = 1000 };
_timer.Tick += OnTick;
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
_timer.Start();
}
private void OnTick(object? sender, EventArgs e)
{
_seconds--;
if (_seconds > 0)
{
_label.Text = "Wait " + _seconds.ToString() + " seconds for flag to be revealed";
}
else
{
_timer.Stop();
_label.Text = DecryptFlag();
}
}
private static string DecryptFlag()
{
using var aes = Aes.Create();
aes.Key = Key;
aes.IV = IV;
aes.Padding = PaddingMode.PKCS7;
using var decryptor = aes.CreateDecryptor();
var plaintextBytes = decryptor.TransformFinalBlock(Cipher, 0, Cipher.Length);
return Encoding.UTF8.GetString(plaintextBytes);
}
}
}
Для решения достаточно воспользоваться dnSpy: либо поменять оставшееся количество секунд дебаггером в runtime, либо расшифровать AES, из декомпилированного кода получив
Key, IV, и Cipher.Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3❤🔥1👍1🥰1
Каждому участнику NSK CTF необходимо подписаться на данный канал и обязательно вступить в чат, чтобы не пропустить важную информацию.
Ссылка на канал: https://t.iss.one/nskctf
Ссылка на чат: https://t.iss.one/+lJNrLRVUTwc0YWQy
Тех, кто уже с нами, просьба сообщить данную информацию сокомандникам в ближайшее время! Очень важно, чтобы ВСЕ участники из команды зашли и в канал, и в чат для оперативного информирования!
Всем успехов на соревновании
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
NSK CTF Канал
Сайт: https://nskctf.ru/
По всем вопросам: @user_9_9_9_9
По всем вопросам: @user_9_9_9_9
❤1❤🔥1🔥1👌1
⚡️Уважаемые участники!
Открыто решение задач, адрес игровой платформы: https://game.nskctf.ru/
Данные для входа были высланы на почту капитану команды. Если не получается войти, то:
1) попробуйте скопировать логин и пароль в блокнот, после чего скопируйте оттуда на сам сайт (не напрямую из почты!)
2) можно воспользоваться функционалом сброса пароля (https://game.nskctf.ru/reset_password)
Открыто решение задач, адрес игровой платформы: https://game.nskctf.ru/
Данные для входа были высланы на почту капитану команды. Если не получается войти, то:
1) попробуйте скопировать логин и пароль в блокнот, после чего скопируйте оттуда на сам сайт (не напрямую из почты!)
2) можно воспользоваться функционалом сброса пароля (https://game.nskctf.ru/reset_password)
❤🔥5⚡1🔥1
Если у кого-то до сих пор не получается войти, попробуйте в поле логина указать почту на которую пришёл пароль! Именно почту, не тот логин что в письме.
🔥3❤🔥1❤1
У кого не получается войти и уверены что перепробовали все методы выше, пишите https://t.iss.one/user_9_9_9_9, решим вручную
🤝1
⚡️ Для стабилизации таска
https://pwn.tasks.nskctf.ru:48539/
https://pwn.tasks.nskctf.ru:49539/
https://pwn.tasks.nskctf.ru:50539/
https://pwn.tasks.nskctf.ru:51539/
https://pwn.tasks.nskctf.ru:52539/
(это один и тот же таск, развёрнут в нескольких экземплярах для обеспечения стабильности работы)
каждый экземпляр перезапускается каждые 30 секунд
grandmaster (pwn) приняты меры: теперь он развёрнут в 5 экземплярахhttps://pwn.tasks.nskctf.ru:48539/
https://pwn.tasks.nskctf.ru:49539/
https://pwn.tasks.nskctf.ru:50539/
https://pwn.tasks.nskctf.ru:51539/
https://pwn.tasks.nskctf.ru:52539/
(это один и тот же таск, развёрнут в нескольких экземплярах для обеспечения стабильности работы)
каждый экземпляр перезапускается каждые 30 секунд
👍3
⚡️Выложили хинт на
подсказка (исходники виртуальной машины) в файле
dig-deeper (reverse)подсказка (исходники виртуальной машины) в файле
hint.zip (прикреплён к заданию)👍4👾1
⚡️Выложили хинт на
можно подменить
grandmaster (pwn)можно подменить
render_plain на render_exec с помощью off-by-one (поищите, где же тут off-by-one)🐳6🌚1
⚡️⚡️⚡️⚡️⚡️МЕГАХИНТ на dig-deeper (reverse)
Остаётся чуть меньше 30 минут до конца игры, пришло время МЕГАХИНТА!
При совпадении счёта с
Остаётся чуть меньше 30 минут до конца игры, пришло время МЕГАХИНТА!
При совпадении счёта с
6827549636465341 будет выведен флаг (как в консоль, так и в окошко игры). Советуем устанавливать значение чуть меньше, например, 6827549636465338, для стабильности вывода флага. После чего запускаем игру и через несколько секунд получаем флаг. Учтите разницу отображаемого и реального счёта в 100 раз (displayScore := g.Score / 100), поэтому менять g.Score (именно его надо менять, не displayScore!) надо на значение 682754963646533800. Советую менять в рантайме с помощью gdb (pwndbg). Если с первого раза флаг не вывелся (перескочило значение 6827549636465341, не "задев" его), то со второго или третьего точно должно сработать.⚡10
NSK CTF Канал
⚡️⚡️⚡️⚡️⚡️МЕГАХИНТ на dig-deeper (reverse) Остаётся чуть меньше 30 минут до конца игры, пришло время МЕГАХИНТА! При совпадении счёта с 6827549636465341 будет выведен флаг (как в консоль, так и в окошко игры). Советуем устанавливать значение чуть меньше, например…
Первое решение от команды Novosploit! Успейте воспользоваться МЕГАХИНТОМ!
❤🔥4👾2❤1
Соревнования вернулись спустя 7 лет, но, несмотря на это, школьные команды Новосибирской области и соседних регионов активно регистрировались для участия.
Награждение победителей состоится 16 октября 2025 года. Благодарим за участие и ждём вас следующей весной на NSK CTF 2026
Все подробности тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
IX Кубок CTF России | Канал
Девятый эпизод самого легендарного российского CTF-соревнования
По всем вопросам: @wiskas_rawr
По всем вопросам: @wiskas_rawr
❤7❤🔥4👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 — очень тяжело
❤️🔥 — 50/50
❤️ — легко
А также просим вас поделиться фидбэком о соревнованиях, заполнив форму. Ваша обратная связь очень важна для нас, ведь мы стремимся сделать турниры интереснее!
Кстати, платформа снова открыта, поэтому вы можете продолжить решать таски, но уже вне зачета
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥57❤🔥20❤9