3 лайфхака для пентестинга — 14 августа 2026 г. в 15:50:09.320
3 лайфхака для пентестинга 👋 Приветствую в мире цифровой безопасности! Расскажу ещё о трех полезных фишках в пентесте. ⏺JWT kid parameter injection - параметр kid в заголовке JWT говорит серверу какой ключ использовать для проверки подписи. Если сервер использует kid как путь к файлу без санитайзинга - это path traversal прямо в механизме аутентификации: import jwt, base64 # Создаём токен где kid указывает на /dev/null # /dev/null содержит пустую строку — используем её как ключ header = {"alg": "HS256", "kid": "../../dev/null"} payload = {"sub": "admin", "role": "admin"} token = jwt.encode(payload, "", algorithm="HS256", headers={"kid": "../../dev/null"}) Сервер читает ключ из /dev/null (пустая строка), подписываем токен той же пустой строкой - проверка проходит. Работает и через SQL injection в kid если сервер делает запрос к базе. ⏺NoSQL Injection через JSON-операторы MongoDB: вместо SQL-синтаксиса используем операторы MongoDB напрямую в JSON-теле запроса: { "username": {"$gt": ""}, "password": {"$gt": ""} } $gt: “” означает “больше пустой строки” - условие всегда истинно, аутентификация проходит без знания пароля. Работает если приложение принимает JSON и не валидирует структуру объектов: curl -X POST https://target.com/login \ -H "Content-Type: application/json" \ -d '{"username":{"$gt":""},"password":{"$gt":""}}' Другие полезные операторы: $regex для перебора паролей по символам, $where для выполнения JavaScript если включён. ⏺Business Logic через parameter tampering в многошаговых флоу: многие приложения передают промежуточные данные между шагами через скрытые поля или параметры не проверяя их на бэкенде повторно. Классика в e-commerce: # Шаг 1: добавляем товар в корзину POST /cart/add item_id=123&price=999.99 # Шаг 2: меняем цену напрямую POST /cart/update item_id=123&price=0.01 # Шаг 3: оформляем заказ с подменённой ценой POST /checkout Проверяем все параметры которые передаются между шагами: цены, количество, скидки, ID пользователя. Бэкенд часто доверяет значениям из предыдущего шага вместо того чтобы пересчитывать из базы. 🤖Бесплатный ChatGPT

