Авторские статьи Работа С СУБД Через Иньекцию Запроса

Discussion in 'Статьи' started by guest3297, 4 Jul 2007.

  1. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Работа С СУБД Через Иньекцию Запроса.

    Сегодня я хочу поговорить о совешенствовании sql иньекций. В статье не будет новых способов применения sql иньекций а будут показаныы некоторые примеры запросов к базе данных которые можно применять в иньекциях.

    Часть 1 Дамп базы(на примере MSSQL).

    Начнем с того что некоторые часто упускают с поиска баз используя только поиск таблиц. Как правило администраторы создают 1 юзера на 1 или несколько баз. Для того что бы посмотреть текущие базы обратимся к такой табличке master это системная таблица и присутсвует во всех версиях mssql.
    Рассмотрим запрос:
    Данным запросом мы прочтем 1 запись, название 1 таблицы, но это не все что я хотел рассказать, у многих быват сложности по выводу данных из базы данных. Так как дамп базы практически главное за чем начинаем взлом. И так начнем. Для примера будем выводить данные из master..sysdatabases. Какие сопсобы у нас есть? Ну самое банальное что может прийти в голову
    Но мы можем смотреть только по 1 строчке. Поэтому нам надо составить какое то условие или же просто применить аналог лимита.
    Вот что используеться обычно это долго и неэфиктивно на мой взгляд должно соблюдаться много правил. Посмотрим другие примеры.
    Используем Аналог лимита.
    Используем Контрольную сумму и сделаем сортировку по ней от меньего к большему.
    Теперь мы можем свободно перемещаться по базе данных. Все что нам надо написать небольшой скрипт отпрвляющий пакет и меняющий в нем данные.

    Далее Есть банальный вариант но это если только есть колонка id пронумерованная по порядку.
    Часть 2 Обход Фильтров.
    Начнем с банального иногда !"№;%:?*()_= символы в запросе могут шифроваться. Могут появиться ошибки поэтому данные символы стоит преобпразовывать в 16 код и посылать в так называемое url кодировке.

    Далее символ ' могут быть заменены на () или []. Данной фильтрацией можно обходить пробелы используя непрерывнй подзапрос. Данный вид обхода фильтра исползуеться при фильтрации кавычек какаих либо функциях например xp_cmdshell

    Добавит юзера hack без пароля если будет открыт порт ремот декспота то мы сразу сможем заджойниться туда под этим логином и пассом.
    Фильтрацию пробелов можно обойти примерно так.

    Обхода фильтрации по регулярным выражениям передаваемым серверу я не нашел.(ps привет админам с хакер ру). В некоторых случаях обход возможен посылкой пакета другим способом POST, HEAD при посылке пакета методом HEAD мы уидим только заголок пакета без данных но запрос исполниться.

    Статья написанна только для ознакомления с языком запросов SQL. Материалы приведенные выше будут актуальны на большинстве современных субд, учитывая их архитектуру.
     
    8 people like this.
  2. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Понравился аналог лимита, не знал про конструкцию top ... start at .., а так же обход ковычек.

    Что касается статьи, то имхо мало, 2 часть только про хекс и ковычки - все. Вся статья про MSSQL, название не соответствует содержанию в полном объеме. Мне кажется надо либо добавить в старую статью про "Проведение инъекций в MSSQL", либо надо расписывать и про другие СУБД и методы.
    ЗЫ
    Объективный взгляд, конструктивное предложение, ничего личного ;)
     
  3. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Сюдя по твоему посту ты нефига не понял.
    Я не писал про определенную СУБД я писал про SQL как язык.Методы описанные будут работать на oracle mysql mssql pgsql sybase
     
    #3 guest3297, 5 Jul 2007
    Last edited: 5 Jul 2007
  4. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Собствено здесь понимать нечего - использование top... в MSSQL, аналог лимита мускула и rownum в оракл + обход ковычек c пом. непррерывного () или [] + хекс, вот и все в одну строчку.
    По сути дамп базы есть в любом посте в разделе sql инъекции, во фразе "далее юзаем лимит".

    Не будут, например в MySQL версии<5, т.к. нет таблицы IN FORMATION_SCHEMA.TABLES где есть имена таблиц или master..sysdatabases где имена БД. Т.е. не зная конкретных имен хрен, что сольешь!
    Так же в мускуле и постгре нет возможности добавить пользователя через инъекцию.
    Так что не надо обобщать...
    ЗЫ
    Я просто предположил, это чисто мое имхо ;) Дело твое, хотел как лучше.
     
    3 people like this.
  5. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Да причем тут базы данных и вообще понимаешь что SQL это язык причем тут базы данных.
    Статья написанна по SQL:2003 (Стандарт ANSI) и SQL Server 2005 (Yukon) и PL/SQL (Procedural Language / Structured Query Language). Последнии 2 очень похожи, И большинство фишек работают на всех Язык независимо от базы данных, Другое дело что определенные базы данных работают на своих Стандартах, Можно встретить очень много модификаций и даже самопальных языков и баз. К чему твои коментарии я не пойму чего ты хочешь.
    Пойми хотя бы почему это работает, раз ты такой умный обясни мне.
     
  6. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Согласен, собствено это я и имел ввиду, стандарт один, а реализации все таки разные, по- этому нельзя говорить например об универсальном методе дампа через Sql для всех СУБД, для каждый надо писать отдельный пример...
    ЗЫ
    кстати у тя случайно нет самого документа (SQL2003 ANSI) , а то нашел тока БНФ грамматику под стандарт.
     
    #6 [53x]Shadow, 5 Jul 2007
    Last edited: 5 Jul 2007