Приложения на Django в debug режиме раскрывают содержимое envi | Кавычка
Приложения на Django в debug режиме раскрывают содержимое environment переменных при необработанном исключении. Несмотря на наличие автоматического сокрытия значений, для переменных соответствующих регулярному выражению API|TOKEN|KEY|SECRET|PASS|SIGNATURE, часто это приводит к утечкам через нестандартные имена переменных.
Если обнаружить debug режим можно просто обратившись к несуществующей странице, то вызвать exception иногда бывает проблематично. Даже с раскрытием существующих в приложении путей через 404-ую страницу. Но существуют и более универсальные подходы.
Пример 1 Нестандартные символы в Host. Правда с учетом облачных сервисов этот вариант срабатывает редко.
GET / HTTP/1.1 Host: '"
Invalid HTTP_HOST header: '\'"'. The domain name provided is not valid according to RFC 1034/1035.
Пример 2 Использование большего количества переменных в POST, чем указано в настройке DATA_UPLOAD_MAX_NUMBER_FIELDS (по умолчанию 1000). Для эксплуатации необходимо найти любой роут, поддерживающий POST запросы, и в редких случаях получить валидное значение CSRF токена на странице.