info_post
August 12

Отзыв о курсе WAPT от Codeby

Данный курс рассматривал давно и последним "Да" для решения пройти его и потратить 70к на курс, добили новые знакомые, которые раньше были студентами курса, а в дальнейшем и вовсе стали кураторами ( все ещё висят на сайте как кураторы) , и сейчас занимают крутые должности.

И так начнем, курс куплен, доступ в чатик получен!

Был выложен календарь с сроками, и доступы к платформам, для обучения теории и практики.

Коротко пробежимся по каждому модулю.

"Ведение" и "Мир пентеста"

Хотя курс говорил о том что он будет очень сложным, а на оф сайте в роадмапе по курсам он стоял как HARD уровень, да будут и вправду сложности с некоторыми задачками, но все же курс прям С НУЛЯ обучает, как установить окружение, как работают уязвимости, полезные материалы помогают разобраться в новом и вспомнить старый материал и уязвимости, раскрывая их с другой стороны. Получили впн на свою калюху и погнали решать таски.

*Хорошая заметка про саму подачу материала видео ( в котором приятный голос рассказывает что и как происходит) + идут документы pdf в котором уже полное объяснение.

"Пассивный сбор информации" и "Активный сбор информации"

Мы проходили постом выше, да там рассказывают о:

пассив сбор - мой пост

Что такое пассивная и активная разведка?
• Какие CLI-инструменты помогут? (whois, nslookup, dig)
• Как работают DNSDumpster и Shodan.io для безопасности?

актив сбор - мой пост

🔸 Инструменты командной строки:
• ping
• traceroute
• telnet
• nc (netcat)

"SQL-инъекции"

Вот тут уже дают сразу задуматься о своем скиле в sqli

я никогда в пентесте не использовал ручной метод, только SQLMAP, но этот блок обучил меня с нуля раскручивать sqli, писать самописные PoC для задачек,
Для меня который не знал о ручном методе, блок показался довольно сложным, даже после полного прохождения курса, я перепроходил все таски заново, и добивал не решенные ХАРДЫ.

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

Посмотрим только SQLI

Видим что 52 записи только ручной метод, по сравнению с автоматическим, можем понять, что ручной намного практичен и больше используется, да и вообще SQLMap был под запретом и не в авторитете, для решения задач с sqli

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

Самым неприятным моментом, где приходится попотеть это вытаскивать данные через "Слепые инъекция" чистым перебором ручным, но никто не запрещает писать свои скрипты, которые по итогу превращают работу в ожидания положительного результата.

Вот небольшая инструкция для успешного успеха.
1) находим длину символов бд
2) название бд

3) количество таблиц в бд и название


4) количество колонок в таблице и название


5) Получим значение

Суть ясна: мы можем применять разные виды SQL-инъекций, включая:

  • Слепую (Blind SQLi) – основана на анализе ответов (true/false).
  • Временную (Time-based) – использует задержки (например, SLEEP(5)).
  • UNION-атаки – для извлечения данных через объединение запросов.
  • Ошибочную (Error-based) – эксплуатирует сообщения об ошибках СУБД.
  • Out-of-Band (OOB) – передача данных через DNS/HTTP-запросы.
  • Stacked Queries – выполнение нескольких запросов подряд.

"XXE - уязвимости"

Для меня так полностью осталась не раскрыта на 100% тема, но суть ясна

у нас есть файл, меняем его на уязвимый код и готово

Суть уязвимости:
Приложение парсит XML с внешними сущностями (<!ENTITY>) и может читать локальные файлы, выполнять SSRF или даже RCE (в редких случаях).

Как работает?

  1. В XML-документ вставляется вредоносная сущность:


<!DOCTYPE title [ <!ENTITY xxe SYSTEM "file:///var/www/html/flag.txt"> ]> <title>Hello, &xxe;</title>

  1. Сервер обрабатывает XML и подставляет содержимое файла (/etc/passwd) в ответ.

Hello, cdb{aca255b8-db5e-4d5a-8f4c-8c9079e04885}

Что можно делать с XXE?

  • Чтение локальных файлов (file://).
  • SSRF (атаки на внутренние сервисы через http://).
  • Blind XXE (если данные не выводятся, но есть Out-of-Band утечки через DNS/HTTP).
  • XInclude (если нельзя изменить DOCTYPE, но есть <xi:include>).

Не сложный блок - хотя у меня и осталась неуверенность в полном понимании.

"CMD-инъекции"

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

Базовая CMDi - Easy
Возьмем простую задачку без защиты, имеется сайт который выполняет ping до сервера, для проверки "живой он или не живой".

ожидает от тебя только ip по типу 8.8.8.8

но если мы подставим к этой команде что то ещё, по типу ping 1.1.1.1;cat flag

то выполниться сначала пинг потом чтение файла и дальше задачки только становятся сложнее и интересней.

"SSTI и SSRF"

Сильные блоки которые познакомили меня с этими уязвимостями, хотя я знал только 1 пейлод - {{7*7}}
по идее если 7*7 и видим вывод на сайте 49 - значит мы нашли уязвимость, но тема довольно обширная и интересная, с своими шаблонизаторами.

Суть: Внедрение зловредного кода в шаблоны сервера (например, Jinja2, Twig, Freemarker).

Как искать?

  • Подставляем простое выражение в шаблон, например:plaintext{{7*7}}
    Если в ответе получаем 49 — уязвимость есть!

Чем опасна?

  • RCE (Remote Code Execution):jinja2{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}
  • Чтение файлов, доступ к переменным сервера.

Особенности:

  • Каждый шаблонизатор (Jinja2, Smarty, Twig) имеет свои синтаксис и payload-ы.
  • Blind SSTI — если результат не выводится, но можно вызывать задержки ({{ sleep(5) }}).

SSRF (Server-Side Request Forgery)

Суть: Заставляем сервер делать запросы во внутреннюю сеть или к сторонним ресурсам.

Как эксплуатировать?

  • Подмена URL в параметрах (например, url=http://internal-api/admin).
  • Обход защиты через:
    • DNS-обман (http://localtest.me127.0.0.1).
    • Альтернативные схемы (file:///etc/passwd, gopher://).

Чем опасен?

  • Доступ к внутренним сервисам (AWS Metadata, Redis, DB).
  • Чтение локальных файлов (если поддерживается file://).
  • Цепочка с другими уязвимостями (RCE через SSRF + десериализацию).

Почему темы кажутся сложными?

  • SSTI: Нужно знать синтаксис шаблонизатора и обходы sandbox.
  • SSRF: Требует понимания сетевых взаимодействий и обходов фильтров.

Примеры для SSTI:

python

# Jinja2
{{ config.items() }}  # Покажет конфигурацию Flask
{{ ''.__class__.__mro__[1].__subclasses__()[413]('cat /etc/passwd',shell=True,stdout=-1).communicate() }}

Примеры для SSRF:

http

GET /proxy?url=http://169.254.169.254/latest/meta-data/ HTTP/1.1

теперь о наболевшем)

"PHP-инъекции"

1. Разведка и фаззинг

FFUF в деле!
Утилита ffuf (или dirb, gobuster) — твой лучший друг для поиска уязвимых директорий и файлов:

bash

ffuf -w wordlist.txt -u http://site.com/FUZZ -e .php,.bak,.old

Что ищем?

  • /upload/ — возможность загрузить файл.
  • /?page=../../etc/passwd — Local File Inclusion (LFI).
  • /?page=php://filter/convert.base64-encode/resource=index.php — чтение исходников через PHP-фильтры.

2. LFI → RCE (Local File Inclusion to Remote Code Execution)

Если нашли LFI, пробуем:

  • Включение логов (/var/log/apache2/access.log) через User-Agent с PHP-кодом.
  • PHP-обертки (php://input, data://):httpPOST /?page=php://input HTTP/1.1 <?php system("id"); ?>
  • Чтение файлов в base64 (если вывод не виден):text/?page=php://filter/convert.base64-encode/resource=config.php

3. Загрузка шеллов (Upload + RCE)

Если нашли /upload/:

  1. Заливаем файл с расширением .php5, .phtml (если .php заблокировано).
  2. Пример простого шелла (shell.php):php<?php system($_GET["cmd"]); ?>
  3. Выполняем команды:httpGET /uploads/shell.php?cmd=id HTTP/1.1

Обход фильтров:

  • Magic Bytes (например, добавить GIF89a в начало файла).
  • Изменение Content-Type (image/jpeg).

4. WSO — «вишенка на торте»

Что это?
wso.php — популярный веб-шелл с графическим интерфейсом (файловый менеджер, терминал, брутфорс).

Как использовать?

  1. Заливаем wso.php через уязвимый загрузчик.
  2. Получаем полный контроль:
    • Чтение/запись файлов.
    • Выполнение команд (system, passthru).
    • Даже брутфорс SSH/FTP.


"Системные уязвимости"

В этом блоке предстоит просканировать на уязвимости и поискать в интернете готовые CVE

Тут знакомимся с полезной утилитой nuclei - которая сканирует вебчик и говорит о её мисконфигах, уязвимостях, версиях ПО и cms.

задачи просты - просканировать, найти уязвимости, про эксплуатировать, получить доступ и флаг.

Сам блок по сложности - легкий, если умеешь гуглить и знаешь английский )

"Обход авторизации"

Тут фазим сайтики логин/пароль через словари, перебираем креды, и получаем доступ. Применяем все знания)

Задачи по типу:

SQL Auth - Easy

Ваш знакомый, Петя, работает в компании под названием FastAndFurious.

Фирма небольшая и спецов немного. Петя думает, что их система авторизации просто иллюзия и просит вас это доказать.

Петя говорит, что нельзя так проверять данные через SQL.

"Ошибки конфигурации" или же missconfigs

Заходим на сайт, читаем ошибки, находим что за система/камера и т.д гуглим стандартные пароли, которые так часто любят не менять)

Пример задачки из блока - изи

По умолчанию для камер Mobotix используются следующие стандартные учетные данные:

Логин: admin

Пароль: пустой

В этом блоке все внимание на ошибки и название "бренда")

Есть задачка которая зацепила)

"BackUp Miss - Medium" оставлю описание таска ниже)

MomsHacker1337: Ё братухи! Прикиньте че!)))) Помните нам парняга из KRONOS сказал хакнуть сайтец того жирного гада? Он еще спрятал его в директорию с именем хэша 3ff777dbbb33b1e9bcfa1e7c093781eb))) DarckStrike777: Ха, ковырял сегодня утром! Лажа полная... Там норм так настроил админ, а че у тебя ? MomsHacker1337: Короче ваще хохма! Ихний адм свалил в лес сегодня! А менеджара полез чето добавлять и хренак! Лежит сайтец! XDDDD MonsterCrack: Да ты гонишь братуха! Ща гляну! MonsterCrack: ХАХАхаха!! И правда! Там ваще все нулячее! Как он так!?!? MomsHacker1337: Да черт его пойми! Нубас :))) DarckStrike777: Парняги! Зацените скрин переписки этого чуда с еойным шефондосом)))) Расшарил на нашем серваке - http://ip-address:81/hint.png MomsHacker1337: ХхахА! Ё!! А может скажем KRONOS шо мы это а?)) крутая схема че)) (None): Я бы не стал их обманывать парни... MomsHacker1337: Струсил Нёня??))) Не очкуй)))

"Все равно я не думаю, что стоит так поступать... К черту их. Но вот эта переписка... Хмм... Стоит проверить, может и правда можно получить доступ на сервер..." Hint:

Не самая лучшая идея хранить это файл на сервере Модификации разрешены, но не для каждого шаблона

"Клиентские атаки"

Заставляют подумать, какой файлик скинуть жертве чтобы он перешел, и что должно быть в файлике, методы соц. инженерии - присутсвуют.

Сидишь днями и думаешь "черт почему БРЕД не переходит по моей ссылке, мне же только его куки надо получить... а он... ну БРЕД..." часто нужно использовать base64.
Хороший блок, рассказывает о плюсе burp suite pro и его функции которая упрощает перехват через - collobarator.

"Эскалация привилегий"

Тут разговор пойдет уже когда мы находимся в системе и нужно поднять права, удивился даже, что кто приходил ко мне за помощью в этих тасках не слышали про сайт GTFObins

Сайтик реально полезен для разных ситуаций, где то твой пользователь есть в группе sudo, а где то тебе доступен только cron, и через него уже пишешь задачку для повышения прав своего юзера или понижаешь права на чтение файла.

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

А ещё, оказывается на момент статьи, я нашел ещё одну утилитку которая за вас автоматически повышает права под линукс используя cve - traitor

"Про Экзамен"

Выбрать дату экзамена.

Экзамен состоит из 16 заданий разной сложности (11 заданий базовой сложности и 5 заданий повышенной сложности), за решение разных заданий выдаётся разное количество баллов (в описании каждого задания будет указан его тип и количество баллов, выдаваемых за его выполнение). Для успешной сдачи экзамена нужно получить 8 баллов из заданий базового уровня и 6 баллов из заданий с повышенным уровнем сложности.

Во время экзамена вы решаете задания, собираете и сдаёте флаги. Формат флагов будет понятен сразу после решения первого задания, но он не отличается от формата флагов лаборатории.

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

Экзамен будет автоматически завершен только через 24 часа после его начала. (независимо от того, решили вы минимум, все или ни одного задания)

Как наберете минимум - будет уведомление. Да можно набрать минимум, но у меня была задача закрыть все на 100% и цель достигнута!

Экзамен - 24 часа дается на сдачу, задачи по сложности расставленные как они есть, то есть если hard - то реально hard... стоит оставить на потом, но я шел по порядку задачка за задачкой. Времени хватает, пользоваться SQLMap - нельзя и не советую, не поможет, ручками будет проще + свои PoС-скрипты.

Отзыв о курсе по пентесту

Вложил 70 000 ₽ — и ни капли не жалею. Получил ценный опыт, официальный сертификат и, что важнее всего, — нашел сообщество единомышленников, таких же увлеченных пентестом людей.

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


Отдельно отмечу куратора - Aleksandr Medvedev, приятный, грамотный, подскажет даже если не по обучение, 10/10!

Оценка: 9/10
Почему не 10? В материалах была теория по Windows, но на практике заданий под нее не оказалось. Хотелось бы больше реальных кейсов, но в целом — курс отличный.

Итог: Если ищете качественное обучение с живой практикой и сильным комьюнити — этот курс точно стоит рассмотреть. Советую!

Всем спасибо за прочтение статьи!!!

Основная группа обучения ИБ
Lab-группу с полезным софтом / книгами / аудио.
Чат для обсуждений, задавай свои вопросы.
P.S. С вами был @Fnay_Offensive
До новой встречи, user_name!