воскресенье, 25 июля 2010 г.

Получаем аккаунт на HAX.TOR

Итак, дя тех кто не в курсе, это вообще то такой веселый и интересный хакерский квестик. Но у него есть один БОООЛЬШОЙ плюс. Если пройти первые 5 уровней, то в подарок получаем аккаунт на пользование shell хостингом с 2000 полновесных мегабайтов места.

Подробнее об установленном софте можно почитать ТУТ

Итак, сразу начнем гробастать такое Щасте!

Первым делом переходим на http://hax.tor.hu/warmup1/ и попадаем на первое задание. В нем нам нужно ввести пароль. Внизу лежит подсказка, типа пароль лежит в исходнике. Не проблема. Открываем исходный код страницы и листаем вниз. Там после много переводов строк (это чтобы никто не нашел) видим функцию function a() на яваскрипте. Тут даже язык особо знать не надо (я например не заню, но все одно раскумекал), чтобы понять, как она работет. Там будет что то из серии

thepw = 'warmup1';
thepw = thepw+'mat';
thepw = thepw + 'roska';


Это значит что нам для пароля надо всего то собрать во едину строку все что в кавычках. в данном случае получился пароль warmup1matroska

Далее попадаем на второе задание. Не буду пояснять как его делать, сразу дам ответ, он все равно не меняется =). Итак, ответ
SSH-1.99-Server-VII


Третье задание. Тут надо выбрать несуществующий вариант из списка. Есть два пути решения этой проблемы, но я пошел по самому простому из всех самых простых. Так как форма передает данные методом GET, ну я и передал. Просто переходим по такой ссылке как
https://hax.tor.hu/warmup3/?chosen=Bacon

То есть просто дописываем ?chosen=Bacon к тому адресу что был

Четвертое задание: Тут тоже надо ввести пароль. Снизу дана ссылка на страницу на которой пароль лежит, но все браузеры блокируются. Лично я пошел по пути наименьшего сопротивления и использовал PHP


print_r(file_get_contents("http://hax.tor.hu/pwfor4/"));

и получил строку
The password is: spaceship


Пятое задание. Тут надо расшифровать хэш. Не знаю как насчет того, меняют ли они ответ, но алгоритм решения тут следующий. Нам выдается хэш. Он состоит из четного числа чисел. Методом проб и ошибок я понял, что каждый символ кодируется двумя числами. ТО есть разбиваем хэш на блоки по два числа. Далее, после недолгих экспериментов было выяснено, что первое число блока не меняется, если не меняется символ. То есть как раз первое число из блока отвечает за код символа. Ну а далее все просто. Я пробрутил все символы и выписал их коды. Вот что получилось.
СимволКод
a86
b85
c84
d83
e82
f81
g80
h95
i94
j93
k92
l91
m90
n89
o88
p71
q70
r69
s68
t67
u66
v65
w64
x79
y78
z77


То есть теперь все что нужно было сделать, это просто взять каждое нечетное число и сравнить его с таблицей.

Если кому надо - прикладываю таблицу кодов заглавных букв
СимволКод
A118
B117
C116
D115
E114
F113
G112
H127
I126
J125
K124
L123
M122
N121
O120
P103
Q102
R101
S100
T99
U98
V97
W96
X111
Y110
Z109