--- title: Практическая работа 3 tags: pt-start, web basics --- > [name=despersy] > Перед начало работы отмечу, что изначально я не полностью прочитал условие работы и подумал, что надо выполнить атаки на скачаном сервере, ибо он для этого и сделан. Реализации данных атак я выделил в отдельные теги перед основной работой. ## SQL injection ### На скачанном докере Сначала запускаем докер на 80 порту. ![](https://i.imgur.com/jJ1tr8u.png) Пробуем саму базовую атаку. Она расссчитана на то, что сервер проверяем пароль возвращая true. В таком случае моя атака сработает, ибо я закрываю скобку данных, после чего записываю выражение, которое 100% вернет true, после чего комментирую всю остальную часть. ![](https://i.imgur.com/BYLrYhs.png) И она сработала. ![](https://i.imgur.com/m5AHSP8.png) ### Реализация sql injection на сервере без защиты Повторяем действие, которое было уже проделано и описано в предыдущем пункте. ![](https://i.imgur.com/MXiZRYq.png) Смотрим результат. ![](https://i.imgur.com/Kk1ktAh.png) ### Реализация sql injection с работой через скрытые файлы. Тут уже никаких ссылок нет, поиска тоже, поэтому лезем в код сайта. ![](https://i.imgur.com/xp539xO.png) А вот и работа фильтра поиска. Возможно тут получиться что-нибудь устроить. ![](https://i.imgur.com/BljAMtq.png) Если заменить значение в самом фильтре, возможно, выдаст что-то другое. ![](https://i.imgur.com/FXmBgHk.png) Результат печальный ![](https://i.imgur.com/ky6aqzg.png) Тогда лезем в burp и смотрим запрос через перехват ![](https://i.imgur.com/5gtN5S7.png) Меняет результат фильтра на другой, чтобы получить все данные. ![](https://i.imgur.com/wSMmVfi.png) Ловим ошибку и меняем запрос на запрос переделанный под ссылку. ![](https://i.imgur.com/wlwuBRZ.png) И опять внутренняя ошибка... ![](https://i.imgur.com/HFJQIc5.png) Теперь лезем в путь и меняем его. Это тоже не сработало. ![](https://i.imgur.com/jNoNsxd.png) Тут до меня дошло, что я пока не проверял работу именно через запись в поисковой строке. Пробуем и получаем хороший результат. ![](https://i.imgur.com/PZZZq7g.png) ### Атака с получением данных из другой таблицы. Пробуем сначала просто попасть внутрь системы ![](https://i.imgur.com/z0Cazq6.png) Ага. Не работает. ![](https://i.imgur.com/j80B2TF.png) В описании работа есть UNION, следовательно, надо работать через него. Пробуем изменить запрос на UNION SELECT 'столбец1','столбец2' --. Это делается, чтобы проверить количество столбцов в таблице. ![](https://i.imgur.com/WZy3WzF.png) Ясно, делаем иначе. ![](https://i.imgur.com/CQBZ3mj.png) Пробуем написать тоже самое, только уже через строку. Запрос сработал. ![](https://i.imgur.com/kurNDNt.png) Проверяем второй раз. Получаем две строчки в ответ. ![](https://i.imgur.com/CbGUJ5w.png) Теперь попробуем вытащить все данные из таблицы пользователей. Получаем данные с паролями. ![](https://i.imgur.com/ajOng9u.png) Берем данные админа и входим в систему. ![](https://i.imgur.com/qK7VG9D.png) ### Атака sql с получение версии системы. Пробуем напролом. Не выходит. Хотя у меня и запрос немного неверный. ![](https://i.imgur.com/e28xp2K.png) За кадром я проверил еще несколько вариаций атак, которые были до этого, но все они не прошли. По итогу перешел в repeater и начал работать с запросами тут. Сработало. ![](https://i.imgur.com/ybYzFi7.png) гуглим вызов версии из sql и пробуем запрос, который был только что, только теперь заменяем первый столбец. Результат успешный ![](https://i.imgur.com/sPOGexI.png) ## xss атаки. ### Реализация на докер сервере Пробуем внедрить код в поисковую строку. Результат положительный. ![](https://i.imgur.com/p8RFDZ9.png) Теперь пытаемся закунуть полноценный скрипт. Это не выходит. Стоит отметить, что есть несколько вызовов alert, я использовал один из них, также монжо попробовать сделать это через iframe ![](https://i.imgur.com/NNwoLSq.png) Через iframe сработало. ![](https://i.imgur.com/wjS2FTx.png) Чисто из интереса пробую запустить сайт для рикролла, ибо ютуб блокируется как и другие сервисы. ![](https://i.imgur.com/vh9lvYx.png) ### xss без кодирования Пробуем воткнуть в ссылку запрос, получаем not found ![](https://i.imgur.com/YAPCCE5.png) Тогда начинаем лазить по сайту на предмет тектбоксов. Находим таковой в коментариях у товарам. Пробуем запустить тут. ![](https://i.imgur.com/Ua3evTy.png) Сработало. ![](https://i.imgur.com/klKELIL.png) ### xss dom атака Пробуем через поисковую строку. Не выходит. Значит идем дальше. ![](https://i.imgur.com/5xXX5iR.png) ![](https://i.imgur.com/srqeBD4.png) Поравшись в сайте, я пошел в его углубленное изучение вплоть до скриптов через burpsuite. В итоге нашел схему работы запроса. По сути мой текст в тупую добавляется к поисковому запросу. ![](https://i.imgur.com/ZO6jc2S.png) Пробуем закрыть тег сделав другую img, но это не сработает ![](https://i.imgur.com/JXWhmuQ.png) Тогда как вариант можно использовать svg, ибо у него есть параметры onload для скриптов ![](https://i.imgur.com/hgQT9Vu.png) Результат удачный ![](https://i.imgur.com/0veuKt4.png) ### reflected xss Ну раз в заголовке записан html, то и лезть надо в него. ![](https://i.imgur.com/HIyyL7O.png) Пробую добавить комментом сроку. Результат, очевидно, неудачный. ![](https://i.imgur.com/3ChQjL5.png) Пробуем немного изменить разметку между alert ![](https://i.imgur.com/msjPuFy.png) Результат успешный. ![](https://i.imgur.com/Tg4mT02.png) ### xss reflected dom Надо полагать, что теперь вообще все атаки работать не будут не через burpsuite, поэтому лезем сразу в него. Есть путь и есть результат. ![](https://i.imgur.com/dPKYIW0.png) Рельтат нулевой ![](https://i.imgur.com/qgFclQq.png) Потыкав еще по всем блокам я опять лезу в js. Тут можно заметить, что результат вычтитывается через eval. По идее закоментив ненужную часть я смогу выполнить запрос, нужный мне. ![](https://i.imgur.com/VdflBZ9.png) Пробуем ![](https://i.imgur.com/N9SJEPL.png) Результат успешный ![](https://i.imgur.com/yDYyZJt.png) ## CSRF атаки ### Реализация на докере. Тут я узнал, что есть таблица лидеров. ![](https://i.imgur.com/Mb9LYZp.png) Переходим на страницу пользователя. Тут берем теги и готовим отправку на страницу ![](https://i.imgur.com/NqKJMdF.png) ![](https://i.imgur.com/0Us8zhh.png) Так как новые браузеры не дают выполнять подобные атаки, я пользовался konqueror'ом для этого. На моменте запуска со второго окна есть возможность запустить код, после чего у пользователя измениться имя ``` <html> <body> <iframe srcdoc=' <html> <body> <form action="http://192.168.0.122/profile" method="POST"> <input type="hidden" name="username" value="desp_new_name" /> <input type="submit" value="Submit Request" /> </form> <script>document.forms[0].submit();</script> </body> </form> '></iframe> </body> </html> ``` ![](https://i.imgur.com/ih4Ot4R.png) ### csrf атака на сервер без защиты Так как в ТЗ присутствуют стартовые данные, то изначально входим под ними ![](https://i.imgur.com/WIlVztE.png) Через intercepter ловим пост запрос и делаем из него csrf ![](https://i.imgur.com/NfkWPbY.png) Теперь жем по exploit server ![](https://i.imgur.com/hKqt1HJ.png) и выполняем полученный скрипт ![](https://i.imgur.com/1M1KYet.png) ### csrf с открытым переходом Повторяем действия и предыдущего пункта ![](https://i.imgur.com/JF08OEQ.png) Переходим в csrf generator ![](https://i.imgur.com/C0DZinM.png) Запускаем код ![](https://i.imgur.com/8Hmr5r1.png) ![](https://i.imgur.com/n9dwfT7.png) ## ssrf атаки Пробуем попасть на страницу администратора. Требует пароль ![](https://i.imgur.com/0qEuvbw.png) Просто из интереса пробую инъекцию. Само собой нет ![](https://i.imgur.com/wk3xXDk.png) Тогда лезем по товарам. Есть активные кнопки в продуктах. Возможно именно это мне и нужно ![](https://i.imgur.com/8awSPXD.png) Смотрим его через код страницы. А вот и запрос к базе появился ![](https://i.imgur.com/hyPFbw5.png) В ТЗ localhost, поэтому пробуем его. Немного не то, поэтому просто вводим ![](https://i.imgur.com/clK7HUj.png) ![](https://i.imgur.com/D3WRGpd.png) Теперь смотрим на запрос, привязанный к этим кнопкам ![](https://i.imgur.com/2JWOMIJ.png) Немного модифицируем свой запрос ![](https://i.imgur.com/dy04hZu.png) Удаляем пользователя и получаем поздравления ![](https://i.imgur.com/u5purVQ.png) ### ssrf валидация токенов Сразу берем пакет и отправляем в репитер ![](https://i.imgur.com/2tbLgUU.png) Пробуем отправить запрос на путь админа ![](https://i.imgur.com/I5nKI9P.png) В итоге получаем список пользователей ![](https://i.imgur.com/5huVMBi.png) Через этот же репитер выполняем удаление пользователя ![](https://i.imgur.com/kQxiFS1.png) Смотрим на результат ![](https://i.imgur.com/Xt42UU0.png) ## RCE Как и раньше начинаем с перехвата трафика к серверу и попыток его модифицировать ![](https://i.imgur.com/tdNSdcT.png) Подобным образом мы уже пытались выполнить rce, поэтому попробую еще раз. ![](https://i.imgur.com/0Dha77V.png) И да, ls сработал ![](https://i.imgur.com/00e2yU3.png) Теперь запускаем whoami ![](https://i.imgur.com/innkAS6.png) Смотрим на результат ![](https://i.imgur.com/Jkg5nP4.png) ## Path traversal ### Простой вариант Описание выводится через фильтрацию, поэтому смотрим дальше ![](https://i.imgur.com/sq9dkbc.png) Пробуем на rce ![](https://i.imgur.com/iJJHxDR.png) Не-а. ![](https://i.imgur.com/KQqTKvt.png) Пробуем второй вариант ![](https://i.imgur.com/YO7ovfh.png) Ну, картинку сломал ![](https://i.imgur.com/vJZZJ7Q.png) Пробуем выйти за границы пути. Почему несколька "../"? /var/www/html. Мы выходим из каждой директории до корня и идет в /etc/passwd. /etc/passwd просто я уже пробовал, поэтому пошел выходит постепенно из директории, ибо нахождение всех файлов в корне html могло быть и неверным. ![](https://i.imgur.com/vDSXfJZ.png) Смотрим ответ от сервера. ![](https://i.imgur.com/qKkaGsm.png) ![](https://i.imgur.com/RWcCMXz.png) ### path traversal при помощи абсолютного пути Пробуем повторить прошлую работу, постепенно добавляя к пути ../ ![](https://i.imgur.com/j9NGNEb.png) аа... И не пришлось даже. Так даже лучше ![](https://i.imgur.com/h5L9fsh.png)