Ну давай рассмотрим запрос:
Код:
SELECT m.*, g.* FROM ibf_members m LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) WHERE LOWER(name)='\1\'
Ругается на незакрытую кавычку, так как обратный слэш экранирует кавычку, подставляемую по умолчанию.
Можно ли пропихнуть свой пэйлоад? Теоретически можно, если:
1) У тебя есть второй параметр в запросе, который мы можем контролировать. То есть первым параметром мы экранируем кавычку, превращая дальнейший запрос в строковое значение, а вторым параметром прокидываем свою нагрузку.
У тебя в запросе участвует только одна переменная, поэтому это - не наш случай.
Значит нужно пытаться дополнить запрос в рамках одной переменной.
Но для этого, нам надо закрыть первую кавычку.
2) Обязательным условием должно являться, чтобы кавычка не преобразовывалась, а проходила в чистом виде.
Проверяем:
123'\
Response
Код:
SELECT m.*, g.* FROM ibf_members m LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) WHERE LOWER(name)='123'\'
Как видим, кавычка энкодится. Тухлый вариант.
Самый максимум этой баги - узнать текущий префикс к таблицам.