top of page

Level 6

Cамый секретный сервер Wintermute

Наши герои почти у цели!
Осталось преодолеть последнее препятствие - ввести пароль на секретном сайте Wintermute и открыть доступ к заветному чипу, на котором хранится весь украденный интернет.


Но как узнать пароль ?!!!

Как решить задачу ?

На этом уровне вам предстоит стать почти настоящими хакерами и взломать почти настоящий сайт.
Для этого скачайте вот эту программу.

Откройте terminal window на Mac или Linux или cmd на Windows и запустите


> python wintermute_http_server.cpython-36.pyc

Вы должны увидеть следующую надпись:

Starting Wintermute HTTP server...

Это значит, что всё работает нормально.
Теперь откройте любой браузер на том же компьютере и введите адрес:


http://localhost:8000

Перед вами возникнет сайт Evil Corporation Wintermute!
То, что вы увидите на сайте, даст вам ключ к решению задачи.

 

***

Если вы хотите понять, что здесь происходит, то вот простейшая диаграмма протокола HTTP (того самого, который помогает браузеру показывать вам выбранный веб-сайт):

В нашем случае роль сервера выполняет ваш собственный компьютер и программа wintermute_http_server. Когда вы открываете браузер и набираете в нём адрес localhost:8000, он посылает HTTP request на сервер, расположенный по адресу localhost (то есть, ваш собственный компьютер) и порт 8000 (это как бы идентификационный номер программы. В данном случае программа wintermute_http_server слушает порт 8000, поэтому она-то и отвечает на запрос).


Сервер, получив запрос от браузера, отвечает с помощью HTTP response, который содержит HTML, представляющий веб-сайт.
Интересно здесь то, что тот же самый HTTP request вы можете послать и без помощи браузера, а прямо из Пайтона, чем вы вскоре и займётесь. И, конечно же, в этом случае HTTP response получит не ваш браузер, а та же самая, написанная вами программа.

Что вам может понадобиться для решения ?

Прежде всего, вам надо будет догадаться, как расшифровать ключ к паролю (в данном случае "ключ" это не какое-то конкретное слово, а настоящее объяснение, как найти пароль). В этом вам поможет сайт по адресу localhost:8000 - там есть вся необходимая информация, но тщательно скрытая.

Конечно, даже после получения ключа к паролю вы всё равно не сможете вручную вводить варианты до тех пор, пока пароль не сработает.
Для нахождения правильного пароля вам нужно будет написать программу. Эту программу вы будете запускать параллельно с сервером 
wintermute_http_server.pyc (см. выше).
Программа взлома будет посылать на сервер различные варианты пароля, пока, наконец, она не найдёт правильный пароль. После этого вы сможете ввести его на сайт Wintermute.

Для того, чтобы посылать запросы HTTP-серверу, вам нужно импортировать модуль urllib.request.
После этого посылать варианты пароля можно с помощью следующего кода:


while True:
    with urllib.request.urlopen('http://127.0.0.1:8000?password=current_try') as response:
        html = str(response.read())


Здесь current_try - ваш очередной вариант пароля, а html - это строка, возвращённая HTTP-сервером.
В этой строке вас будет интересовать одно слово: если html содержит слово "Wrong" - это значит, что пароль неверный, и нужно продолжать поиски. Если слова "Wrong" нет - можете распечатать пароль и смело вводить его в своём браузере!

Узнать, содержится ли определённое слово в строке, можно с помощью функции find:


if html.find('Wrong') > 0:
   # password is wrong

   

Как раскрыть пароль ?

Вы уже прочитали выше, как именно раскрыть пароль главного секретного сервера Wintermute.
На этом уровне каждый играет за себя - совмещать части пароля больше не нужно.

Тот, кто первым сможет зайти на сайт и оставить там комментарий, и займёт первое место в игре и получит
главный приз!
Ну и, конечно, то же относится и ко второму, и ко всем следующим местам.



Но не расстраивайтесь, если вам не удалось занять первое место - это не имеет никакого значения.
Главное, что вы справились с Evil Corporation все вместе!!!

 

bottom of page