Многобайтовая инъекция SQL

Я знаю, что это очень часто обсуждаемая проблема, но недавно я обнаружил эта уязвимость, и я проверяю, устойчив ли я к такой инъекции, однако я не могу смоделировать такое поведение. Наверное, я не понимаю тот запрос, который они используют.

Часть, которая меня интересует:

Первая уязвимость затрагивает семейство функций mysql_real_escape_string(), которое не отклоняет недопустимые многобайтовые символы. Например, в UTF-8 строка 0xC8 ' ' Attackersql или 0xC8 \ ' Attackersql преобразуется в one_character ' Attackersql (пробелы игнорируются). Итак, запрос:

ВЫБЕРИТЕ... ГДЕ v = 'mysql_real_escape_string(0xC8' атакующий sql)'

стать :

ВЫБЕРИТЕ... ГДЕ v = '0xC8' 'атакующий sql'

ВЫБЕРИТЕ... ГДЕ v = 'один_символ' атакующий sql'

Таким образом, злоумышленник может ввести команду AttackerSQL.

Вопрос звучит довольно неубедительно, но как заставить эту инъекцию работать?

Примечание (отредактировано): я использую PHP 5.2.6, MySQL 5.0.51a (исправление), а для соединения с БД установлена ​​кодировка 'utf8'.


person chyno    schedule 22.04.2012    source источник
comment
Не могли бы вы объяснить, почему вы пытаетесь заставить это работать?   -  person eggyal    schedule 22.04.2012
comment
почему это имеет значение? он пытается быть хакером. просто дай ему ответ   -  person Alex Gordon    schedule 22.04.2012
comment
Как я уже упоминал в вопросе, я не уверен, устойчив ли я к этой уязвимости в своем приложении. Мне кажется, что мое приложение работает при тех же условиях, что описаны в статье.   -  person chyno    schedule 22.04.2012
comment
Спасибо за ваш ответ, я ожидал такой реакции, но если бы вы могли попытаться помочь мне, а не оскорблять меня здесь...   -  person chyno    schedule 22.04.2012
comment
@I__: Я спросил только потому, что, хотя я не знаю ответа на вопрос, я подумал, что, возможно, могут быть другие способы подойти к проблеме, учитывая немного больше контекста. Отдельно я понятия не имею, какая политика у SO в отношении публикации ответов, которые прямо демонстрируют, как использовать известные уязвимости?   -  person eggyal    schedule 23.04.2012
comment
Я хотел бы удалить свой предыдущий ответ в свете гораздо более подробного и знающего ответа, опубликованного здесь, но я не могу сделать так что пока это принято. Вместо этого я отредактировал его со ссылкой на этот ответ, но если вы не примете его, я удалю.   -  person eggyal    schedule 25.08.2012