Blind Sql injection in Mssql

Discussion in 'Безопасность и Анонимность' started by ShAnKaR, 22 Nov 2007.

  1. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    ктонибудь представляет как провернуть сабж? фишка с бенчмарком если он есть не подходит с if там синтаксис другой совсем не как в mysql. заранее спасибо.
     
  2. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    Я представляю, могу помочь, излагай, покрайней мере попробую
     
  3. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    да че тут излагать - нужно данные из базы вытащить но они естественно ни где не отображаются тоесть можно использовать только логическое да или нет тоесть чтоб при false выдавалась ошибка в sql запросе при true не выдавалась вот и все.
    вробовал через select 1 where (select 'xxxxxxx')=1 ни фига не выводит ошибки что типы не соответствуют , вот спрашиваю можно ли как то еще провернуть сабж ?
     
  4. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    а union select некатит? также можно поиграть с and и or, может с типами данных попробовать, так тяжело сказать, это все от конкретного случая зависит, кинь линк, сюда или в личку мне, скорее всего смогу помочь
     
  5. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    линк естественно ни куда не буду кидать ) ты мне напиши примеры запросов что я понял что ты имеешь в виду, большое спасибо.
     
  6. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    смотри, как знаешь,вот примеры:
    select 1 where id=4 and substr((select 'xxxxxxx'),1,1)='x'
    при правильном варианте, выполнится запрос select 1 where id=4

    select 1 where id=4 or substr((select 'xxxxxxx'),1,1)='x'
    при не правильном варианте, выполнится запрос select 1 where id=4

    дальше перебор

    я тебе очень советую попробовать вариант с union select

    а также разделение запросов ; и выполнение sp_makewebtask, для получения данных, если есть права на использование этой комманды


    ты вот пишешь, что ошибок связанных с типами данных нет, а другие ошибки выводит?
     
  7. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    вообще практически аналогично..
    шанк - https://forum.antichat.ru/thread45983.html

    или запрос какой-то специфический?
     
    #7 darky, 22 Nov 2007
    Last edited: 22 Nov 2007
  8. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    о результате запроса я могу судить только по тому что выпала ошибка или нет,сам результат запроса он мне не кажет, sp_makewebtask не подходит так как я не знаю полного пути к скрипту. что за пример с union select ? это ты имеешь ввиду select 1 union select 1,1 ? ну так если это то оно всегда выводить будет ошибку при любых условиях в if.
     
  9. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    нет совсем не анологично к сожалению, еще раз повторюсь что на выходные данные которые выводит страница я немогу запросом ни как влиять могу только видеть когда ошибка в запросе , больше ни чего.
     
  10. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    ну тогда пользуй подзапросы, пример которых я тебе привел, а при чем тут if? напиши модель запроса, который исполняется на сервере, а тоя чето действительно не понимаю откуда if взялось
     
    1 person likes this.
  11. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    кароче приблезительно идет изначально такой запрос в скрипте:
    bla bla lba SelectwhoOnline 'bla_var',1,1,1,1
    тоесть выполняется процедура или пользовательская функция SelectwhoOnline и вот в место значения 'bla_var' можно вставить свой запрос, вот я и закрываю эту функцию чтоб она не вызвала ошибки bla_var',1,1,1,1; а потом вставляю sql inj но его результат естественно не отображается и о выполнении я могу судить только по ошибкам.
     
  12. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    и как же я смогу узнать что именно выполнилось?
    еще раз прошу написать что ты имеешь ввиду под 'запрос с union' ?
     
  13. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    ага насколько я понял, union не прокатит, я про тот запрос c union, который в mysql используется

    попробуй сначала запрос без использования and substr((select 'xxxxxxx'),1,1)='x', результат выполнения и будет как бы шаблоном правильного варианта, а потом подставляй подзапросы и смотри изменения
     
  14. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    я хз какой раз повторяю что запрос влияет на отображаемую страницу только в одном случае- когда есть ошибка в синтаксисе запроса, больши ни когда!!!
    как же я могу увидеть изменения?

    пока ни кто не помог (((
     
  15. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    ну в общем то Scipio правильно тебе посоветовал с подзапросами
    Попробуй выполнить
    select 1 where id=4 and 1=1
    select 1 where id=4 and 1=0
    в последнем должна появится ошибка
    Если ошибка есть (страница изменилась) то используй подзапросы которые тебе выше дал Scipio
    например при таком
    select 1 where id=4 and substr((select 'xxxxxxx'),1,1)='x' - появится страница без ошибки
    select 1 where id=4 and substr((select 'xxxxxxx'),1,1)='a' - должна быть ошибка
    Ну а если при select 1 where id=4 and 1=0 гурзится та же страница что и при правильном запросе, то имхо инжекция бесполезна
     
  16. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    да не правильно на самом деле посоветовал , когда это у тебя такие запросы приводили к ошибке?
     
  17. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    если честно только после последних двух постов понял что ты имеешь ввиду)) .. по аналогии с мускулом в http://torrent.2x4.ru/rss.php?passkey=[sql]

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

    запрос там select count(*) from users where table = $passkey
     
  18. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Я писал в статье котрая в моа все методы провидения без вывода по отстуку сервера.
     
  19. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    ну из того что ты писал может помочь лишь метод аля бенчмарк , и возможно фишка с ROWSET но под второй способ придется мне лепить клиент серверного монстра который будет посылать запросы и паралельно слушать порт.
    так что видимо придется мне на бенчмарке остановится, раз вариантов больше нет (
     
  20. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    а вобще походу и openrowset не прокатит так как:
    так что бенчмарк и остается только .