Pull to refresh

HaxTor — проходим «разогрев» и получаем бесплатный шелл

Reading time4 min
Views3.3K
Здравствуйте!
Сегодня я хочу поговорить с вами о таком ресурсе, как HaxTor. Этот сайт сделан специально для того, чтобы его взламывали, это грубо говоря :) В нем содержатся 5 разогревочных уровней, которые можно пройти и получить себе бесплатный шелл на 2 Гб (по крайней мере это было при тех временах, когда я его получал, сейчас не уверен :)) Затем, после разогрева, можно продолжить усовершенствовать и проверять свои навыки в разных областях ИТ. Вот приведу список заданий, которые дают после разогрева:
Level 1. Make a nasa.gov URL display a text of my choice
Level 2. debfKNH1AvtBo deGH9Aq./kiSY denjFRfA8kzL2
Level 3. Recognize
Level 4. IP address is 72.14.221.104. What contains 'art' that points to it?
Level 5. Password is the owl's name
Level 6. Let's see you do some easy SQL ninjitsu
Level 7. snifflog.txt — ngrep format
Level 8. Password is on a picture: not available from anywhere
Level 9. Elementary Maths
Level 10. A poem
Level 11. As simple as hashing a string
Level 12. Ultra Turing
Level 13. PHP with source — needs exploiting and/or o-o-t-b thinking
Level 14. Recognize #2
Level 15. download.com's uptime
Level 16. root:hsmfs;g@10.0.0.5
Level 17. Feed me!
Level 18. Find all usernames
Level 19. red+blue+green =?
Level 20. Recognize #3
Level 21. Backdoor on a suspended domain
Level 22. MS-Word
Level 23. Too easy
Level 24. Defense Intelligence Agency
Level 25. BitNinja
Level 26. PHP filemanager with source — needs more exploit
Level 27. The photo doesn't load
Level 28. telnet://hax.tor.hu:1800 — Google Word Game
Level 29. Circumvent PHP filters for XSS
Level 30. Create the given image using a number
Level 31. Find all usernames v2.0
Level 32. Exploit file2image.php
Level 33. Defense Information Systems Agency — 209.22.99.66
Level 34. Password is in the image
Level 35. Follow the pattern
Level 36. Root password needed
Level 37. password = f(200)
Level 38. Name the malware
Level 39. China Science And Technology Network
Level 40. I can has satellite?
Level 41. Poem vs PHP
Level 42. Criminal Minds FBI haxor scene
Level 43. CNN's router
Level 44. Blind SQL injection
Level 45. Frogs n Toads
Level 46. Seizure!!!
Level 47. Backdoor is listening on host — find it
Level 48. .htaccess editor vs basic auth
Level 49. Forged DNS from the CIA
Level 50. No info


Теперь начнем работу над получением шелла ;)

1-ое задание
Здесь вас просят ввести пароль, который по заверениям подсказки находится в исходниках. Давайте посмотрим в исходный код страницы. Проанализировал HTML-код формы, мы узнаем какая функция вызывается при нажатии на кнопку GO:

<form method="GET" action="/warmup1/" name="lf" onSubmit="a(); return false;">
				Password: <input name="pw" class="input">
				<input type="button" class="button" value="Go" onClick="a()">
			</form>

Видим что вызывается функция по имени «а». Давайте же посмотрим наш исходный код, в надежде увидеть эту функцию. Есть, мы ее находим в самом конце исходного кода:

function a(){
	thepw = 'warmup1';
	thepw = thepw+'lol';
	thepw = thepw + 'copter';
	if (document.lf.pw.value==thepw) {
		document.location = '/'+thepw; } else { alert('That is not correct. Please try again.');
	}
}

Судим по коду и узнаем, что пароль хранится в строке thepw. Получаем при конкатенации строк вот такой пароль: warmup1lolcopter. Вбиваем его в поле и нажимаем Go. Переходим на следующий уровень.

2-ое задание
Сейчас этот эпизод не работает, поэтому можно просто вбить fail и нажать Go :)

3-ое задание
Здесь нужно выбрать со списка элемент Bacon, которого нету в этом списке. Как же его выбрать? Та очень просто. Заходим в исходный код страницы и видим строки:

<form method="POST" action="/warmup3/" name="lf">
				<input type="hidden" name="crypt_key" value="d719b8adfc6e3841ffc856d52abc5fb9">
				<select name="chosen" class="select">
					<option value="Apple">Apple</option>
					<option value="Lemon">Lemon</option>
					<option value="Mango">Mango</option>
					<option value="Orange">Orange</option>
				</select>
				<input type="submit" class="button" value="Proceed">
			</form>

Из исходника мы видим, что имя переменной, которая передается на сервер «chosen». Именно в этой переменной и передается выбранный нами элемент в списке. Давайте же попробуем передать бекон через глобальные переменные. Составляем запрос: ?chosen=Bacon. Добавляем его к нашей странице. Получаем вот такой запрос: hax.tor.hu/warmup3/?chosen=Bacon. Нажимаем Enter и переходим на следующий уровень :)

4-ое задание
Здесь нам предлагают перейти на страничку с паролем, но при переходе почему-то вылетает вот это: This browser is banned: Opera/9.80 (X11; Linux i686; U; ru) Presto/2.9.168 Version/11.50. Что же делать в этом случае? В этом случае тоже все очень просто. Можно решить двумя способами: первый — это через телнет, а второй через локальный веб-сервер и PHP. Я выбрал второй способ, так как с запросами GET и HTTP не особо знаком. Если у вас стоит Linux и NetBeans, настроен Apache на локальном сервере и настроен PHP, то это не будет проблемой ;) Заходим в NetBeans (или любой другой редактор, это ваши вкусы и предпочтения) и пишем такой код:

<?php
echo file_get_contents('http://hax.tor.hu/pwfor4/index.php');
?>

Вбиваем в адресную строку localhost и видим текст: The password is: spaceship. Заходим в хакстор и вбиваем в поле spaceship. Переходим на следующий уровень :)

5-ое задание и последнее для получения шелла :)
Здесь нам дан хеш пароля, и нам нужно его расшифровать. Я же сразу в тупую кинул его в John Ripper, но ничего в ответ не получил. Начал анализировать этот хеш и пришел к выводу что каждая четная позиция этого хеша не изменяется при соблюдении количества символов и меняется при их изменении. Начал подставлять разные символы, каждый раз увеличивая длину пароля на единицу, и наконец-то я нашел совпадение этих позиций при длине пароля в 5 символов:
Исходный хеш: 83 230 69 128 66 214 89 24 92 204
Хеш моего пароля 12345: 6 230 5 128 4 214 3 24 2 204
Значит каждая нечетная позиция означала сам код символа. Начал изучать таблицы ASCII, UTF и прочие таблицы. Перебрал все совпадения с таблицей и ничего не получилось. Тогда я заметил, что если идти по алфавиту, то и сам код будет возрастать на единицу или спадать. Тогда я начал делать вручную «тупой» подбор пароля, подбираясь все ближе и ближе к самому паролю :) В итоге я попал на слово "drunk". Его хеш полностью отвечал исходному хешу и меня пропустило на страницу регистрации :)

После регистрации вы получаете данные доступа к своему аккаунту, что позволяет вам решать дальнейшие головоломки и управлять своим бесплатным шеллом :)
Tags:
Hubs:
Total votes 23: ↑15 and ↓8+7
Comments20

Articles