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


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


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


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

 

Интересное

Что такое комплексное...
Услуги по продвижению сайтов в сети Интернет стали в последние годы чрезвычайно популярными. Аудитория Интернета растет быстрыми темпами, многие фирмы обзаводятся сайтами и хотят привлекать на них...
Подробнее...
Звук в Linux
Под звуковой подсистемой понимается инфраструктура операционной системы, отвечающая за работу установленных в компьютере устройств для обработки звуки, а именно звуковых карт, а также различных...
Подробнее...
Подгрузка меню для сайта с...
Фреймы в HTML позволяют авторам представлять документы в нескольких разделах, которые могут быть независимыми или вложенными окнами. Например, в одном окне может располагаться меню для управления...
Подробнее...
Обзор ОС Windows Server...
Сервер Windows Server 2003 Datacenter Edition разработан специально для удовлетворения потребностей бизнеса в высокой масштабируемости, доступности и надежности и позволяет создавать...
Подробнее...
Система автоматизации
Главными критериями успеха любого заведения, в частности ресторана, бара или кафе, являются: хорошая кухня, продуманный стиль, отличный сервис, и, обязательно, оперативная работа персонала с...
Подробнее...
Ну сколько уж можно...
Можно ли операционную систему не переустанавливать по несколько раз в месяц?Мое однозначное мнение: операционную систему можно не переустанавливать по несольку раз в месяц, и это я собираюсь...
Подробнее...
Кто и как выманивает...
Пару лет назад стандартный набор распространенных интернет-угроз пополнился еще одним видом криминала. В прессе все чаще стало мелькать слово «фишинг» (phishing), под которым поначалу...
Подробнее...
Что такое torrent? Что...
Что такое bittorrent?Bittorrent — это программа, которая позволяет очень быстро распространять файлы (обьемные файлы) среди пользователей. То есть, это не пиринговая сеть в чистом виде, а скорее...
Подробнее...
100 компьютерных фактов
Когда я был мелким карапузом, я любил читать все подряд. Особенный интерес у меня вызывали книжки из серии «Хочу все знать», так как я мечтал стать межгалактическим диктатором, а для этого...
Подробнее...
Протоколы интернет
Прародителем сети интернет была сеть ARPANET. Первоначально её разработка финансировалась Управлением перспективного планирования (Advanced Research Projects Agency, или ARPA). Проект стартовал...
Подробнее...