Пример #2 Листинг статей. и некоторых паролей (для любой базы данных)

<?php

$query = "SELECT id, name, inserted, size FROM products

WHERE size = '$size'

ORDER BY $order LIMIT $limit, $offset;";

$result = odbc_exec($conn, $query);

?>

Статическая часть запроса может комбинироваться с другим SELECT-запросом, который выведет все пароли:

' union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable; --

Если этот запрос (использующий ' и --) присоединить к значению одной из переменных, используемых для формирования $query, то запрос заметно преобразится.

Команды UPDATE также могут использоваться для атаки. Опять же, есть угроза разделения инструкции на несколько частей и присоединения дополнительного запроса. Также взломщик может видоизменить выражение SET. В этом случае потенциальному взломщику необходимо обладать некоторой дополнительной информацией о структуре базы данных для успешного манипулирования запросами. Эту информацию можно получить, проанализировав используемые в форме имена переменных, либо просто перебирая все наиболее распространенные варианты названия соответствующих полей (а их не так уж и много).

Пример #3 От восстановления пароля... до получения дополнительных привилегий (для любой базы данных)

<?php

$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";

?>

Но злоумышленник может ввести значение ' or uid like'%admin%'; -- для переменной $uid для изменения пароля администратора или просто присвоить переменной $pwd значение "hehehe', admin='yes', trusted=100 " (с завершающими пробелами) для получения дополнительных привелегий. При выполнении запросы переплетаются:

<?php

// $uid == ' or uid like'%admin%'; --

$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "

$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE...;";

// … - пробелы

?>

Пугающий пример того, как на сервере баз данных могут выполняться команды операционной системы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: