# Занятие 3. Основные атаки и паттерны ## SQL-injection уязвимости 1. Отправка имени пользователя administrator'--и пустой пароль приводит к следующему запросу: ``` SELECT * FROM users WHERE username = 'administrator'--' AND password = '' ``` ![](https://i.imgur.com/3tNuG2W.png) 2. Эта лабораторная работа содержит уязвимость SQL-инъекции в фильтре категорий продуктов. Когда пользователь выбирает категорию, приложение выполняет следующий SQL-запрос: ``` SELECT * FROM products WHERE category = 'Gifts' AND released = 1 ``` Чтобы решить работу, нужно зайди в любой раздел и дописать: ``` '+OR+1=1-- ``` ![](https://i.imgur.com/6uP2odJ.png) 3. Эта лабораторная работа содержит уязвимость SQL-инъекции в фильтре категорий продуктов. Сначала определяю количество столбцов, возвращаемых запросом, и столбцы, содержащие текстовые данные Кол-во столбцов: ``` 'UNION SELECT NULL-- 'UNION SELECT NULL, NULL-- 'UNION SELECT NULL, NULL, NULL-- ``` Понял, что всего два столбца Дальше определяю столбцы с текстовым типом данных: ``` 'UNION SELECT NULL, 'd'-- 'UNION SELECT 's', NULL'-- ``` Далее вытаскиваю данные с таблицы users: ``` 'UNION SELECT username, password FROM users ``` ![](https://i.imgur.com/oVuqdE7.png) 4. Атака SQL-инъекцией, запрос типа и версии базы данных на MySQL и Microsoft. Эта лабораторная работа содержит уязвимость SQL-инъекции в фильтре категорий продуктов. Чтобы решить лабораторную работу, надо отобразить строку версии базы данных. Сначала надо понять какая эта база данных: Oracle, MS, MySQL При тесте запросов я понял, что это MySQL ![](https://i.imgur.com/STz0Nee.png) Дальше определяю кол-во столбцов, определяю, что их два, каждый из которых содержит текст Дальше делаю окончательный запрос ``` '+UNION SELECT @@version, NULL# ``` ![](https://i.imgur.com/VxOQ57Y.png) ## XSS уязвимости 1. Сохранение XSS в контексте HTML без каких-либо кодировок Эта лабораторная работа содержит сохраненную уязвимость межсайтового скриптинга в функции комментариев. Введу следующее в поле для комментариев: ``` <script>alert(1)</script> ``` Потом опубликую этот коммендтарий и готово ![](https://i.imgur.com/aUwpsJC.png) 2. Уязвимость межсайтового скриптинга на основе модели DOM в функции отслеживания поисковых запросов Введу случайную буквенно-цифровую строку в поле поиска Щелкну правой кнопкой мыши и осмотрю элемент, и обращу внимание, что строка была помещена внутри img src атрибута Вставляю в поиск ``` "><svg onload=alert(1)> ``` ![](https://i.imgur.com/tKVZxCR.png) ![](https://i.imgur.com/kAPa3Oj.png) 3. Уязвимость межсайтового скриптинга в функции отслеживания поисковых запросов, где закодированы угловые скобки Вбиваю в поиск текст и делаю поиск, дальше в URL стираю запрос и вбиваю следующее: ``` '-alert(1)-' ``` ![](https://i.imgur.com/flLcZ5H.png) ![](https://i.imgur.com/zgEsHyJ.png) 4. Эта лабораторная работа демонстрирует отраженную уязвимость DOM. Уязвимости отраженной модели DOM возникают, когда приложение на стороне сервера обрабатывает данные из запроса и повторяет данные в ответе. Затем скрипт на странице обрабатывает отраженные данные небезопасным способом, в конечном итоге записывая их в опасный приемник. Вбиваю в поиск текст и делаю поиск После анализа сайта, понимаю, что сработает следующее дополнение в URL: ``` \"-alert(1)}// ``` ![](https://i.imgur.com/FPaFUUD.png) ![](https://i.imgur.com/En07IEs.png) ## CSRF 1. Уязвимость CSRF без защиты ![](https://i.imgur.com/iUaGOO4.png) ![](https://i.imgur.com/xNuNuFJ.png) ![](https://i.imgur.com/bXYxgud.png) ![](https://i.imgur.com/fREJaSR.png) 2. CSRF, где проверка токена зависит от метода запроса. ![](https://i.imgur.com/7A4xQze.png) ![](https://i.imgur.com/VKQ36UB.png) ![](https://i.imgur.com/Taj21TH.png) ## SSRF 1. Базовый SSRF против локального сервера ![](https://i.imgur.com/05ijCp5.png) ![](https://i.imgur.com/ne8Rd73.png) ![](https://i.imgur.com/ChGxfJF.png) ![](https://i.imgur.com/Fzn12Lt.png) ![](https://i.imgur.com/vQPbexG.png) ![](https://i.imgur.com/sKLX7Of.png) 2. SSRF с обходом фильтра через открытую уязвимость перенаправления ![](https://i.imgur.com/bny0KqT.png) ![](https://i.imgur.com/szV3Do9.png) ![](https://i.imgur.com/a6S1nNL.png) ![](https://i.imgur.com/oK0c429.png) ![](https://i.imgur.com/kerJVZS.png) ## RCE 1. Внедрение команд ОС, простой случай ![](https://i.imgur.com/M2QMqqL.png) ![](https://i.imgur.com/B1A2UVA.png) ![](https://i.imgur.com/BnxW7lN.png) ## Path traversal 1. Обход пути к файлу, простой случай ![](https://i.imgur.com/VBS2Bab.png) ![](https://i.imgur.com/66Gviw8.png) ![](https://i.imgur.com/fXSqHFO.png) 2. Обход пути к файлу, последовательности обхода заблокированы с обходом абсолютного пути. ![](https://i.imgur.com/C2yrHwr.png) ![](https://i.imgur.com/jwIeNoS.png) ![](https://i.imgur.com/RIsQak8.png)