Ошибка: Failed to parse the Currency Converter XML document.
$1 590.28


Ошибка: Failed to parse the Currency Converter XML document.
$1 678.08


Ошибка: Failed to parse the Currency Converter XML document.
$23 236.27


SQL injection

Что побудило меня написать эту статью?
Желание поделиться навыками, с другими начинающими хакерами.

Статья эта написана только в целях повышения уровня знаний и за любое другое применение автор не несёт ответственности!!!

Все примеры описаны для Mysql.

Теория.

1. Обнаружение SI.

Во первых нам надо узнать, использует ли сервер SQL вообще, для этого по бродим по ссылкам, если через URL(То есть методом GET) передаются числовые параметры, то сервер скорее всего использует SQL, чтобы убидиться в этом подставим несуществующее значение (Обычно подходит — 1 или 99999), если сервер, в том месте где должна быть информация, выдал пустое место, значит SQL используется!!!

Возможно два способа!
1.1 Подставляем «/*
После такой подстановки, если Magicquotes = off, Сервер выдаст ошибку или пустую страницу, это говорит о том, что сервер скорее всего подвержен атаке.

Происходит это из — за того что запрос принимает вот такой вид:
$query=mysql_query(« select* from `table` where `id`=»«/* and `id2`=»id2«);
Вряд ли кодеры предусматривали такой вариант и вставили пустое значение в id =)


1.2 Проверяем Математикой =)
Итак предположим на » ответ отрицательный, тогда проверим корректно ли написан запрос!
Предположим мы имеем дело с таким параметром id=2 при этом сервер выдал нам какую-то информацию.

Теперь проверим =) Подставляем в id математическое выражение т.е. id=3-1 если сервер выдал ту же информацию, сервер 95\% подвержен атаке =)

Реализация...

Мы не можем узнать как выглядит запрос в перво источнике, но для теоретического понимания приведу пример, и что происходит с запросом, при вставке нашего кода.

$query=mysql_query(« select * from `table` where `id`=id and `id2`=«id2»);
или
$query=mysql_query(» select * from `table` where `id`=«id» and `id2`=«id2»); при выключенных MAGICQUOTES

Итак мы вставляем в id следующее значение — id = — 1+union+select+1,2/* или id = — 1«+union+select+1,2/* во втором случае.

Запрос превращается вот в такой:
$query=mysql_query(» select* from `table` where `id`= — 1 union select 1,2/* and `id2`=»id2«);
$query=mysql_query(" select* from `table` where `id`=» — 1« union select 1,2/* and `id2`=»id2');
Union используется для обьединения запросов.

Нам нужно узнать, сколько полей используется в запросе.Делается это следующим запросом —
id= — 1+union+select+1/*
/* — используется для того, чтобы не работала остальная часть запроса, и обозначает открытие коментария.

Если выдаётся ошибка типа «select statement ...» Значит используется больше полей! Изменяем запрос
id= — 1+union+select+1,2/*
И добавляем до тех пор, пока не получим вывод без сообщений об ошибках!
Итак мы добились своего! Идём дальше =) Предположим мы знаем имена таблиц(если нет, то можно воспользоваться программой от rst(rst.void.ru))

В первую очередь проверяем, есть ли права на выборку из БД `mysql` Составляем вот такой запрос
id= — 1+union+select+user,password+from+mysql.user/*
Где user,password — имена полей для выборки! Если на страницу выводиться только один результат, то можно перебирать результаты используя функцию SQL — limit ...

Предположим, мы знаем, что есть таблица, имя которой reguser, и вней есть поля usr и pwd =)
Чтобы их вывести составляем такой запрос
id= — 1+union+select+usr,pwd+from+reguser/*

Вот и всё, это мои знания по SQL Injection которых мне пока хватает =)
Greetz: Всем, кто описывал этот тип атаки =)

 

Интересное

Установка свойств для...
Установка свойств для разных объектов на странице является одной из простейших задач при программировании на VBScript. Стандартная схема этого действия выглядит так:
Подробнее...
Создание таблиц Excel на PHP
Excel - ом пользуются те, кто работает с финансами и деньгами. Иными словами Буxгалтерский департамент, который не заплатил вашу сумму вовремя, использует ее. Сделайте жизнь буxгалетеров легче и...
Подробнее...
Serv-U: Установка FTP-сервера
Хочу установить на своей машине в локальной сети FTP-сервер, но не выбрал программу. Какую именно вы посоветуете и каким образом ее нужно настроить?Выбор программы Спрос рождает предложение,...
Подробнее...
DOTNET - Да или Нет. С...
Руководитель IT департамента любой сколько-нибудь развившейся и вставшей на ноги компании почти наверняка имеет мечту. Мечту, в которой его предприятие совершает все деловые операции со всеми...
Подробнее...
ASP. Работа с Internet...
Прогресс не стоит на месте, а движется вперед и в новых покалениях Windows уже имеются встроенные сервера для работы с ASP — это Internet Information Server (IIS). В этой статье мы...
Подробнее...
Обзор и установка системы...
ВведениеДумаю, в настоящее время никто уже не станет спорить с утверждением, что процесс вхождения Linux в корпоративный мир стал необратимым, а процент установок этой операционной системы на...
Подробнее...
Компьютеры для офиса
На сегодняшний день компьютеры стали самой естественной и неотъемлемой частью жизни практически для каждого современного человека. Это очень удобно при ведении бизнеса, как маленькой фирмы, так и...
Подробнее...
Обслуживание компьютеров
Выбор компании-аутсорсера. Рано или поздно, но каждая уважающая себя фирма сталкивается с необходимостью пригласить к сотрудничеству аутсорсинговую компанию. Ах, да. Необходимо пояснить, что это...
Подробнее...
CSS дизайн: с учетом контекста
Веб-стандарты обещают нам улучшенную поддержку мультимедиа: возможность оптимизировать контент под возможности компьютерных экранов, портативных устройств, принтеров, проекторов, и других...
Подробнее...
Сжатие данных на PHP
Многие броузеры поддержывают gzip сжатые файлы в «прозрачном» для пользователя режиме.Для текстовых файлов (html страниц) коефициент сжатия этим методом составляет 0.2-0.3, т.е. данные сжимаются в...
Подробнее...