PDA

Просмотр полной версии : Как узнать IP сервера mysql


ne0k
12.07.2011, 19:55
Есть blind sql inj в скрипте:

script.php?id=1

БД к которой обращается скрипт находится далеко не на том же сервере что и сам сайт.

sql запросами выдрал следующее:

+-----------------------+

user | password | host

+-----------------------+

root | pass | %

+-----------------------+

Т.е. зная IP сервера mysql, я могу подключиться к нему использую выше предоставленные логин и пароль? Ведь так?

Собсна вопрос: Как я могу узнать этот самый IP сервера ?

пысы: mysql 5.0.90

server: Debian 5.0

Seravin
12.07.2011, 20:34
ne0k said:
Т.е. зная IP сервера mysql, я могу подключиться к нему использую выше предоставленные логин и пароль? Ведь так?


да


ne0k said:
Собсна вопрос: Как я могу узнать этот самый IP сервера ?


Насколько я знаю только вытащив конфиг для подключения бд

Expl0ited
12.07.2011, 20:39
Ну вообще, исходя из своего опыта, если контора довольно серьезная и на нескольких серверах, то часто доступ к мюскл открыт из вне (правда бывают печальные исключения), и не менее часто порт открыт, но фильтруется входящие соединение, т.е. доступ для определенного айпи. Автор настоятельно рекомендую просканить подсеть где размещается атакуемый сервер на наличие открытого 3306 порта, или же может случится так, что извне доступ закрыт, но в локальной сети доступ открыт, и достаточно залиться на соседние сервера и попробовать просканить подсеть уже локально.

Digger
12.07.2011, 20:44
Seravin said:
да


Что да?! 1 из 10 хостеров разрешают удаленное подключение к БД!


Seravin said:
Насколько я знаю только вытащив конфиг для подключения бд


И что там будет?!


Code:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'qwerty');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

Seravin
12.07.2011, 20:51
Digger said:
Что да?! 1 из 10 хостеров разрешают удаленное подключение к БД!
И что там будет?!

Code:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'qwerty');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');



>_\\

expupkin
12.07.2011, 20:53
Digger said:
Что да?! 1 из 10 хостеров разрешают удаленное подключение к БД!
И что там будет?!

Code:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'qwerty');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');



Умник, если бд вынесли на другой хост логично предположить что к ней можно подключится извне, иначе скрипт который использует эту бд не будет работать.

Так как тс сказал что бд на другом серве то

в конфиге это выглядит

/** MySQL hostname */

define('DB_HOST', 'remote-db.com');

Я возможно немного не в теме насчёт подключения к бд извне, но назревает вопрос, если доступ разрешон только в локалке, можно ли в таком случае проникнуть в рутер и сделать портфорвардинг, проканает в таком случае подключение к бд извне?

Expl0ited
12.07.2011, 21:03
expupkin said:
Умник, если бд вынесли на другой хост логично предположить что к ней можно подключится извне, иначе скрипт который использует эту бд не будет работать.
Так как тс сказал что бд на другом серве то
в конфиге это выглядит
/** MySQL hostname */
define('DB_HOST', 'remote-db.com');
Я возможно немного не в теме насчёт подключения к бд извне, но назревает вопрос, если доступ разрешон только в локалке, можно ли в таком случае проникнуть в рутер и сделать портфорвардинг, проканает в таком случае подключение к бд извне?


Кстати совсем не логично, как я написал выше, доступ к удаленному серверу может быть только локально.

ne0k
12.07.2011, 21:06
Но конфиги я не могу прочитать на сервере сайт контентом.. Так бы давно уже сделал..

да и если даже читать конфиге на сервере с мускул, load_file не пашет, ибо куррент юзер не имеет прав...

Expl0ited
12.07.2011, 21:07
ne0k said:
Но конфиги я не могу прочитать на сервере сайт контентом.. Так бы давно уже сделал..
да и если даже читать конфиге на сервере с мускул, load_file не пашет, ибо куррент юзер не имеет прав...


Прочитай пост #3 я посоветовал как поступить.

ne0k
12.07.2011, 21:09
а вообще, в mysql.user, 68 хостов..

user'@'%

user'@'212.x.x.x

user'@'10.x.x.x

user'@'192.x.x.x

user'@'127.x.x.x

и так далее..

Т.е. наверняка есть доступ из вне?

ne0k
12.07.2011, 21:10
Expl0ited said:
Прочитай
пост #3
я посоветовал как поступить.


В этой подсети очень много хостов с открытым 3306 портом...

И да, контора серьезная.. У них в распоряжение аж 2 подсети..

212.42.1.x

212.43.2.x

Expl0ited
12.07.2011, 21:16
ne0k said:
В этой подсети очень много хостов с открытым 3306 портом...
И да, контора серьезная.. У них в распоряжение аж 2 подсети..
212.42.1.x
212.43.2.x


Если много открытых 3306 то это тебе играет на руку, больше шансов что ты получишь нужный тебе доступ.

Выбирай все открытые порты 3306 и проверяй по имеющейся у тебя паре логин:пароль

И две подсети это еще не придел

Seravin
12.07.2011, 21:17
ne0k said:
а вообще, в mysql.user, 68 хостов..
user'@'%
user'@'212.x.x.x
user'@'10.x.x.x
user'@'192.x.x.x
user'@'127.x.x.x
и так далее..
Т.е. наверняка есть доступ из вне?


root | pass | %

% даёт доступ с любого хоста под именем root(правда можно другими способами ещё ограничить)

попробуй поискать phpinfo. возможно там прописан mysql.default_host

ne0k
12.07.2011, 21:20
Expl0ited said:
Если много открытых 3306 то это тебе играет на руку, больше шансов что ты получишь нужный тебе доступ.
Выбирай все открытые порты 3306 и проверяй по имеющейся у тебя паре логин:пароль
И две подсети это еще не придел


Гы, я пробовал.. результат не удовлетворяющий..

1. host 'ip'@'blabla.com' is not allowed bla bla

2. Access denied for user 'root'@'myip'

таков результат ... Очень хотелось бы верить, что БД все таки где-то не среди них..

Ведь как ты сказал, то я могу и не знать о других серверах используемых этой конторой, где кстати и может находится искомый мускуль сервер...

ne0k
12.07.2011, 21:23
попробуй поискать phpinfo. возможно там прописан mysql.default_host


phpinfo то я нашел на сайте где работает обращающийся к БД скрипт, но вот в поле mysql.default_host стоит local ip, то бишь: 10.21.x.x

Expl0ited
12.07.2011, 21:25
ne0k said:
Гы, я пробовал.. результат не удовлетворяющий..
1. host 'ip'@'blabla.com' is not allowed bla bla
2. Access denied for user 'root'@'myip'
таков результат ... Очень хотелось бы верить, что БД все таки где-то не среди них..
Ведь как ты сказал, то я могу и не знать о других серверах используемых этой конторой, где кстати и может находится искомый мускуль сервер...


Попробуй по изучать топологию их сети, залей шелл в подсеть на любой сервер и начни копать оттуда, вообще собери как можно больше информации о конторе, серверах, какой за что отвечает, как работает, и вообще как у них всё устроено, начни из далека.

Чем упорней и настойчивей ты будешь, тем быстрее цель сдастся под напором.


phpinfo то я нашел на сайте где работает обращающийся к БД скрипт, но вот в поле mysql.default_host стоит local ip, то бишь: 10.21.x.x


Кстати, часто бывает, что администраторы дают внутренний адреса равные внешним, т.е. к примеру внешний адрес 212.41.56.129, а внутренний 10.10.56.129

ne0k
12.07.2011, 21:30
Гы.. Вот я идиот, сейчас попробовал:

SELECT @@hostname

И он мне действительно выдал хостнейм.. Но вот проблема, этот хост никак не отвечает.. Не пингуется, и даже:

Unknown MySQL server host 'db.contoraname.com'

Any ideas?

Expl0ited
12.07.2011, 21:32
ne0k said:
Гы.. Вот я идиот, сейчас попробовал:
SELECT @@hostname
И он мне действительно выдал хостнейм.. Но вот проблема, этот хост никак не отвечает.. Не пингуется, и даже:
Unknown MySQL server host 'db.contoraname.com'
Any ideas?


По моему я тебе уже всё разжевал, изучи топологию сети, и толкайся от этого, хост db.contoraname.com вполне возможно что он внутренний.

ne0k
12.07.2011, 21:32
Попробуй по изучать топологию их сети, залей шелл в подсеть на любой сервер и начни копать оттуда, вообще собери как можно больше информации о конторе, серверах, какой за что отвечает, как работает, и вообще как у них всё устроено, начни из далека.
Чем упорней и настойчивей ты будешь, тем быстрее цель сдастся под напором.


Эх, вот если бы кто-то смог сбрутить хеши админов форума.. Я бы еще залил как-то веб шелл.. Но сбрутить то vbull 3.8.4 hash никто пока так и не смог... Уже причем чуть больше месяца...

Больше никак и нигде не залить шелл.. Я почти месяц каждый день изучаю их... Это после того как я обнаружил скулю.. До этого еще с пол года тыкался в них..

Уже просто нет сил думать.. Поэтому и обратился сюда..

ne0k
12.07.2011, 21:39
Сразу скажу, варианты с уязвимостями воблы 3.8.4 не проканают.. Там нехилые кодеры сидят, и свою воблу они хорошо пропатчили..

И кстати, даже форум и тот, на левом сервере крутится.. Кстати даже на другом хостинге...

Expl0ited
12.07.2011, 21:41
Тогда кидай линку

ne0k
12.07.2011, 21:51
Тогда кидай линку


Ответы всех здесь отписавшихся, были полезны. Спасибо. Но как бы сильно не хотелось, такую инфу разгласить не могу.. Ибо реально, очень дорогая инфа..

Тут многовато нюансов.. Сорри...

Буду думать дальше..

Если у кого-то вдруг возникнут идеи, буду премного благодарен..

ne0k
12.07.2011, 22:21
Кстати, часто бывает, что администраторы дают внутренний адреса равные внешним, т.е. к примеру внешний адрес 212.41.56.129, а внутренний 10.10.56.129


Интересная идея, но к сожалению тоже не прошла..

expupkin
12.07.2011, 22:23
Expl0ited said:
Кстати совсем не логично, как я написал выше, доступ к удаленному серверу может быть только локально.


Это по умолчанию так, на то он и удалённый сервер.


PHP:
В MySQL пользователь характ ризуется двумя параметра и:именем и хостом,с котор го он может обращаться.По умолчанию доступ разреше н только с локальной маши ны,т.е.для пользователя user@ localhost.Права на доступ поль зователям даются с помощь ю команды GRANT.Команда выпо лняется под рутом.Наприме ,если я хочу создать юзер а,который сможет коннекти ься с любого хоста с пол ыми правами,то следует вы полнить следующую команду :GRANT ALL PRIVILEGES ON`имя_базы`.*TO myuser@'%'IDENTIFIED BY'пароль';Приме ание.Обратите внимание,чт данная команда дает дос уп пользователю myuser со в ех IP кроме 127.0.0.1,соответс ующего localhost.Для пользова еля myuser@localhost необходимо авать права отдельной ко андой GRANT.Если вы решите братиться к локальной ма ине как к удаленной,испол ьзуя протокол TCP/IP,то не забывайте,что myuser@l ocalhost и myuser@ip_собственного_ омпа это разные пользова ели и каждому из них пра а нужно давать отдельной командой.Второй пример по казывает как дать право ч итать таблицу time_zone в баз mysql пользователю myuser с м ашины 192.168.0.76 с паролем mypa ssy:GRANT SELECT ON mysql.time_zone TO myuser @192.168.0.76 IDENTIFIED BY'mypassy';

Expl0ited
12.07.2011, 22:28
expupkin said:
Это по умолчанию так, на то он и удалённый сервер.

PHP:
В MySQL пользователь характ ризуется двумя параметра и:именем и хостом,с котор го он может обращаться.По умолчанию доступ разреше н только с локальной маши ны,т.е.для пользователя user@ localhost.Права на доступ поль зователям даются с помощь ю команды GRANT.Команда выпо лняется под рутом.Наприме ,если я хочу создать юзер а,который сможет коннекти ься с любого хоста с пол ыми правами,то следует вы полнить следующую команду :GRANT ALL PRIVILEGES ON`имя_базы`.*TO myuser@'%'IDENTIFIED BY'пароль';Приме ание.Обратите внимание,чт данная команда дает дос уп пользователю myuser со в ех IP кроме 127.0.0.1,соответс ующего localhost.Для пользова еля myuser@localhost необходимо авать права отдельной ко андой GRANT.Если вы решите братиться к локальной ма ине как к удаленной,испол ьзуя протокол TCP/IP,то не забывайте,что myuser@l ocalhost и myuser@ip_собственного_ омпа это разные пользова ели и каждому из них пра а нужно давать отдельной командой.Второй пример по казывает как дать право ч итать таблицу time_zone в баз mysql пользователю myuser с м ашины 192.168.0.76 с паролем mypa ssy:GRANT SELECT ON mysql.time_zone TO myuser @192.168.0.76 IDENTIFIED BY'mypassy';



Локально, в том плане, что доступ имеют машины находящиеся в одной локальной сети.

ne0k
12.07.2011, 22:48
Кстати, раз такая активность здесь, хочу сказать что искомой целью является дамп всех БД на данном сервере.. Одних только БД под 40.. А в них еще и таблиц с пол тонны.. На блайнд скуле далеко не уедешь.. Вот и нужно как-то сдампить БД.. Насколько я понимаю, возможности следующие:

Есть пользователи типа user'@'212.x.x.x - данный ИП принадлежит сайту.

Админка сайта, по адресу admin.contoraname.com но и та на другом хосте, так как ИП сайта и админки отличается в конце IP адреса.

НО, юзер мускула имеет следующий вид: user'@'212.x.x.% ..

Т.е. я могу практически попав в админку, уже закончить свое дело.. Но в админке basic auth.. Нет у меня пароля .. И в базе соответственно тоже.. Но есть логины, как минимум 2..

Так как, по адресу sub.contoraname.com/.svn/entries я вижу логи..

[CODE]
Code:
dir
32
https://admin.contoraname.com/svn/sub.contoranamecom/trunk/htdocs

2010-07-22T18:22:09.329402Z
32
username