![]() |
Статья является переводом. Оригинал вот тут
https://forum.antichat.xyz/attachmen...5656217753.png TL;DR: "Мыслите вне рамокOWASP TOP-10/SANS TOP-25/Bug Bounty ". В этой статье мы обсудим несколько примеров, чтобы донести главную идею о том, что если вы думаете ограниченно, то вы и будете ограниченными. Использование Bug bounty ухудшило качество тестирования на проникновение, как для клиентов, так и для специалистов. Клиенту трудно отличить хороший пентест от быстрого и грязного, при использовании топ-10/топ-25 будь то SANS или OWASP . Эта статья поможет тем, кто только встал на этот путь информационной безопасности и охоты за багами. Цитата:
કેમ છો? મજામાં. Я - Равикумар Пагдал, в настоящее время работаю старшим менеджером в компании Net Square Solutions Pvt. Ltd. Из-за специфики своей работы, я просмотрел сотни отчетов по оценке уязвимостей веб/мобильных приложений и по тестированию на проникновение в нескольких организациях, и есть одна вещь, которая всегда присутствует во всех отчетах, и, угадайте что это? "Самое распространенное - это хорошо известные уязвимости". Да, я говорю о SQL инъекциях, XSS, CSRF, IDOR, отсутствующих заголовках безопасности и т.д. Шокирует то, что по данным опроса, проведенного HackerOne в 2019 году "Опрос и статистика сообщества этических хакеров" (стр. 39), более 50% BugBounty охотников ориентируются только на XSS и SQLi. Цитата:
Цитата:
Поразмышляв, почему приблизительные данные наиболее часто встречаются в каждом отчете по безопасности, в конце концов, я пришел к выводу, и все оказалось так просто. "Потому что аналитик безопасности или пентестер фокусируется только на известных уязвимостях". По своему опыту могу сказать, что это привычное поведение или модели практики. Это то, что я наблюдал в большинстве пентестов. По отношению к тестированию, основной стратегией является перехват HTTP-запроса и ввод одинарных ( Код:
'Код:
"Код:
>[CODE] ", pass:""}[/COLOR] на сервер приложений A. [*]Веб-сервер W получит параметр; преобразует их в XML-формат и перешлет на сервер приложений A. [*]Сервер приложений A разберет запрос и выполнит вход на сервер Mongo DB N.[/LIST]В этом случае значение нашего параметра будет преобразовано в XML запрос. Таким образом, вы можете вставить XML пейлоад в параметры uid и pass, а затем он будет проанализирован на сервере приложений A. Таким образом, атакующий может выполнить все возможные XML атаки: XML Injection, XXE, XInclude, XSLT инъекцию иXPATH инъекцию [если XPath запросы используются в этом процессе]. Другое наблюдение заключается в том, что mongoDB не принимает никаких SQL выражений. Таким образом, вы должны внедрить инъекцию NoSQL заявлений, а uid является уязвимым для NoSQL инъекции. 2.4 Пример и эксплуатация log server based уязвимости. Опять же, у нас одна и та же страница входа с двумя параметрами uid и pass, а также у нас та же архитектура, что и в примере 2.3, но к тому же, у нас еще есть два лог сервера. Один лог сервер L1 размещен на ORACLE DB, а L2 на базе командной строки linux. Каждый запрос, полученный сервером приложений A, будет скопирован и отправлен на оба лог-сервера (L1, L2) , после чего сервер приложений A обработает запрос. Шаги: 1. Браузер отправляет два параметра uid и passна веб-сервер W, а если с мобильного приложения AN, то браузер отправит JSON запрос {uid:"", pass:""} на сервер приложений A. 2. Веб-сервер W получит параметры; преобразует их в XML-формат и перешлет на сервер приложений A. 3. Каждый запрос, полученный сервером приложений А, будет скопирован и отправлен на оба лог-сервера L1,L2. Если сервер приложений А получит JSON запрос, т.е. {uid: "ravi",pass: "P@ssw0rd"}, то сервер приложений все равно отправит этот запрос на лог-сервера.
SQL: Код:
INSERT
Bash: Код:
echoВ данном случае все возможные уязвимости можно увидеть в примере 2.3, кроме того, значения наших параметров напрямую вызываются в запросе лог-сервера, чтобы злоумышленник мог произвести инъекцию пейлоада в процесс логироания. Таким образом, лог-сервер L1 уязвим к SQL инъекции, а сервер L2 уязвим к инъекции ОС команд. Цитата:
2.5 Пример с протоколом LDAP и JSON Web Token И снова у нас одна и та же страница входа с двумя параметрами uidи pass, и у нас та же архитектура, что и в случае 2.4, но теперь у нас еще есть один процесс аутентификации, использующий протокол LDAP, для проверки пользователя. Как только сервер приложения A получит запрос на вход, он перенаправит запрос в активную директорию или в контроллер домена AD для проверки запроса пользователя, основанный на аутентификации windows; и этот процесс реализуется с помощью динамических LDAP строк. Если пользователь и пароль - действительны, то AD сервера будут выдавать JSON Web Token (JWT), и в дальнейшем, вся аутентификация будет происходить с помощью верифицирующего JWT токена. https://forum.antichat.xyz/attachmen...5663429949.png Шаги:
2.6 Не доверяйте заголовкам HTTP; пример с CVE-2019-5418. В этом примере, мы рассмотрим некоторые уязвимости, обнаруженные в заголовках HTTP. Цитата:
https://forum.antichat.xyz/attachmen...5663708734.png На изображениях ниже показан заголовокReferer HTTP, который уязвим для SQL инъекции. https://forum.antichat.xyz/attachmen...5663722750.png Итак, мой вопрос для всех пентестеров: "Как часто вы проверяете различные уязвимости в таких HTTP заголовках?". 2.7 Тестирование Out of the Box или странное тестинг - пример с CVE-2018-4124 Цитата:
Код:
జ్ఞాApple стало известно об этой проблеме после того, как новости об ошибке начали распространяться в социальных сетях, а тролли начали её эксплуатировать. Один человек, по-видимому, показал, как он может крах приложения Uber на телефонах водителей, установив его имя в проблемной строке, а затем попросить подвезти. Хотя первоначально только определенная Telugu строка работала, кто-то позже заметил, что конкретная строка с использованием символов бенгальского языка также вызвало крах приложений на iOS и MacOS. Существует несколько теорий о том, что может стать причиной сбоя, в том числе от инженера-исследователя Mozilla Маниша Горегаокара и Филиппа Верди из консорциума Unicode. Компания исправила этот недостаток, выпустив дополнение к обновлению macOS High Sierra 10.13.3, iOS 11.2.6, WatchOS 4.2.3 и tvOS 11.2.6. Другой случай является Breaking Parser Logic, или Нарушение Логики Парсера - Take Your Path Normalization Off и Pop 0days Out от @orange_8361 CVE Spring FrameworkCVE-2018-1271 Spark FrameworkCVE-2018-9159 JenkinsCVE-2018-1999002 MojarraCVE-2018-14371 Ruby on RailsCVE-2018-3760 SinatraCVE-2018-7212 Next.jsCVE-2018-6184 resolve-pathCVE-2018-3732 Итак, после одной длинной и одной короткой истории!!! Что мы узнали как пентестер на примере тестирования 2.7 Out of the Box или странного тестинга? Не верьте ни на один символ юникода, вам нужно проверить ваш веб-сервер со всеми возможными символами юникода. Правильно ??? Вы не знаете, какой именно юникод приведет к краху вашего сервера. Если вы хотите поиграть больше с юникодом, то вам нужно просмотреть Unraveling Unraveling Unicode: A Bag of Tricks for Bug Hunting и Exploiting Unicode-enabled Software от Chris Weber. Эта тема всегда будет обсуждаемой: Почему Джонни не может провести пентест: Анализ Black-box веб-уязвимостей и автоматическое и ручное тестирование. Сканер сделает то же самое, установит все точки и графики инъекции, а также профазит предопределенной пейлоад. На основе ответов сервера сканер будет решать, есть уязвимости или нет. Во многих случаях, автоматический сканер будет работать неэффективно, вот несколько примеров.
Прежде всего, у 5-ти примеров есть одна общая черта - это одна и та же страница входа с параметром uid и pass. Как Black Box Tester, мы не знаем об архитектуре и конфигурации серверной стороны. Поэтому при тестировании необходимо следовать двум правилам: Цитата:
Цитата:
В примере 2.6, в котором четко указано, что не следует игнорировать и заголовки HTTP, они не менее важны, чем параметры. Никогда не знаешь, в каком запросе и в каком процессе разработчик использует HTTP-заголовок при написания приложения. Поэтому не судите вслепую о заголовках и проводите правильный пентест. В случае исследования 2.7, мы узнали, что всегда нужно делать out of the box тестирование, чтобы обнаружить больше ненормальных багов(а может и находить, 0-day уязвимость). Теперь у вас есть такой же HTTP запрос. https://forum.antichat.xyz/attachmen...5664101046.png и у вас все тот же вопрос.
Цитата:
Самым большим недостатком пентестера является постоянный страх "пропустить уязвимость" и отсутствие энтузиазма найти 0-day или провести странное тестирование в связи с истечением срока. Мы всегда можем подойти к работу с умом, но если мы пропустим 0-day, то это будет нашим самым большим сожалением". Аппендикс A: Библиография Программы/Скрипты:
|
Спасибо за статью!
|
| Время: 14:45 |