Fuente
QA Co-pilot | ️♂️ Мамині Хакери: Як зламати власний прод через Local Storage (і чом...
32 Vistas/Alcance
2026-04-16 08:16
Mensaje №264
🕵️♂️ Мамині Хакери: Як зламати власний прод через Local Storage (і чому QA має це вміти)Привіт, екіпаж! Сьогодні дістаємо чорні худі та вмикаємо режим зловмисника. Поговоримо про те, як мануальний тестувальник за 5 хвилин може знайти критичну вразливість (Security Vulnerability), просто використовуючи базові інструменти браузера. ☕️Більшість QA тестують "світлий шлях": додав товар у кошик, натиснув оплатити, перевірив статус. Але хакери не користуються вашим красивим UI. Вони лізуть під капот — у вкладку Application (DevTools).Якщо ваш розробник занадто довіряє фронтенду, ви можете знайти баги, які коштуватимуть компанії репутації.Ось 3 вектори атак, які має перевірити кожен QA:🛒 Атака на Local Storage (Кошик за 1 копійку)Зайдіть в інтернет-магазин на вашому тестовому стенді, додайте дорогий товар. Відкрийте DevTools -> Application -> Local Storage.Іноді ліниві фронтендери зберігають там не просто ID товару, а весь об'єкт кошика: {"price": 5000, "currency": "UAH"}.Що робить QA: Двічі клікає на це значення прямо в консолі, змінює 5000 на 1, зберігає і тисне кнопку "Оплатити" в інтерфейсі.Очікування: Нормальний бекенд плюне вам в обличчя і скаже "Сума не збігається з базою". Якщо ж вас перекинуло на платіжну систему з чеком на 1 гривню — вітаю, ви знайшли діру, через яку компанію можна обікрасти за день.
🔑 Злам JWT Токена (Стати Адміном за хвилину)Майже всі сучасні додатки (особливо на Angular чи React) використовують JWT (JSON Web Token) для авторизації. Він лежить у Local Storage і виглядає як довгий набір випадкових літер eyJhbG....Гріх багатьох джунів: вони думають, що цей токен зашифрований. Ні, він просто закодований у Base64!Що робить QA: Копіює цей токен, йде на сайт jwt.io і вставляє його туди. Ви побачите всі свої дані у відкритому вигляді. Знайдіть поле "role": "user" і змініть його на "admin". Скопіюйте новий токен назад у свій Local Storage і оновіть сторінку.Очікування: Якщо бекенд не перевіряє цифровий підпис токена (Signature), ви щойно отримали права адміністратора без пароля і можете видаляти інших юзерів.
🚪 Тест "Удар по пам'яті" (Видалення токена)Користувач логіниться, отримує токен. Фронтенд (через Guards) пускає його в закритий кабінет.Що робить QA: Відкриває Application, жорстко видаляє свій токен (Delete) і намагається натиснути будь-яку кнопку в кабінеті (наприклад, "Завантажити звіт").Очікування: Додаток має миттєво зрозуміти, що ви "голий", перехопити 401-шу помилку (через Interceptors) і викинути вас на сторінку логіну. Якщо ви продовжуєте сидіти в кабінеті, а в консолі просто сиплються червоні помилки — ваш UX зламано, а безпека кульгає.
Висновок: Правило №1 у веб-розробці: Ніколи не довіряйте клієнту (фронтенду). Будь-що в браузері можна підмінити. Якщо QA вміє маніпулювати пам'яттю браузера, він перестає бути просто "клікальщиком" і стає справжнім інспектором безпеки.А ви пробували міняти дані в Local Storage на своїх проєктах? 👇🔥 — О так, регулярно ламаю кошики і міняю собі ролі!👀 — Я взагалі боявся туди лізти, щоб нічого не зламати...🤯 — Йду перевіряти, чи можна в нас купити айфон за 1 гривню!