SQLite — шестнадцатеричное значение в символ или строку

#sqlite #sql-injection

#sqlite #sql-инъекция

Вопрос:

Я пишу инструмент для использования SQL-инъекций. Сейчас я пытаюсь добавить поддержку SQLite, и я сталкиваюсь с проблемой: если мне нужно вставить строку, но кавычки экранируются в Mysql, я могу использовать 0x65... или в Postgres CHR(65)||... . Но в SQLite я не могу найти никакого способа сделать это без использования кавычек.

Кто-нибудь может мне помочь?

Заранее спасибо

Ответ №1:

Я не верю, что есть общее решение. Возможно, вы сможете собрать свою строку, используя салонные трюки, если она содержит правильные символы. Например, substr(quote(hex(0)),1,1) вернет "'" , upper(substr(typeof(cast(0 as text)),3,1)) вернет и т.д. "X" Я сомневаюсь, что вы можете получить весь алфавит таким образом, но этого может быть достаточно для любой планируемой вами инъекции.

Ответ №2:

Я не знаю эквивалента, однако вы можете проверить документацию, чтобы узнать, есть ли что-нибудь, что вы можете использовать:

http://www.sqlite.org/lang_corefunc.html

http://www.sqlite.org/lang_aggfunc.html