Осознал что не все подписаны на меня в соц сети Илона Маска, поэтому возможно буду дублировать сюда некоторые посты
На выходных нашел SQLi в PostgreSQL приложении. Обычно я не пишу про такие находки, но этот случай показался достаточно интересным.
Инъекция была path-based (/api/v2/.../INJECTION_POINT/...), и путь не url декодился. Пробелы, слеши, кавычки и скобки приводили к 400 Bad Request.
Придумал обход используя dollar-quoting синтаксис PostgreSQL:
$$0$$OR-0-$$0$$NOTNULL
Как PostgreSQL это парсит:
1. $$0$$ - dollar-quoted строка, автоматически каститься в integer
2. OR - логический оператор
3. -0-$$0$$ - арифметическое выражение
4. NOTNULL - проверка на null (вернет true)
Для этого payload нужны всего два не alphanumeric символа: $ и - (минус можно заменить на +).
Может быть полезно для обхода WAF (например, Cloudflare это не блокирует) или при похожих ограничениях на символы.
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram