В последнее время базы данных стали очень популярными из-за их качеств и возможности хранения огромного количества данных. Благодаря возможности использовать БД в сети, многие веб-дизайнеры предоставляют доступ к БД непосредственно с сайта. Это делают для того, чтобы сделать доступ к имеющейся на сайте информации максимально удобным для рядового юзера. Но из-за недостаточной квалификации многих программистов, допускаются ошибки безопасности при создании скриптов, служащих для доступа к БД. Сейчас стало стандартом де-факто использовать базы данных SQL со скриптами Perl и PHP. И это действительно очень удобно, но также очень опасно. Не будем забывать, что большинство дефейсов делается благодаря дырам в скриптах. В этой статье я опишу САМЫЕ частые оплошности кодеров в скриптах управления БД. Начнем Самая частая ошибка заключается в том, что названия таблицы берут из 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 становится более актуальным. Заключение Взлом БЗ SQL является одним самых результативных взломов на сегодняшний день. В базах данных можно найти всё, от списка пользователей сервера, до номеров кредитных карт. Выше я описал только самые основные методы взлома, но их вполне хватит, чтобы взломать примерно 30% БД в Internet’е, конечно, импровизируя в каждом отдельном случае. http://whacking.h1.ru/vzlomsql.htm
Автор копирайты укажи, будь добр. А статья для ознакомления с тем, что такое sql-inj подойдет в самый раз, не более.
Статья из разряда тех, что пишутся только ради гонорара (или репы )))). Практической пользы от нее даже новичкам не будет. И вообще. Она в феврале 2005 года была написана. Может тогда и была чем-то атуальна, не помню. Но сейчас она не нужна ни кому.
вроде как на 3306.. гм.. не помню точно=(. п.с. писать статью на примере домена *.gov - это извращенно =) п.с. название улыбнуло =)