mysql + sql injection в select

Discussion in 'Безопасность и Анонимность' started by petron, 3 Oct 2012.

  1. petron

    petron New Member

    Joined:
    1 Oct 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Всем привет.

    В общем, решил спросить гуру, т.к. поиском собственно ничего не нашел. Ни подсказки, ни чёткого указания, что всё-таки нельзя так сделать.

    Есть классическая уязвимость (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, увы, не работают...
     
  2. petron

    petron New Member

    Joined:
    1 Oct 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Что, таки всё запущено? =((
     
  3. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,777
    Likes Received:
    848
    Reputations:
    857
    Да, всё запущено.

    Теперь разберём поэтапно.

    Замечательно. Особенно. если есть доступ к соседним ресурсам - можно повытягивать админские акки.

    Админку то хоть нашёл? Если её фактически не существует - то всё печально.

    Инъекция в запросе на выборку = выборка.
    Инъекция в запросе на insert = insert.
    Инъекция в запросе на delete = delete.

    Аналогию понял ?

    нет прав у MySQL или File_priv = N у пользователя в MySQL ???

    А в /tmp/ что нить пишется?

    Угу. Это вам не MSSQL, где такая фишка прокатывает.
     
    _________________________
  4. petron

    petron New Member

    Joined:
    1 Oct 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Печально.

    Нашел, только она мне не нужна, надо пару записей удалить/изменить.

    Это конечно понятно, вопрос стоял в существовании оператора типа бенчмарк, о котором не сказано в доке, либо сказано витиевато))

    Нет привилегии FILE у пользователя mysql, под которым производится соединение.

    Спасибо за ответ, жаль, ну что ж, придется идти в дц с монтировкой, а так хотелось изящнее всё решить)))
     
Loading...