Ангара-1: Вход в ОС
Ангара-1: Вход в ОС
Platform: bug-makers | Category: Misc | Type: Challenge | Difficulty: Easy | OS: Linux | Author: XESXOR | Date: 2026-05-25 | Status: Solved Techniques: keyboard_layout_mapping, russian_to_english_layout_conversion
Summary
Task: a BugOS login page with a password reminder file containing garbled Russian text. Solution: the text was typed using Russian keyboard layout instead of English — mapping each Russian character to its English keyboard equivalent reveals the password and flag.
Ангара-1: Вход в ОС — Bug Makers
Description
Эта первая задача из трех связанных. Решать задачи можно только по порядку, т.к следующие части связаны с предыдущими. Цель миссии всех трех задач – запустить ракету в космос. Сперва нужно войти в систему управления полетами, но пароль потерялся, нужно его как-то восстановить. Авторизацию в нашу новую ОС BugOS настраивал приглашенный специалист. Он оставил описание по восстановлению пароля, но что-то с этим текстом не так.
English summary: This is the first of three linked challenges. The goal across all three is to launch a rocket into space. First, we need to log into the flight control system (BugOS), but the password is lost. A specialist left a password recovery note, but "something is wrong with the text."
Analysis
The main page at http://31.207.77.216:4016/ shows a BugOS login form requiring a password. There's a "Напомнить пароль" (Remind password) link pointing to /assets/remind-password.txt.
The file contains what appears to be Russian gibberish:
Дщпшт зфыыцщквЖ с836468в539у5692аа5с5ф7а65а7в2уу
Фтв еру адфп ащк еру ашкые зфке ща еру ефылЖ ИгпСЕАХ40аф44аи74ф4в5а22у909у0с83у2с879Ъ
The key clue is in the challenge description: "что-то с этим текстом не так" (something is wrong with this text). The text has recognizable structure — it looks like sentences with punctuation and hex-like characters mixed in — but the Russian words make no sense.
This is a classic sign of keyboard layout mismatch: the text was typed with the Russian keyboard layout active, but the intended input was English. Each physical key on a keyboard produces a different character depending on whether the Russian or English layout is active.
Solution
Step 1: Identify the keyboard layout mapping
On a standard Russian/English keyboard, each key has two characters. For example:
- The key for English
Lproduces Russianдin Russian layout - The key for English
oproduces Russianщ - The key for English
gproduces Russianп
Step 2: Apply Russian → English keyboard mapping
The full mapping for the Russian keyboard layout to English:
python read-only • copy allowed#!/usr/bin/env python3 # Russian-to-English keyboard layout mapping ru = "йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ" en = "qwertyuiop[]asdfghjkl;'zxcvbnm,.QWERTYUIOP{}ASDFGHJKL:\"ZXCVBNM<>" text = "Дщпшт зфыыцщквЖ с836468в539у5692аа5с5ф7а65а7в2уу" text2 = "Фтв еру адфп ащк еру ашкые зфке ща еру ефылЖ ИгпСЕАХ40аф44аи74ф4в5а22у909у0с83у2с879Ъ" mapping = str.maketrans(ru, en) print(text.translate(mapping)) print(text2.translate(mapping))
Step 3: Decode the text
The decoded output:
Login password: c836468d539e5692ff5c5a7f65f7d2ee
And the flag for the first part of the task: BugCTF{REDACTED}
Key character mappings used:
| Russian | English | Notes |
|---|---|---|
| Д | L | First letter of "Login" |
| щ | o | |
| п | g | |
| ш | i | |
| т | n | |
| з | p | First letter of "password" |
| ф | a | |
| ы | s | |
| ц | w | |
| к | r | |
| в | d | |
| Ж | : | Colon separator |
| у | e | |
| а | f | |
| И | B | First letter of "BugCTF" |
| г | u | |
| С | C | |
| Е | T | |
| А | F | |
| Х | { | Opening brace |
| Ъ | } | Closing brace |
| |
Step 4: Verify the password
bash read-only • copy allowedcurl -X POST http://31.207.77.216:4016/login \ -d "password=c836468d539e5692ff5c5a7f65f7d2ee"
The login succeeds, confirming the password is correct and granting access as user operator.