[заметка] Нестандартные символы в именах таблиц MSSQL

Discussion in 'Уязвимости' started by [х26]VОLАND, 17 Apr 2009.

  1. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    (Тестировалось только Опере, FF3, IE7)
    Недавно в процессе проведения SQL-инъекции на MSSQL столкнулся с трудностью.
    Как известно, в этой СУБД в именах таблиц можно использовать символы из разных алфавитов (не только латинские).
    В моём случае имя таблицы было на французском: 'Résultats' (Далее будет рассмотрен пример именно с этим вариантом).
    Здесь присутствовала буква 'é' ('e' с диакритическим знаком). Ошибка, выдаваемая сервером сообщала о несуществующей таблице.
    Это происходит потому, что по умолчанию браузер кодирует этот символ в URL используя 2 байта (%C3%A9), что, как стало ясно, не совпадало с кодировкой базы, и, следовательно, имя таблицы интерпретировалось как неверное. Я вспомнил, что французские символы нативно присутствуют в кодировке windows-1252 (она же Latin-1 или ISO 8859-1). Она как раз и содержит специфические символы европейских языков (французский, немецкий и т.п.).
    Подходящую программу для кодирования искать было лень и я набросал свой вариант на C#:

    PHP:
    private string Encode(string strInput)
    {
          
    Encoding enc Encoding.GetEncoding(1252);
          
    char[] chr enc.GetChars(enc.GetBytes(strInput));

          
    string strOutput "";
          for (
    int i 0chr.LengthstrOutput += Uri.HexEscapechr[i++] )) ;
          return 
    strOutput;
    }
    На PHP это ещё проще: Сохраняем скрипт с содержимым
    PHP:
    echo urlencode('Résultats');
    в кодировке Windows-1252 и запускаем его.

    С помошью одного из способов я получил правильный URL-вариант данной буквы - %E9.
    Подставив в запрос 'R%E9sultats' всё прошло как полагается, что свидетельствовало о том что я выбрал верную кодировку (windows-1252).
    Естественно, данный метод подходит для других европейских языков. Для сербского, чешского, и восточноевропейских языков рекомендую использовать windows-1250.

    Информация по кодировкам:
    http://ru.wikipedia.org/wiki/Windows-1250
    http://ru.wikipedia.org/wiki/Windows-1252
     
    #1 [х26]VОLАND, 17 Apr 2009
    Last edited: 17 Apr 2009
    11 people like this.
  2. Twoster

    Twoster Members of Antichat

    Joined:
    20 Aug 2008
    Messages:
    287
    Likes Received:
    402
    Reputations:
    159
    Интересная заметка! Многим будет полезно! Я допустим об этом не задумывался!

    P.S. Всем бы нам и мне в частности научиться анализировать, а не юзать готовые сплойты из статей...
     
    1 person likes this.
  3. xXvladXx

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

    Joined:
    28 Oct 2007
    Messages:
    77
    Likes Received:
    54
    Reputations:
    5
    Согласен очень интересная заметка, примерно такое же присутствует в mysql(насчет таблиц хз)
    в кодировки Windows-1251 символ %b3 означает тройку над строчкой(или что то типа этого)
    а в кодировки GBK это \ и возможен обход экранирования кавычки
    поясню:
    Когда пхп обрабатывает строчку(в кодировки Windows-1251 или другой) то это тройка вверху строки и не трогает его
    А в базе с кодировкой GBK это \ которого пхп не тронул

    PS взято из паблик эксплойта
     
    #3 xXvladXx, 17 Apr 2009
    Last edited: 17 Apr 2009
    2 people like this.
  4. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Речь немного не о том.
    Я описал случай когда браузеры неверно воспринимают нестандартные символы. Дело не в базе как таковой (субд может быть любая), а в невозможности послать сам url-запрос.
     
    #4 [х26]VОLАND, 17 Apr 2009
    Last edited: 17 Apr 2009
    2 people like this.
  5. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    постестил в IE. тоже работает.
     
  6. .Slip

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

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Ап, фром РОА
     
    2 people like this.
  7. Raul Duke

    Raul Duke New Member

    Joined:
    20 Jan 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    привет всем, срочно нужно перекодировать в урл это символ ó. но возможности это сделать самому нету, помогите пжл.
    сайт бразильский.
     
  8. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218