Логические лазейки в официальном стрельбище Берпсьюта
Логические лазейки в официальном стрельбище Берпсьюта

**1. Слишком большое доверие к средствам контроля клиента**.

**1.1 Достижение целей**

Используйте wiener, чтобы купить легкую кожаную куртку l33t.

Предоставленный аккаунт: wiener/peter

**1.2 Этапы атаки**

Первый шаг — войти в wienr и перейти в основной интерфейс. Я обнаружил, что кожаная куртка Lightweight l33t стоит 1337 долларов, но у нас есть только 100 долларов.

Отсюда следует, что нам нужно изменить его цену, чтобы совершить покупку.

Второй шаг — перейти к интерфейсу сведений о продукте и добавить его в корзину.

Третий шаг — захватить пакеты, добавленные в корзину, и найти следующие пакеты данных.

Попробуйте изменить значение параметра его цены. Затем отправляется в браузер.

**2. Логические ошибки высокого уровня**.

**2.1 Достигайте целей**

Войдите в указанную учетную запись и купите «Легкая кожаная куртка l33t». Предоставленные счета следующие:

wiener/peter

**2.2 Этапы атаки**

Первый шаг — зайти в интернет-магазин, войти в систему, а затем перейти на страницу с подробной информацией о легкой кожаной куртке «l33t».

Второй шаг — добавить товар в корзину аккаунта и зафиксировать ее. Передайте сюда отрицательное значение количества.

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

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

**3. Противоречивые меры безопасности**.

**3.1 Достигайте целей**

У эксперимента был логический изъян — любой пользователь мог получить доступ к функционалу, доступному только сотрудникам компании. Чтобы разрешить эксперимент, войдите в панель администратора и удалите сотрудника Карлоса.

**3.2 Этапы атаки**

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

Нажав на учетную запись, вы перейдете к интерфейсу входа в систему, но учетной записи у нас нет, поэтому регистрируем учетную запись.

Введите адрес электронной почты, указанный почтовым клиентом.

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

После входа в систему перейдите на страницу «Моя учетная запись» и введите внутренний адрес электронной почты компании, чтобы обновить адрес электронной почты.

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

**4. Неправильная реализация бизнес-правил**.

**4.1 Достижение целей**

В этой лаборатории есть логический недостаток в процессе покупки. Чтобы решить этот эксперимент, этот недостаток был использован для покупки «Легкой кожаной куртки l33t».

Эксперимент предоставляет следующие аккаунты:

wiener/peter

**4.2 Этапы атаки**

Первый шаг — войти в данную учетную запись и просмотреть домашнюю страницу.

Обнаружено, что в подчеркнутых частях есть купоны, поэтому можно получить определенную скидку.

Внизу есть кнопка «подписаться», что означает подписку на нашу рассылку. Нажмите, чтобы посмотреть.

После ввода адреса электронной почты будет предоставлен новый купон.

Второй шаг — приобрести указанный товар «Легкая кожаная куртка l33t» и использовать два купона.

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

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

**5. Логические ошибки низкого уровня**.

**5.1 Достижение целей**

Эксперимент не позволил адекватно проверить вводимые пользователем данные. Вы можете воспользоваться логическими ошибками в процессе покупки и приобрести товары по неожиданным ценам. Для того, чтобы решить этот эксперимент, вам необходимо приобрести «Легкую кожаную куртку l33t».

Вы можете войти под указанной учетной записью: wiener/peter

**5.2 Этапы атаки**

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

На втором этапе поместите пакет данных в функциональный элемент злоумышленника, а затем установите номер 99.

В его полезных нагрузках установите для него значение Null payloads и настройте его на непрерывную отправку.

Здесь пул ресурсов настроен на один поток.

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

Следовательно, можно сделать вывод, что когда объем покупки достигнет определенного уровня, общая цена станет отрицательной. Затем продолжайте увеличивать объем покупки, и общая отрицательная цена приблизится к 0. Если вы приобретете другие товары, цена будет в пределах 100.

Третий шаг — очистить корзину и снова использовать злоумышленника для атаки. Разница в том, что количество полезных нагрузок установлено на 323.

Затем установите количество покупки на 47 и повторите пакет.

1719065019_6676d9bb4615777429777.png!small?1719065027544
1719065019_6676d9bb4615777429777.png!small?1719065027544

Четвертый шаг — купить другие товары и довести цену до уровня ниже 100.

**5.3 Вопрос**

Почему общая цена в этом тире становится отрицательной, когда достигает определенной суммы?

Прежде всего, общая цена тира представляет собой целое число, которое представляет собой целое число. Это целое число со знаком, представленное в 32-битной двоичной системе, что означает, что его диапазон значений равен (2 147 483 647, -2 147 483 647).

Если положительное число превышает это значение, оно возвращается к наименьшему значению -2 147 483,64, образуя цикл.

**6. Конфликтная обработка ввода исключений**.

**6.1 Достижение целей**

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

**6.2 Этапы атаки**

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

Первый шаг — выбрать часть фрейма, которая является лабораторным доменом, в целевой функции Burp, затем щелкнуть правой кнопкой мыши по элементу и выбрать «Вовлеченность». tools > discovery контент, сканировать содержимое и пути его скрытых веб-сайтов.

Нажмите шаг 1, чтобы запустить.

Был найден путь администратора, и отобразилось 401.

Как видно из выделения, доступ к этому пути имеют только пользователи DontWannaCry.

Второй шаг — использовать функцию регистрации для регистрации, и следует отметить, что зарегистрированный адрес электронной почты имеет более 255 символов и длину 259 символов.

После входа в систему я обнаружил, что .net позади него отключен.

Третий шаг — использовать функцию, согласно которой максимальная длина адреса электронной почты составляет всего 255, а длина усекается для обхода регистрации.

После усечения сверхдлинного символа он становится ааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа ааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа ааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа аааааааааааааааааааааааааааааааааааааа@dontwannacry.com.exploit

**6.3 Дополнительные инструкции**

Код генерации символов следующий:

email = '@dontwannacry.com.exploit-0ae000d403cdcb3087e34d5301e7005e.exploit-server.net'

origin_email = '.exploit-0ae000d403cdcb3087e34d5301e7005e.exploit-server.net'

str = 'a'

print(len(email))

print(len(origin_email))

count = 239

whilecount > 1:

email = str + email

count -= 1

print(email)

print(len(email))

**7. Слабая изоляция конечных точек двойного назначения**.

**7.1 Достижение целей**

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

Эксперименту был присвоен специальный аккаунт: wiener/peter.

**7.2 Этапы атаки**

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

Второй шаг — захватить измененный пароль.

Третий шаг — войти в систему, используя измененный пароль.

**8. Неадекватная проверка рабочего процесса**.

**8.1 Достижение целей**

В ходе эксперимента были сделаны ошибочные предположения о последовательности событий в процессе покупки. Чтобы решить этот эксперимент, воспользуйтесь этим недостатком и приобретите «Легкую кожаную куртку l33t».

Вы можете войти в систему, используя данную учетную запись: wiener/peter.

**8.2 Этапы атаки**

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

Второй шаг — приобретать доступные продукты, а также фиксировать и наблюдать за процессом покупки.

Выяснилось, что в этом процессе окончательный расчет вызовет запрос /cart/checkout, который перейдет к запросу /cart/order-confirmation?order-confirmed=true, что означает подтверждение заказа.

Теперь у меня возникла смелая идея добавить в корзину указанный товар, а именно «Легкая кожаная куртка l33t», а затем воспроизвести пакет данных подтверждения заказа.

**9. Обход аутентификации с помощью ошибочного конечного автомата**.

**9.1 Достижение целей**

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

Вы можете войти в данную учетную запись: wiener/peter

**9.2 Этапы атаки**

Первый шаг — войти в систему под данной учетной записью и перехватить соответствующие пакеты данных.

Путем наблюдения обнаружено, что после входа в систему (то есть первого пакета данных) второй пакет данных должен получить страницу /role-selector, третий пакет данных должен выбрать свою роль после завершения выбора; четвертый пакет данных Пакет данных предназначен для перехода на домашнюю страницу.

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

Второй шаг — снова войти в систему, затем отказаться от пакета /role-selector и напрямую запросить домашний интерфейс.

После операции я обнаружил, что могу напрямую получить доступ к админ-панели.

**10. Ошибка в логике неограниченных денег**.

**10.1 Достижение целей**

В этом эксперименте есть логический изъян в процессе покупки. Чтобы решить этот эксперимент, воспользуйтесь этим недостатком и приобретите «Легкую кожаную куртку l33t».

Вы можете войти под данной учетной записью: wiener/peter.

**10.2 Этапы атаки**

Первый шаг — войти в систему под данной учетной записью и просмотреть страницу лаборатории.

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

После подписки отобразился купон SIGNUP30.

Это эквивалентно скидке 30%.

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

В главном интерфейсе есть соответствующие подарочные карты.

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

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

Теперь у меня есть смелая идея: повторно использовать купоны на скидку 30% для покупки продуктов подарочных карт, чтобы заработать больше денег на покупках (я тоже впервые вижу это - -).

Нечего сказать, просто начать и разбогатеть – это не мечта.

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

Первый пакет данных — положить подарочную карту в корзину для покупок.

Для второго пакета данных используйте купон на скидку 30%.

Третий пакет выполняет проверки расчетов.

Четвертый пакет данных – подтверждение информации о заказе.

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

Теперь мы хотим автоматизировать вышеуказанные операции, поэтому нам нужно использовать макрос в настройках Burp. (Эта функция также использовалась при грубом взломе версии 2.3 для обхода двухфакторной аутентификации во второй аутентификации)

1. Зайдите в функцию макроса, создайте макрос и выполните ряд настроек.

2. Примените макрос.

Четвертый шаг — отправить злоумышленнику пакет получения /my-account, а затем использовать нулевую полезную нагрузку для генерации 420 пакетов данных.

**11. Обход аутентификации Oracle посредством шифрования**.

**11.1 Достижение целей**

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

Вы можете войти в систему под данным пользователем - wiener/peter.

**11.2 Этапы атаки**

Первый шаг — перейти в интерфейс входа в систему и выбрать «Оставаться в системе», чтобы войти в систему.

Наблюдая за зарегистрированным пакетом данных, вы обнаружите, что в заголовке Set-Cookie соответствующего ответного пакета есть параметр пребывания в системе. Другими словами, появится еще один постоянный файл cookie.

А последующие запросы на веб-сайт приведут к созданию постоянного файла cookie.

На втором этапе, после завершения входа в систему, вы автоматически перейдете на страницу моей учетной записи.

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

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

Обратите внимание на второй пакет данных, который представляет собой переход первого пакета данных; после того, как первый пакет данных отправит запрос на изменение адреса электронной почты, он автоматически перейдет к запросу на страницу своей собственной учетной записи в этом запросе; Было обнаружено, что его файл cookie содержит уведомление о первом запросе, и, наблюдая за его ответным пакетом, было обнаружено, что это значение открытого текста данных отправленного нами параметра электронной почты.

Таким образом, можно сделать вывод, что когда вы меняете свой адрес электронной почты на странице своей учетной записи, а измененный адрес электронной почты имеет ненормальное значение, вы получите значение параметра уведомления, которое шифрует ненормальное значение, и впоследствии получите в ответ данные /my-account. странице пакета, расшифруйте значение параметра. Затем мы можем использовать эти готовые параметры шифрования и дешифрования.

Третий шаг — расшифровка постоянного файла cookie.

Скопируйте постоянный файл cookie внутри зашифрованного пакета.

Поместите скопированный файл cookie в расшифрованный пакет данных, затем просмотрите его простой текст и обнаружите, что состав постоянного файла cookie следующий: имя пользователя: метка времени.

Четвертый шаг: теперь у меня есть смелая идея: создать постоянный файл cookie администратора.

# Поддельный постоянный файл cookie администратора

administrator:1697360707193

# Используйте зашифрованный пакет данных для шифрования постоянного файла cookie, созданного в виде обычного текста.

7Ts30260HSz4jyVcSgzP%2baCtPFfWQrtnwwbYuFUxm9Q3b4cy%2bAgKmWpEIRjGVZD4maP7mX8NG%2f8NKMtSuXXxCA%3d%3d

Использует зашифрованный пакет для запроса зашифрованного текста своего файла cookie постоянного текста.

Затем скопируйте зашифрованный текст и поместите его в расшифрованный пакет данных, чтобы расшифровать его.

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

Пятый шаг — вернуться к расшифрованному пакету данных и обнаружить, что созданный нами открытый текст, очевидно, — администратор: 1697360707193, но открытый текст, расшифрованный после шифрования, — неверный адрес электронной почты: администратор: 1697360707193;

Я сейчас не смею делать поспешных выводов, поэтому сравните предыдущий ответный пакет зашифрованных и расшифрованных данных с уведомлением об ответном пакете.

Путем наблюдения мы обнаружили, что, поскольку это недопустимое значение параметра электронной почты, созданное нами, после шифрования и дешифрования к простому тексту будет добавлен префикс — «неверный адрес электронной почты:».

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

Отправьте зашифрованное значение администратора: 1697446306837 в раздел функций декодера; выполните декодирование URL-адреса и декодирование base64; удалите первые 23 байта, а затем выполните кодирование base64 и кодирование URL-адреса;

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

Просматривая пакет ответных данных, мы обнаружили ошибку: при использовании дополнительного пароля для расшифровки входная длина должна быть кратна 16. Другими словами, его необходимо заполнить до числа, кратного 16.

Шестой шаг — заполнить девять байт администратора: 1697360707193, введенного в адрес электронной почты, который имеет вид xxxxxxxxxadministrator: 1697360707193. Затем выполните пятый шаг.

Это успешно удаляет предыдущий «неверный адрес электронной почты:»

Седьмой шаг — скопировать эту строку зашифрованных значений в параметр cookie для пребывания в системе.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.