В последнее время базы данных стали очень популярными из-за их качеств и
возможности хранения огромного количества данных. Благодаря возможности
использовать БД в сети, многие веб-дизайнеры предоставляют доступ к БД
непосредственно с сайта. Это делают для того, чтобы сделать доступ к
имеющейся на сайте информации максимально удобным для рядового юзера. Но
из-за недостаточной квалификации многих программистов, допускаются ошибки
безопасности при создании скриптов, служащих для доступа к БД.
Сейчас стало стандартом де-факто использовать базы данных SQL со скриптами
Perl и PHP. И это действительно очень удобно, но также очень опасно. Не
будем забывать, что большинство дефейсов делается благодаря дырам в
скриптах. В этой статье я опишу САМЫЕ частые оплошности кодеров в скриптах
управления БД.
LET’S ROCK
Самая частая ошибка заключается в том, что названия таблицы берут из URL,
что чаще всего встречается в форумах и бордах. Т.е. для обращения к форуму
best с сайта blah-blah.gov используется строчка
http://www.blah-blah.gov/base.pl?forum=best.
Скорее всего, параметр forum
будет заноситься в переменную $forum. Значит горе-кодер в своих скриптах
прописал что-то типа:
SELECT * FROM $forum;
UPDATE $forum SET DATE = ‘09/08/02’
Вроде бы всё хорошо, но вся изюминка в том, что названия таблицы обычно не
проверяют на правильность. А это значит, что ничто не сможет нам помешать
написать в URL’е строку такого содержания:
“http://www.blah-blah.gov/base.pl?forum=best;SELECT * FROM best; DROP TABLE
best”. После чего запустится скрипт и выполнит следующий SQL-запрос:
SELECT * FROM best;
DROP TABLE best;
Который сначала выводит все содержимое таблицы best, а потом удаляет её.
Этот запрос, конечно, пройдёт только тогда, когда у пользователя достаточно
прав, для того, чтобы удалить таблицу. Но админов, которые дают такие права
пользователям, в Internet’е навалом, сам проверял=].
Теперь ты можешь без особого напряга удалить какую-нибудь базу. Но этого
как правило мало. Мы же не вандалы. Допустим на нашем сайте
www.blah-blah.gov для того, чтобы использовать форум надо сначала
зарегистрироваться. Не вопрос. Идём на страницу регистрации. Как правило,
для пользователей тоже создают базу и запрос, который вставляет нового юзера
выглядит так:
INSERT INTO userbase
Values (firstname=’$fname’, lastname=’$lname’, age=$age);
Как ты уже понял, описанный выше способ применим и для других параметров,
передаваемых в URL. А теперь представь, что мы знаем, что в этой таблице
есть также поле xlev, значение которого принимает два значения, либо user
либо superuser. Как несложно догадаться, если ты superuser, то можешь
делать с форумом, что захочешь. Но проблема в том, что если это поле
пустует, то пользователь считается простым user”ом. Не порядок. Если
повнимательнее рассмотреть данный запрос можно увидеть параметр $age,
стоящий без кавычек. Как правило, числовые данные не проверяют на
действительность, и туда можно записать что угодно. Этим мы и
воспользуемся. Вводим всё как надо, а в строке age
пишем:25,xlev=’superuser’. Вот ты и бог=]. Как видишь, ничего сверх
сложного здесь нет. Надо только подумать чуть-чуть.
DEFAULT
А теперь самое главное. Можно искать сайты с тупыми скриптами, передающими
параметры в URL’е, а можно сделать умнее=]. Я уверен, что ты уже знаешь,
что многие админы, особенно начинающие, ставят всё по дефолту. К них ещё
нет опыта, и не знают, что это не есть гуд. Хочу заметить, что этим грешат
также и матёрые сисопы. Так вот. Многие либо оставляют логин и пароль SQL
сервера по умолчанию, или меняют пароль на какой-нибудь типа 54321. Вот
этим и надо прежде всего воспользоваться. В Microsoft SQL Server по
умолчанию стоит юзер sa без пароля, а в MySQL, root также без пароля. MsSQL
и MySQL сидят на портах 1433 и 3366 соответственно. Так что качай клиент и
попробуй вломится на базу под стандартным юзером. Если тебе не повезло и
пароль не подходит, то советую тебе скачать брутфорс, для удалённого
перебора паролей SQL (найти его можно на нашем сайте в File ->> Password Crack).
EXPLOITS
Для взлома SQL серверов, существует много exploit’ов. Описывать их я не
буду, т.к. чтобы описать хотя бы самые достойные из них понадобится много
места и время, да к тому же я не считаю это нужным. На нашем сайте
в архиве exploit’ов ты найдёшь исходники как для получения root’а, так и для
удалённый DoS атак на SQL сервер. К тому же рассчитывая на то, что в
последнее время в MsSQL нашли два десятка таких дыр, DoS на MsSQL
становится более актуальным.
OUTTRO
Взлом БЗ SQL является одним самых результативных взломов на сегодняшний
день. В базах данных можно найти всё, от списка пользователей сервера, до
номеров кредитных карт. Выше я описал только самые основные методы взлома,
но их вполне хватит, чтобы взломать примерно 30% БД в Internet’е, конечно,
импровизируя в каждом отдельном случае.
iNo     [KODSWEB]
!!! Статья является собственностью команды KODSWEB !!!
!!! Любое распространение без нашего разрешения строго запрешено !!!