**1. SQL-injection уязвимости:** SQL-injection — это уязвимость веб-безопасности, которая позволяет злоумышленнику вмешиваться в запросы, которые приложение делает к своей базе данных. 1. ![](https://i.imgur.com/L4V138n.png) В этой лабраторной надо войти в систему под именем администратора (administrator) без пароля. Для этого используется последовательность коментариев SQL ``--``, которая 'ломает' запрос сервера, и закоментирует проверку пароля, благодаря чему она не случается. Поэтому для входа в систему достаточно ввести в имени пользователя ``administrator'--``![](https://i.imgur.com/nMUvkss.png) 2. ![](https://i.imgur.com/IxnpHCA.png) Здесь нужно извлечь скрытые данные. Для этого в посковом запросе нужно вписать ``'+OR+1=1--``, тем самым добавив в исходный запрос ``SELECT * FROM products WHERE category = '...' AND released = 1`` новое условие и закоментировав следующее, таким образом сервер поучит запрос: ``SELECT * FROM products WHERE category = '' OR 1=1``~~' AND released = 1~~ Таким образом условие всегда будет верно и сервер выдаст все данные![](https://i.imgur.com/vCX3W0G.png) 3. ![](https://i.imgur.com/bcFIk4L.png) Здесь при атаке используется ключевое слово ``UNION`` для извлечения данных из другой таблицы в базе данных (в данном случае таблица логинов и паролей), т.к. оно позволяет выполнять дополнительные запросы ``SELECT`` и добавить их к исходному. Таким образом, для получения таблицы логинов и паролей, нужно ввести следущее: ``'+UNION+SELECT+username,+password+FROM+users--`` и сервер выдаст нам логины и пароли.![](https://i.imgur.com/bS0Uxy4.png) 4. ![](https://i.imgur.com/QXXs4jX.png) Здесь нужно отобразить версию базы данных. Для этого вновь используется ``UNION SELECT``. Вся атака проходит в 3 этапа: 1. ``'+UNION+SELECT+NULL,NULL#`` для проверки кол-ва столбцов в запросе 2. ``'+UNION+SELECT+‘abc’,‘def’#`` для проверки текстового типа данных 3. ``'+UNION+SELECT+@@version,+NULL#`` для вывода версии базы данных ![](https://i.imgur.com/Zc3Vtau.png) **2. XSS уязвимости:** 1. ![](https://i.imgur.com/D5lCplL.png) В этой лабораторной нужно использовать уязвимость в функции комментариев. Так, можно вызвать функцию ``alert``, введя в коментарий следующее: ``<script>alert(1)</script>`` ![](https://i.imgur.com/YSxRyPC.png) 2. ![](https://i.imgur.com/65Lp2r1.png) Здесь нужно определить местонахождение запроса на сайте. Для этого введу в поиск ``asdf1234`` и попробую найти это в коде![](https://i.imgur.com/m4cwbIQ.png) После этого введу ``"><svg onload=alert(1)>``, чтобы вызвать функцию ``alert``.![](https://i.imgur.com/4uLPFOm.png) 3. ![](https://i.imgur.com/oKtgoFQ.png) Здесь нужно перехватить запрос и найти строку с нашими введёнными данными ![](https://i.imgur.com/q6j0fNj.png) Исходя из этого, для вызова функции ``alert``, нужно ввести в запрос следующее: ``'-alert(1)-'`` ![](https://i.imgur.com/6Z2muFW.png) 4. ![](https://i.imgur.com/HTxj2Tv.png) Поиск файла для записи запроса![](https://i.imgur.com/stx6u5O.png) Просмотр данного файла![](https://i.imgur.com/1sUcbQR.png) Исходя из содержимого, для вызова функции нужно ввести ``\"-alert(1)}//`` ![](https://i.imgur.com/XOvyFpC.png) **3. CSRF:** 1. ![](https://i.imgur.com/X7TLQe5.png) Рассмотрим запрос на смену почты![](https://i.imgur.com/E7Aoon3.png) Исходя из этого редактируем тело эксплойт сервера (для этого можно воспользоваться онлайн переводчиком) ![](https://i.imgur.com/ICLNNym.png) ![](https://i.imgur.com/F90lLE7.png) 2. ![](https://i.imgur.com/lXlzMQ9.png) Здесь примерно тоже самое, но нужно изменить тип запроса с POST на GET, чтобы обойти проверку csrf: ![](https://i.imgur.com/Ny8bKyO.png) ![](https://i.imgur.com/5Bq06SO.png) **4. SSRF:** 1. ![](https://i.imgur.com/AAkMv29.png) Проверка доступности страницы ``/admin``![](https://i.imgur.com/N3iaeFf.png) Заход через ``stockApi=http://localhost/admin``![](https://i.imgur.com/gEFuJQb.png) При попытке удалить пользователя получаем следующий запрос:![](https://i.imgur.com/CfHxbtu.png) На основе этого дописываем stockApi и отправляем запрос, тем самым удаляя пользователя:![](https://i.imgur.com/urrnfO3.png) 2. ![](https://i.imgur.com/yV1e4d8.png) Здесь используется уязвимость перенаправления ![](https://i.imgur.com/a83BWZ2.png) А далее дописать запрос на удаление пользователя, как в прошлой лабораторной **5. RCE:** ![](https://i.imgur.com/xBhGPGv.png) Здесь нужно перехватить запрос и изменить занчение параметра storeId, чтобы получить нужную нам информацию![](https://i.imgur.com/HFV7KBv.png) **6. Path traversal:** 1. ![](https://i.imgur.com/9xnF6A5.png) Здесь взлом происходит через изображение на сайте, изменяя имя файла.![](https://i.imgur.com/Jtccwif.png) Таким образом мы получаем содержимое файла /etc/passwd 2. ![](https://i.imgur.com/hceiXJD.png) Здесь происходит тоже самое, но только указывается абсолютный адрес, в отличие от предыдущер работы, где использовались ``../`` для перехода из папки image в корневую папку