SQL инъекция и фильтрация точек

Discussion in 'Песочница' started by Euler, 18 Mar 2013.

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

    Euler New Member

    Joined:
    9 Sep 2012
    Messages:
    30
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток. Если в запросе фильтруются точки, то можно как-нибудь обратится к "INFORMATION_SCHEMA.TABLES"? Если ответ положительный, то как?
     
  2. cat1vo

    cat1vo Level 8

    Joined:
    12 Aug 2009
    Messages:
    375
    Likes Received:
    343
    Reputations:
    99
    PHP:
    SELECT table_name FROM tables WHERE table_schema='information_schema';
    SELECT table_name FROM information_schema/*!.*/tables;
     
    #2 cat1vo, 19 Mar 2013
    Last edited: 19 Mar 2013
  3. Euler

    Euler New Member

    Joined:
    9 Sep 2012
    Messages:
    30
    Likes Received:
    0
    Reputations:
    0
    1. #1046 - No database selected
    2. Используется точка. А в моём случае ещё и слеш фильтруется(и амперсанд).
     
  4. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    wtf??

    вы проверяете что пишите?

    откуда вы сфантазировали таблицу tables в нынешней базе?

    второй запрос это всего лишь обход ваф, а фильтрации могут быть реализованы по разному

    PHP:
    <?php if (strpos($_GET['sqli'], '.') !== false) die('hack'?>
     
    _________________________
    #4 Konqi, 19 Mar 2013
    Last edited: 19 Mar 2013
  5. Euler

    Euler New Member

    Joined:
    9 Sep 2012
    Messages:
    30
    Likes Received:
    0
    Reputations:
    0
    У меня это тоже первая мысль была, но не всё так просто...
    upd. Вторая мысль - использовать CONCAT и CHAR, но в имени таблицы их использовать не получается.
     
    #5 Euler, 19 Mar 2013
    Last edited: 19 Mar 2013
  6. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,801
    Likes Received:
    920
    Reputations:
    862
    PHP:
    select from information_schema%2etables

    select 
    from information_schema%252etables
     
    _________________________
    palec2006 and nikp like this.
  7. Euler

    Euler New Member

    Joined:
    9 Sep 2012
    Messages:
    30
    Likes Received:
    0
    Reputations:
    0
    верхний не работает и понятно почему. Но почему второй сработал? После декодирования получается ведь information_schema%.tables, что не соответствует синтаксису.
     
  8. Га-Ноцри

    Га-Ноцри Elder - Старейшина

    Joined:
    16 Oct 2011
    Messages:
    329
    Likes Received:
    177
    Reputations:
    76
    Если не ошибаюсь, подобная техника обхода, в данном случае фильтра на точку, называется Double Encoding. Еще варианты:

    точка %252e
    прямой слэш %252f
    обратный слеш %255c
     
  9. Грабитель

    Joined:
    5 Mar 2013
    Messages:
    196
    Likes Received:
    12
    Reputations:
    -7
    select table_name from information_schema,tables
    Мне помог однажды такой запрос.
    Не можешь использовать точку, используй запятую.
     
  10. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    Запрос делает полное обьединение таблиц information_schema и tables (full join, ищет их в текущей базе) и в нем ищет колонку table_namе.

    Если его подать напрямую на вход MySql - будет ошибка.
    Сработает, только если обрабатывается предварительно и обработчик меняет ',' на '.'

    Т.е. совет поможет вряд ли...
     
  11. leksadin

    leksadin Level 8

    Joined:
    19 Jan 2016
    Messages:
    128
    Likes Received:
    60
    Reputations:
    12
    а если фильтруется запятая - что можно придумать?
     
  12. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    Вариантов так много что это гадание
     
  13. leksadin

    leksadin Level 8

    Joined:
    19 Jan 2016
    Messages:
    128
    Likes Received:
    60
    Reputations:
    12
    я делаю UNION select VERSION(),2,3
    но запятые нельзя. Можно конечно как слепую крутить, через like. Но нужно union'ом
     
  14. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    join
     
  15. leksadin

    leksadin Level 8

    Joined:
    19 Jan 2016
    Messages:
    128
    Likes Received:
    60
    Reputations:
    12
    А можно чуть подробнее ? плиииз =)

    JOIN же объединяет таблицы
     
  16. HAXTA4OK

    HAXTA4OK Super Moderator
    Staff Member

    Joined:
    15 Mar 2009
    Messages:
    946
    Likes Received:
    838
    Reputations:
    605
    _________________________
Thread Status:
Not open for further replies.