Я поняла, что ничего не знаю
и как их можно обойти? Сейчас разберемся!
Я поняла ,что ничего не знаю.
http://stihi.ru/2025/02/02/4569
Людмила Кичигина
***************LK
Я поняла ,что ничего не знаю.
Доверчева как серая овца..
Вот от того ,так часто я страдаю
От хакера -хмельного молодца..
Творцы,мой путь не повторяйе
Ведь интернет недобрым может быть
Доверитесь -так после не страдайте
Воровку флешку требуя забыть..
Учитесь милые мои ,коль молодые
А я во всём на Бога положусь
Открыла тайны хакеров впервые
И на печаль ,наверно,может быть..
Учитесь все ведь на душе так гадко
Она овцою.. не желает быть..
Вот поделилась ,на душе так сладко
Что и овечку ..можно полюбить!
Я поняла что ничего не знаю.
Доверчева как серая овца..
Вот от того ,так часто я страдаю
От хакера -хмельного молодца..
https://olegon.ru/showthread.php?t=35829
© Copyright: Людмила Кичигина, 2025
Свидетельство о публикации №125020204569
Как защититься от вредоносной флешки https://vk.com/greyteam
При желании вскрыть чужую сеть хакер может воспользоваться различными высокотехнологическими способами или же подбросить USB-накопитель с «подарком» сотрудникам компании, интересующей хакера. С каждым годом этот метод становится все менее популярным, но он все еще проникает в производственные сети промышленных компаний. Вот сейчас мы и узнаем как защититься от вредоносной флешки. В данной публикации вы так же найдете информацию о том, как работает защита USB-устройств и как обмануть системы белых списков с помощью создания клонов.
Блокировка флешки
В чем смысл их блокировки? Это необходимо для того, чтобы исключить возможность проникновения вируса-шифровальщика внутрь IT-инфраструктуры компании, что бы никто не таскал информацию домой и не приносил игрушки в офис. По-разному в разных офисах работают сотрудники охраны и администраторы. Самые плохие случаи – это когда порты закрыты (закрыты частично или полностью), а также залиты эпоксидной смолой или опломбированы. В более простых случаях порты отключаются BIOS / UEFi (что-то вроде USB Controller = Disabled).
Если администратор не хочет ломать что-то, он может настроить реестр и групповые политики Windows. Например, для того чтобы полностью заблокировать USB-накопитьель, откройте данную ветку реестра:
В случае установки параметра запуска на 4, ваши флешки перестанут работать. В группе политики (gpedit.msc), вы смотрите в сторону оснастки «Конфигурации компьютера ; Административные шаблоны ; Система ; Доступ к съемным запоминающим устройствам».
На винде есть политика, связанная с съемными носителями
В каких еще вариантах можно ограничить нежелательное подключение мультимедиа на ваш компьютер? Некоторые компании используют дополнительные средства защиты информации ( SIS) — тот же KAV или DLP-системы, Secret Net ( SIS от nsd) и другие. А кто-то и вовсе ставит на компьютер специальный драйвер для проверки носителя из белого списков.
Настройки СЗИ могут запретить подключение вообще всех устройств, только устройств из черного списка или разрешить подключение девайсов из белого списка. На последнем варианте мы с тобой и остановимся поподробнее.
Как их различать?
Чем отличаются одна от другой флэшки? Конечно, у флешек есть производитель, объем и другие параметры… Но обычно производители снабжают каждую флешку серийным номером, который был прописан в ее прошивке.
Чтобы посмотреть его в винде, можешь использовать такую команду Windows Management Instrumentation — WMIC (предварительно подключив флешку):
wmic path win32_usbhub Where (Caption="Запоминающее устройство для USB") get DeviceID
Получаем примерно такой вывод команды:
DeviceID
USB\VID_13FE&PID_4200\070867948D560839
Полученный DeviceID содержит:
VID — Vendor ID, идентификатор производителя. 13FE — Kingston Technology Company Inc.;
PID — Product ID, идентификатор изделия. 4200 — Platinum USB drive mini;
Serial — уникальный серийный номер флешки 070867948D560839.
VID и PID используются операционкой для поиска дров. Полный список можно посмотреть, например, на сайте Linux USB.
По DeviceID флешка прописывается в реестре:
Также ты можешь получить всю эту информацию с помощью программы USBDeview.
Однако нередки случаи, когда в качестве идентификатора флешки используется серийный номер тома, который можно получить командой vol или dir.В некоторых случаях в качестве идентификатора флешки используется серия номеров тома, которая может быть получена командой volили dir.
Команды vol и dir
Команды vol и dir
Почему не стоит использовать VSN (в Linux — UUID) для идентификации флешек? Это связано с тем, что они определяют логические тома файловой системы. Чтобы изменить VSN в случайном порядке, вам необходимо отформатировать раздел. Конечно, это не так часто происходит и для винчестеров эта процедура достаточно редка, но флешки форматируются довольно часто.
Что делать с ноунеймом
Для китайских noname-флешек, производители которых «кладут» на соответствие девайса всевозможным рекомендациям и стандартам, такой серийник будет меняться в зависимости от USB-порта, в который ты подключил устройство, и, разумеется, положения звезд на небе. Если твою флешку безопасники пропишут в белый список только на одном порте, то на другом ты ее использовать не сможешь.
Вот пример такой флешки:
DeviceID=USB\VID_23A9&PID_EF18\6&45CEA456&0&2
Первое, что бросается в глаза, — серийник содержит несколько амперсандов. На самом деле у этой флешки нет серийника вообще. Когда & — второй символ серийного номера, это означает, что система каждый раз при подключении генерирует псевдосерийник сама, то есть он динамический. Проверим это, просто подключив флешку в другой порт:
DeviceID USB\VID_23A9&PID_EF18\6&45CEA456&0&1
Как ты видишь, при изменении порта в серийнике меняется номер этого порта (&2 в конце превратилось в &1). Так что нужно или добавлять в список номер такой флешки на всех портах, или использовать только выделенный порт для ее подключения.
В некоторых СЗИ используют иные свойства флешек. Все доступные свойства ты можешь просмотреть, щелкнув на значке флешки правой клавишей мыши и выбрав в контекстном меню «Свойства ; Оборудование ; Сведения». В выпадающем списке наиболее полезные сведения содержатся в строках «Понятное имя», «Путь к экземпляру устройства» и «Родитель» (тот же DeviceID).
У китайских флешек эти параметры меняются, как генератор случайных чисел. Например, путь к экземпляру устройства для первого и второго USB-порта выглядит так:
USBSTOR\DISK&VEN_AI&PROD_MASS_STORAGE&REV_\7&6266D645&0
USBSTOR\DISK&VEN_AI&PROD_MASS_STORAGE&REV_\7&977ABD2&0
Для нормальной флешки здорового человека данный идентификатор стабилен:
Здесь:
JETFLASH — производитель;
TRANSCEND_8GB — название устройства;
1100 — номер ревизии;
BBPIX7EB2VMBFI48 — серийный номер.
У разных флешек из одной партии меняться будет только серийник.
Как палят?
Давай посмотрим, какими способами админы могут выявить, что к системе подключили флешку. В Windows имеется целый пул средств для отслеживания подключаемых носителей. Если хочешь поковыряться сам — смотри вот эти две ветки реестра:
HKLM\SYSTEM\CurrentControlSet\Enum\USB
HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR
Там хранится список идентификаторов подключаемых устройств, при этом информация в этих ветвях реестра не затирается стандартными процедурами в планировщике задач винды, то есть данные хранятся сколь угодно долго.
Если ты предпочитаешь готовые решения, то к твоим услугам классический USBLogView, который в реальном времени регистрирует подключение и отключение флешки. В форензике для комплексного анализа подключений рекомендуем посмотреть в сторону USB Detective и USB Forensic Tracker.
USB Detective извлекает информацию из реестра, логов, иных источников, а также может снимать информацию с Live-системы (в версии Pro), при этом выполняя корреляцию и верификацию данных.
USB Forensic Tracker извлекает все артефакты подключений независимо, поэтому для каждого источника данных ты имеешь свою таблицу подключений USB-устройств (корреляции, к сожалению, он не делает).
Например, просматривая данные по нашей китайской флешке, мы выяснили, что ее отображаемый серийник на первом порте — 388e987, на втором — 3с69e2с9. После форматирования они стали 4247e754 и 966cde2 соответственно.
Во внешних СЗИ имеются функции просмотра и блокирования подключенных флешек в реальном времени или на основе ранее подключенных устройств.
Практический подход к сбитию параметров флешек
Часть 1. VSN (UUID)
Если тебе повезло и в твоей организации блокируют флешки через VSN/UUID, то существует масса годных вариантов. Все представленные ниже кейсы не изменяют основные параметры флешки, такие как серийный номер и информация о модели. Однако помни, что иногда VSN применяется при лицензировании ПО и изменение VSN может повлиять на его работоспособность. Зато, научившись менять VSN, ты сможешь давать вторую жизнь лицензионным прогам, которые жалуются на смену жестких дисков и не хотят работать.
Манипуляции представлены для демонстрации. Применяя их, будь осторожен и внимателен, поскольку при некорректном подборе команд, программ, прошивок ты рискуешь окирпичить флешку, за что мы, конечно, ответственности не несем. Не стоит упоминать, что на тестируемых флешках не следует держать ценную инфу.
Вариант 1. Форматирование
Данный вариант используется, когда активен только черный список флешек, поскольку форматирование меняет идентификатор раздела. Однако задать конкретный идентификатор в данном случае не получится.
Например, флешка с FAT32 до форматирования имеет VSN 4652-F858, а после быстрого форматирования — 76DA-6C78. Для NTFS ситуация в целом аналогична.
Как ты видишь, вариант предельно простой, но совершенно неконтролируемый. Это нам как;то не очень подходит, попробуем менять параметры на избранные нами значения.
Вариант 2. Смена VSN через утилиты
Существуют готовые утилиты для смены VSN, например VolumeID от компании Sysinternals или более приятная на вид графическая утилита Volume Serial Number Changer. Во втором случае нужно просто запустить утилиту, выбрать метку диска, вбить новый идентификатор, нажать Change Serial number, вынуть;вставить флешку, и все готово.
Работа с утилитой Volume Serial Number Changer и ее результат
Вариант 3. Сделай сам
Ты хочешь полностью познать дзен флешек? Не вопрос. Предварительно определись с файловой системой. Открой любой HEX-редактор и перетащи туда значок флешки из проводника. Для FAT32 VSN находится по смещению 0x43, для NTFS — на 0x48.
Проверим это.
Как защититься от вредоносной флешки, изображение №9
Нашелся серийник 6666-6666. Что ж, исправим его и сохраним результат. Помни, что порядок чтения байтов — справа налево (little endian).
Измененный VSN устройства с файловой системой NTFS
Для FAT32 ситуация полностью аналогична.
Измененный VSN устройства с файловой системой FAT
Итак, теперь ты умеешь менять VSN (UUID). Но для по;настоящему серьезных вещей и создания почти полноценного клона нужно еще немного углубиться в тему.
Часть 2. VID, PID, Serial
Чтобы менять максимальное количество параметров, требуется перепрошить контроллер флешки. Процедура эта сравнительно несложная, но опасная — в случае ошибки ты рискуешь сделать флешку неработоспособной (однако ошибка чаще всего возникает при неудачном выборе прошивки или прошивальщика).
Представим, что у тебя есть исправная флешка (которая работает в офисе без проблем), а также ты приобрел другую флешку — потенциальный клон. Если ты купишь флешку точно той же модели, то при некоторых обстоятельствах сможешь обойти СЗИ, в которых идет проверка только по VID и PID.
На практике лучше найти флешки, которые легче всего перепрошивать, например фирмы Silicon Power или Transcend с USB 3.0 — в них часто используется SMI-контроллер. Хотя в целом тебе могут попасться флешки с контроллерами AlcorMP, Phison и другие. Для них тоже есть прошивки.
Общий алгоритм прошивки девайса следующий:
Выясни тип идентификатора, который используется для определения флешки в СЗИ, или используемые составляющие на основе данных флешки (опционально), запиши их для последующей подделки.
Определи контроллер флешки.
Подбери утилиту для прошивки, подходящую под конкретную версию контроллера.
В прошивальщике задай необходимые параметры, идентичные оригинальной флешке.
Прошей флешку;клон и проверь ее работу. В случае неудачной прошивки — повтори шаги, начиная со второго. Если флешка окирпичилась, поступай аналогично.
Шаг 1. Так случилось, что на первой протестированной нами машине стоял антивирус Comodo с возможностью контроля устройств. Недолго думая, включаем блокировку для USB и добавляем флешку;оригинал в исключение. Антивирь любезно показывает нам используемый идентификатор флешки.
В свойствах оборудования находим, что эта строка соответствует опции «Путь к экземпляру устройства». Запишем идентификатор как целевое значение, которому наша флешка;фейк должна соответствовать:
На всякий случай запомним и DeviceID:
USB\VID_13FE&PID_4200\070867948D560839
Бывает и такое, что CЗИ может не отображать идентификатор, а только определять некоторые свойства подключенного устройства. Такие случаи часто бывают связаны с тем, что идентификатор может состоять из видимых полей и свойств. Здесь нет никакой разницы для нас – ведь, адаптируя фальшивые данные к исходным, мы используем одни и те же данные и формируем один схожий идентификатор.
Шаг 2. Программа ChipGenius поможет определить контроллер фальшивой флешки. Для того чтобы скачать ее, необходимо зайти на сайт USBDev. По мнению многих пользователей сайта, он является самым полезным русскоязычным ресурсом по прошивке флешек. Также можно использовать аналог — Flash Drive Information Extractor.
Сравни с выводом ChipGenius для нашего будущего фейка:
DeviceID
USB\VID_090C&PID_1000\CCYYMMDDHHMMSS000000
Description: [H:]Запоминающее устройство для USB(SMI USB DISK)
Device Type: Mass Storage Device
Protocal Version: USB 2.00
Current Speed: High Speed
Max Current: 500mA
USB Device ID: VID = 090C PID = 1000
Serial Number: CCYYMMDDHHMMSS000000
Device Vendor: SMI Corporation
Device Name: USB DISK
Device Revision: 1100
Manufacturer: SMI
Product Model: USB DISK
Product Revision: 1100
Controller Vendor: SMI
Controller Part-Number: SM3257ENBA — ISP 131128-AA-
Flash ID code: 98DE8493 — KIOXIA TC58TEG6DCJBA00 — 1CE/Single Channel [MLC-16K] ; Total Capacity = 8GB
Tools on web: http://dl.mydigit.net/special/up/smi.html
Теперь мы можем увидеть, что у нас есть контроллер семейства SMI (Silicon motion), номер SM3257ENBA. Найдем для него прошивку.
Шаг 3. На сайте ChipGenius есть ссылка для скачивания прошивки, но сайт полностью на китайском языке, поэтому его проще загрузить с USBDev. В этом случае это обязательно в версии с поддержкой нашего контроллера SM3257ENBA. Этот контроллер использует программы SMI MPToolи Dyna Mass Storage Production Tool. На данный момент у нас в приоритете последний вариант (работает долго и эффективно, и почти со всеми типами данных контроллеров). Найдите нужную версию и скачайте Dyna Mass Store Production Tool, вставьте фейковую флешку и запустите программу.
Шаг 4. Вам не о чем волноваться, это совершенно не сложно. Практически все рошивальщики имеют почти идентичный набор параметров, поэтому общие правила и изменяемые параметры одинаковы у всех, независимо от марки и модели контроллера. Убедитесь в том, что флешка отображается в окне программы.
Справа нажмите на слово Settings, пропустите ввод пароля, нажав Enter (в некоторых инструментах он также есть, обычно легко гуглить на форумах), в качестве конфигурации по умолчанию укажите файл в корне каталога флешера — NDefault. INI.
Кстати, все эти операции позволяют восстановить любимый неисправный USB-гаджет, перепрошив его значениями по умолчанию, главное не связываться с определением программы и контроллера. Что ж, продолжаем. В появившемся окне перейдите на вкладку DeviceConfig.
Здесь мало что нужно изменить. В поле SN Method выберите Static SN (иначе наш серийник будет пустым, как у безымянных флешек). В этом случае мы создали серийный номер, такой же сильный, как швейцарский банк, который не будет меняться от системы к системе.
В секции USB чуть ниже выставляем параметры, как у флешки;оригинала:
VID ; 13FE, PID ; 4200, bdcDevice (номер ревизии) ; PMAP
Производитель и название продукта в нашем случае не используются, мы не можем его изменить. Однако в некоторых крупных СЗИ они также используются для формирования подписи устройства. Если вы совсем не знаете, какие параметры и куда вводить, рекомендуем повторить шаги с первого до этого на исходной флешке, скопировать все параметры на фальшивую флешку и продолжить чтение. Оригинал прошивать не нужно.
В поля SN Begin No., SN End No. и SN Mask забиваем серийник флешки;оригинала: 070867948D560839.
Давайте еще раз посмотрим на целевую строку:
Мы уже перенесли номер ревизии (PMAP) и серийник — цифровую часть в конце.
В разделе «Inquiry» очистите поле «Vendor» и введите USB DISK 2.0 в поле «Product». Мы изменили VID и PID, чтобы серийный номер (Device ID) также был идентичен оригиналу. В правом верхнем углу нажмите «Save», а в главном окне нажмите «Start». Флешка запускается.
В нашем случае глубокая перепрошивка занимает 35 минут. А при использовании SMI MPTool можно использовать более быстрый способ перепрошивки, когда CID-регистр (Card Identification; открывается через Debug register ; Read CID \ Write CID) считывается с контроллера, необходимые данные туда записываются вручную, по аналогии с HEX-редактированием (но еще раз вам нужно установить байты контроля длины, не забудьте водить значения справа налево и так далее, что удобно).
Шаг 5. После успешной прошивки все, что вам необходимо сделать, это проверить нашу фальшивку и узнать, насколько она хороша. Теперь посмотрим на детали с ChipGenius и выделим отличия от оригинального варианта:
Description: [H:]Запоминающее устройство для USB(USB DISK 2.0)
Device Type: Mass Storage Device
Protocal Version: USB 2.00
Current Speed: High Speed
Max Current: 500mA (у оригинала — 200 mA, можно поменять через свойство USB Power — см. позапрошлый скрин, но при занижении силы тока устройство может отказаться работать)
USB Device ID: VID = 13FE PID = 4200
Serial Number: 070867948D560839
Device Vendor: SMI Corporation (у оригинала отсутствует, меняется через панель USB ; Vendor String)
Device Name: USB DISK (у оригинала USB DISK 2.0, меняется через панель USB ; Product String)
Device Revision: 4200 (у оригинала 0100, данный параметр не изменяется)
Product Model: USB DISK 2.0
Product Revision: PMAP
…(остальное по контроллеру и так различается)…
А теперь сопоставим DeviceID флеш-карты оригинала, фейка до клона и фейка после прошивки.
Изменения на флешке;клоне
Открыв свойства оборудования, проверяем путь к экземпляру;клону:
Целевой путь:
Теперь вставляем фейк в тестовую машину с включенным белым списком для флешки;оригинала.
Подключение флешки антивирусом Comodo
Подключение флешки антивирусом Comodo
Флешка открывается и работает. Пытаемся подключить оригинальную флешку вместе с фейковой — жаль, конфликт возникает, поэтому работает только первая вставленная флешка. Затем соединяйте их по одному.
Чтобы копия полностью соответствовала оригиналу, рекомендуем изменить остальные параметры, отформатировать подделку и присвоить ей оригинальную метку. И не забудьте изменить свой VSN — вы уже знаете, как это сделать.
Давайте проверим фейк на надежном антивирусе — например, Kaspersky Endpoint Security 10.
Интерфейс контроля устройств Kaspersky Endpoint Security 10
Интерфейс контроля устройств Kaspersky Endpoint Security 10
Смотрим, что используется в качестве идентификатора флешки;оригинала.
Идентификатор флешки в Kaspersky Endpoint Security 10
Идентификатор флешки в Kaspersky Endpoint Security 10
Это путь к экземпляру устройства, добавляем его в белый список, проверяем на какой;нибудь левой флешке
Блокировка в Kaspersky Endpoint Security 10
Блокировка в Kaspersky Endpoint Security 10
И вот тут-то мы и рассмеялись – флешка отобразилась в проводнике, проверяется антивирусом, но при попытке обратиться к ней получаем вот такое окно.
Отказ доступа к флешке
Отказ доступа к флешке
Но флешка;фейк предсказуемо работает без каких;либо проблем.
Схожим образом мы протестировали ряд коммерческих DLP-систем, СЗИ под Linux и нигде не встретили ни отпора, ни попыток воспрепятствовать атаке клонов.
Часть 3.
Совершенно случайно оказалось, что в зависимости от СЗИ можно использовать и дополнительные методы обхода USB-блокировок.
Дискетко
Отформатировав флешку, вы можете превратить ее в классическую дискету для чтения / записи объемом всего 1,38 МБ. Хватит потихоньку перетащить игрушку на работу? Размещается по частям в несколько проходов. Вот как это сделать. Берем новую флешку и следуем известному алгоритму. На этот раз нам попалась флешка Transcend 8 Gb USB 3.0 с контроллером SMI SM3267AB (возьмем прошивальщик — SMI MPTool V2.5.51 v7 P0920v1). Итак, прошивальщик, окно настроек, вкладка Multi-Lun Settings.
Отформатировав флешку, вы можете превратить ее в классическую дискету для чтения / записи объемом всего 1,38 МБ. Хватит потихоньку перетащить игрушку на работу? Размещается по частям в несколько проходов. Вот как это сделать. Берем новую флешку и следуем известному алгоритму. На этот раз нам попалась флешка Transcend 8 Gb USB 3.0 с контроллером SMI SM3267AB (возьмем прошивальщик — SMI MPTool V2.5.51 v7 P0920v1). Итак, прошивальщик, окно настроек, вкладка Multi-Lun Settings.
Форматирование флешки как дискеты
Форматирование флешки как дискеты
Запускаем программу, устанавливаем галочки на Floppy и формотировании, прошиваем.
Начинаем в багбаунти: распродажа уязвимостей в Juice Shop, или Как искать простейшие баги в веб-приложениях
Начинаем в багбаунти: распродажа уязвимостей в Juice Shop, или Как искать простейшие баги в веб-приложениях, изображение №1
Привет, меня зовут Анна Куренова (@SavAnna), в IT я уже девять лет. Начинала как разработчик и тестировщик, потом начала искать уязвимости и перешла в ИБ. Сейчас работаю DevSecOps-инженером и веду телеграм-канал 8ug8eer. В этой статье поговорим о базовых вещах в вебе и некоторых простых уязвимостях, поиск которых под силу даже начинающим. Текст будет полезен новичкам в сфере безопасности и тестирования софта.
Если вам удобнее воспринимать информацию на слух, смело включайте видео. В нем я рассказываю также о том, что не вошло в статью. Заодно советую посмотреть и предыдущие выпуски, в которых другие участники Standoff Bug Bounty делятся историями о том, как они погружались в багхантинг. Всем, кто пропустил предыдущие серии нашего цикла, крайне рекомендую ознакомиться с текстом Олега Уланова (@olegbrain) про поиск уязвимостей SSRF и статьей Александра aka bytehope о багах, связанных с контролем доступа.
Статья носит исключительно информационный характер и не является инструкцией или призывом к совершению противоправных действий. Наша цель — рассказать о существующих уязвимостях, которыми могут воспользоваться злоумышленники, предостеречь пользователей и дать рекомендации по защите личной информации в интернете. Авторы не несут ответственности за использование опубликованной информации. Помните, что нужно следить за защищенностью своих данных.
Поскольку мы начинаем с азов, то кратко расскажу о принципах работы веб-приложений. В случае рядового пользователя современный интернет работает на основе клиент-серверного взаимодействия. Клиент — это устройство пользователя, например компьютер или смартфон, а сервер — это удаленный компьютер, который обрабатывает запросы клиента.
Для обмена запросами клиент и сервер используют различные протоколы, в нашем случае речь пойдет об HTTP. На основе него также написано много других протоколов, например HTTP Live Streaming (для потоковой передачи видео) или gRPC, разработанный компанией Google. Одно из популярных направлений в поиске уязвимостей — перехват и исследование запросов, с помощью которых «общаются» веб-приложения и браузер. Из них мы узнаем, какие методы HTTP-запросов применяются (GET, POST, PUT, DELETE и т. д.), какие заголовки и параметры передаются в запросах и ответах. Все это мы сейчас и будем применять на практике.
Не все соки одинаково полезны
Нашим подопытным станет магазин соков под незамысловатым названием Juice Shop. Это уже готовое приложение, которое работает на HTTP/1.1. Я развернула его на своем домене, который содержит множество уязвимостей и отлично подходит для обучения. Конечно, для анализа запросов можно ограничиться и стандартными инструментами браузера, такими как DevTools в Chrome.
Для просмотра запросов и работы с ними я использую Burp Suite. Считаю, что это мастхэв для пентестеров и хорошая альтернатива OWASP ZAP. Burp Suite работает как прокси, то есть позволяет видеть все запросы, которые идут на сервер и обратно. А теперь давайте посмотрим, какие базовые уязвимости скрыты в нашем онлайн-магазине. Сразу оговорюсь, что здесь приведу лишь часть примеров, больше багов и теории ищите в записи трансляции.
Первый улов: stored XSS
Начинается все с главной страницы, где мы сразу же видим поле поиска. Первое, что приходит в голову, — попробовать ввести какой-то запрос и посмотреть на результат. Вводим цифру 1 и отмечаем, что сайт выводит наш текст на экран. Далее можно попробовать вписать туда какой-то заголовок (header), в своем примере я введу просто <lol>.
<lol> отображается как html тег - html injection
<lol> отображается как html тег - html injection
Сайт принял и обработал его, следовательно, он уязвим к HTML-инъекции. Наше приложение неправильно обрабатывает введенные данные и позволяет внедрить сторонний код, который затем интерпретируется браузером.
Теперь я попробую внедрить вредоносный JavaScript-код через запрос на добавление картинки. Впишем в поле поиска запрос на загрузку изображения с адреса X с обработчиком On Error. То есть, если приложение не сможет найти нашу картинку (а по адресу X этого сделать нельзя), на экране появится предупреждение. Таким образом, мы нашли XSS-уязвимость — ведь вместо алерта вполне реально «скормить» нашему сайту вредоносный JavaScript-код. Он будет выполняться каждый раз, когда другие пользователи заходят на страницу. С его помощью я могу попробовать, например, выкрасть чужие данные или перенаправить жертву на вредоносный ресурс.
Вторая уязвимость: IDOR, или BOLA
Продолжим изучать наш Juice Shop и попробуем добавить что-то в корзину, например яблочный сок. С помощью прокси я вижу два запроса — GET (корзины) и POST (товара). Помимо прочего, в них можно увидеть ID пользователя, который совершил эти действия.
Добавляем товары в чужую корзину по id
Добавляем товары в чужую корзину по id
Попробуем изменить эти запросы, подставив другой идентификатор, — так мы проверим сайт на наличие уязвимости IDOR (insecure direct object reference), или BOLA (broken object level authorization).
Суть здесь в том, что приложение позволяет получить информацию о любом пользователе. В нашем случае простая подмена ID позволила заглянуть в корзину другого любителя соков, что является очень опасным багом.
Получили товары из чужой корзины
Получили товары из чужой корзины
Третья находка: подмена контента
Сайт поддерживает загрузку контента. Например, пользователь может прикрепить файл к своему отзыву, что мы и сделаем. Нажимаем «Подтвердить» и смотрим, что нового появилось в нашем прокси. Видим запрос и строку file upload, а в поле Content-Type — значение application/pdf. Проще говоря, браузер сообщает сайту, что собирается загрузить PDF-файл.
Разобравшись, как «общаются» клиент и сервер при обмене файлами, попробуем модифицировать этот запрос. Меняем тип контента и вписываем вместо PDF формат HTML. У нас получилось. А значит, и злоумышленник сможет добавить к отзыву вредоносный скрипт, сайт попробует его обработать и запустит полезную нагрузку. Подставим еще один тип контента и заменим значение в Content-Type на application/XML. Такой файл наше приложение тоже принимает, поэтому есть смысл добавить полезную нагрузку.
Здесь важно знать о том, что документы XML включают такое понятие, как сущность. Это имя, которое будет использовано вместо того или иного содержимого. При этом каждая сущность может преобразовываться в другую. В своем XML-документе я пропишу, что имя and будет заменено на сущность SYSTEM (file:///etc/passwd) с данными о всех зарегистрированных аккаунтах. Сайт обработал наш запрос, а значит, он уязвим к атаке XML External Entity (XXE) — есть возможность выполнить сторонний код через XML-документ. Таким образом можно получить любые файлы, доступные пользователю, от имени которого запущено приложение. Если получится вернуть file:///etc/shadow, то приложение запущено от имени пользователя root.
XXE с получением file:///etc/passwd
XXE с получением file:///etc/passwd
Заключение
Несмотря на скромные вводные о работе веб-приложений, нам удалось проверить три гипотезы:
Найти уязвимость XSS в поле поиска сайта, что позволяет атаковать всех его пользователей.
Проэксплуатировать IDOR-уязвимость и посмотреть чужие данные.
Найти уязвимость XXE через подмену контента.
Как видите, для этого мне хватило даже базовых знаний о принципах работы веба, а значит, получится и у вас. Если вам тоже нравится тестировать приложения и искать уязвимости, не бойтесь трудностей и смело начинайте свой путь багхантера!
Источник
https://vk.com/greyteam
Свидетельство о публикации №225020200737