Всем привет. В общем, решил спросить гуру, т.к. поиском собственно ничего не нашел. Ни подсказки, ни чёткого указания, что всё-таки нельзя так сделать. Есть классическая уязвимость (php+mysql): $id = $_POST['id']; $sql = "SELECT * FROM table WHERE id = " . $id; $res = mysql_query($sql); ... Посмотреть я могу всё что угодно, но мне это не надо, и так понятно что там и где) Могу ли я удалить или обновить записи (оба варианта подходят) в другой таблице? Пробовал с помощью select ... into outfile создать php файл, но у процесса mysql нет прав записи в этот раздел. Пробовал подсмотреть логин/пароль к базе, но у учётной записи нет привилегии FILE. Пробовал сделать что-то типа select benchmark(1, delete from table where id = 2), но и тут облом, в бенчмарке DML использовать нельзя. Есть варианты как выполнить обновление, если есть доступ только к select? P.S. Конечно же запросы select * from table; delete from table where id=1, увы, не работают...
Да, всё запущено. Теперь разберём поэтапно. Замечательно. Особенно. если есть доступ к соседним ресурсам - можно повытягивать админские акки. Админку то хоть нашёл? Если её фактически не существует - то всё печально. Инъекция в запросе на выборку = выборка. Инъекция в запросе на insert = insert. Инъекция в запросе на delete = delete. Аналогию понял ? нет прав у MySQL или File_priv = N у пользователя в MySQL ??? А в /tmp/ что нить пишется? Угу. Это вам не MSSQL, где такая фишка прокатывает.
Печально. Нашел, только она мне не нужна, надо пару записей удалить/изменить. Это конечно понятно, вопрос стоял в существовании оператора типа бенчмарк, о котором не сказано в доке, либо сказано витиевато)) Нет привилегии FILE у пользователя mysql, под которым производится соединение. Спасибо за ответ, жаль, ну что ж, придется идти в дц с монтировкой, а так хотелось изящнее всё решить)))