Реально ли пройти WAPT школьнику?

Реально ли пройти WAPT школьнику?

Введение

Приветствую всех, друзья. Как вы уже могли догадаться по названию, в этой статье речь пойдёт о моём прохождении курса WAPT. Для тех, кто не в теме - курс познакомит вас с тестированием WEB-приложений на проникновение и расскажет о самых распространённых уязвимостях на сайтах.

На курсе огромный, я бы даже сказал колоссальный упор сделан на практическую часть. Уже с первых уроков вам дадут файл VPN-конфигурации для доступа к лаборатории, где вы и проведёте большую часть своего времени.

Необходимые знания

Перед началом обучения рекомендую пройти бесплатный курс по пентесту и познакомиться с Linux (не обязательно Kali, подойдёт любой удобный для вас дистрибутив). Также, большим плюсом будет знание какого-нибудь языка программирования, в моём случае - Python. На Python будет очень легко написать скрипт для раскрутки (эксплуатации) уязвимости или что-то подобное. А опыт программирования веб-сайтов здесь будет как нельзя кстати.

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

Касательно затраченного времени - у каждого по-разному. Прохождение курса я начал в учебный год (на момент прохождения курса учился в 8 классе). В среднем, на изучение материалов и решение ВСЕХ заданий из новой темы у меня уходило около одного дня. Конкретно на новые задания я тратил около 3-4 часов. Когда-то больше, когда-то меньше. Главное - не лениться и не пропускать темы. Благодаря таблице успеваемости чувствуется некий соревновательный момент, что добавляет определённый азарт и служит стимулом не отставать от сокурсников.

Лаборатория курса

Вступительная часть

В первую очередь я установил на свой ПК софт для виртуальных машин и поставил Kali Linux из образа с официального сайта. Я не рекомендую повторять моих ошибок. Если у вас есть возможность - устанавливайте Kali Linux “полноценно”, как основную или вторую ОС - так вы сможете полностью раскрыть потенциал этой системы.

Образы виртуальных машин Kali Linux

Дальше в лаборатории открылись уроки про пассивный и активный фаззинг.

Насколько понял, под пассивным фаззингом подразумевается OSINT - разведка из открытых источников, получение базовой информации о сайте. В активном же мне предстояло найти директории на сайте, подобрать верный параметр в GET-запросе и всё то, что скрыто от обычного пользователя.

Помимо этих заданий был ещё и таск “С соседями надо дружить” - надо было найти сайт игровой тематики, который располагался на одном и том же сервере, что и codeby.net. Некоторые люди, даже дойдя до конца курса и успешно сдав экзамен, не смогли решить это задание. Советую не зацикливаться на одном векторе и не усложнять всё, ведь это только начало курса, и, соответственно, на одно задание не может быть выделено много времени.

Основная часть

После решения первых тасков и знакомства с лабораторией открывается самая важная и большая тема в курсе - Уязвимости. Если во вступительной части заметки можно было не делать, то здесь это будет необходимо. Даже если у вас хорошая память и вы никогда ничего не забываете - всё равно делайте заметки, они помогут вам на экзамене, и не только. Программу для заметок каждый выберет сам, я всё делал в CherryTree, но также можно использовать Obsidian или Notion.

Немного внимания хочу уделить одной из тем блока - SQL-инъекциям. В последнем таске (“Обойди с обратной стороны”) необходимо обойти аутентификацию на сайте. Это задание практически необходим к прохождению, ведь похожее задание есть и в экзамене.

SQL-инъекция

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

Конечно, давать абсолютно всю информацию для решения заданий новой темы в методичках/видео было бы глупо. Да и такой подход, когда всё дано “на блюдечке” не сильно эффективен. Безусловно, вектор для уязвимости вы сможете найти, но, как правило, для дальнейшей раскрутки (обход WAF, различные ошибки и пр.) придётся поискать информацию в интернете.

Помощь по заданиям

Большинство ответов вы найдёте сами, если установите причинно-следственную связь в возникшей у вас проблеме. И всё же, если у вас долгое время не получается решить таск - обратитесь к кураторам, они всегда помогут и направят в нужном направлении, но не решат задание за вас.

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

Распишите все свои действия и попытки решить задание, тогда с большей вероятностью вы получите полезный ответ.

Экзамен

После решения всех заданий следует экзамен. На экзамене будут только те уязвимости, которые разбирались на курсе. Подсказки к заданиям будут, но не бесплатно - за каждую придётся отдать 1600 баллов. К слову, в лаборатории всего можно набрать 3850 баллов, соответственно - всего 2 подсказки. Так что, если ты смог прорешать все задания - на экзамене тебе будет проще. Мне пришлось воспользоваться обеими подсказками.

Перед экзаменом желательно как следует подготовиться - он длится 24 часа, а за компьютером вы проведёте не меньше 5 часов для того, чтобы набрать баллы для сдачи. Рекомендую выспаться и выделить для этого целый день, на всякий случай.

Минимальные баллы для сдачи экзамена я набрал за 6 часов. Решил большую часть из всех заданий, остальные два решить не вышло.

Экзамен

Вывод

После успешной сдачи экзамена я был очень рад, что всё прошло не зря. Я обучился популярным видам атак на веб-приложения. Могу с уверенностью сказать, что это лучший курс по веб-пентесту в ру сегменте. Других качественных курсов по вебу на русском языке я не встречал. 

Если вы хотите начать путь в пентесте - WAPT вам очень поможет. Совсем с нуля проходить курс не рекомендую - будет очень трудно, и поначалу большая часть времени будет уходить не на прохождение курса, а на решение второстепенных задач (установка дистрибутива Linux, решение ошибок, использование незнакомой для новичков файловой системы).

После WAPT

Чтобы развиваться и не потерять навыки я начал выбирать площадку для практики. Разумеется, только после прохождения курса решать сложные задания никто не станет. Сначала я попробовал HackTheBox, но там мало заданий по веб-пентесту, которые вы сможете решить сразу после курса. Поэтому мой выбор пал на TryHackMe. На этой площадке больше заданий уровня “Easy” и “Medium” чем на других, а также присутствуют весьма интересные таски.