Ховайте свої API-ключі 🎂
Починаємо тиждень із повчальних історій. Якщо ви вже давно з нами, то знаєте, що Настя — людина традицій. І кожного 21 березня вона збирає всіх наших друзів їсти київський торт. Ніхто його не любить, і вона сама теж, але це вже традиція. У мене є питання до її політичних поглядів, але то вже особисте.
Цього року ми хотіли запаритися й організувати різні інтерактиви. Одним із них була вікторина. Для цього є гарний вебзастосунок, тому вирішив його використати й почав складати список питань. Я хотів додати зображення та відео для інтерактивності, але виявилося, що ця функція доступна лише у PRO-акаунтах. Щоб отримати доступ, потрібно було одноразово сплатити певну суму $. Платити не дуже хотілося (київський торт сам по собі також не дешевий), тому я вже почав шукати безкоштовні альтернативи, але стало цікаво, як усе влаштовано на цьому сайті.
Перше, що помітив – весь вихідний код був відкритий (не мініфікований, не обфускований). У ньому знайшовся адмінський API-ключ для Supabase, який був доступний на клієнті. Обмежень по доменах не було, тому вдалося підключитися і отримати доступ.
Інформація про план акаунта зберігалася в базі даних. Для цього використовувався окремий бекенд, і не було очевидно, чи ця база на Supabase.
З вихідного коду також стало відомо, що існує адмінська сторінка, доступна лише для одного акаунта – розробника. На щастя, ID цього акаунта був захардкоджений. Завдяки доступу до Supabase вдалося створити magic link, який дозволяв увійти на будь-який акаунт без пароля. Після цього залишалося лише видати собі Pro-план через адмінську панель.
Висновок: Завжди перевіряйте, які дані ви відкриваєте публічно, щоб випадково не дати доступ до своїх ресурсів.
З етичних причин посилання не публікую – збираюсь повідомити розробника про вразливість. Але сподіваюсь, що PRO-акаунт мені залишать, бо створювати вікторини мені сподобалось.
То шо, я тепер хакер, получається, чи шо?
#localhost
Починаємо тиждень із повчальних історій. Якщо ви вже давно з нами, то знаєте, що Настя — людина традицій. І кожного 21 березня вона збирає всіх наших друзів їсти київський торт. Ніхто його не любить, і вона сама теж, але це вже традиція. У мене є питання до її політичних поглядів, але то вже особисте.
Цього року ми хотіли запаритися й організувати різні інтерактиви. Одним із них була вікторина. Для цього є гарний вебзастосунок, тому вирішив його використати й почав складати список питань. Я хотів додати зображення та відео для інтерактивності, але виявилося, що ця функція доступна лише у PRO-акаунтах. Щоб отримати доступ, потрібно було одноразово сплатити певну суму $. Платити не дуже хотілося (київський торт сам по собі також не дешевий), тому я вже почав шукати безкоштовні альтернативи, але стало цікаво, як усе влаштовано на цьому сайті.
Перше, що помітив – весь вихідний код був відкритий (не мініфікований, не обфускований). У ньому знайшовся адмінський API-ключ для Supabase, який був доступний на клієнті. Обмежень по доменах не було, тому вдалося підключитися і отримати доступ.
Інформація про план акаунта зберігалася в базі даних. Для цього використовувався окремий бекенд, і не було очевидно, чи ця база на Supabase.
З вихідного коду також стало відомо, що існує адмінська сторінка, доступна лише для одного акаунта – розробника. На щастя, ID цього акаунта був захардкоджений. Завдяки доступу до Supabase вдалося створити magic link, який дозволяв увійти на будь-який акаунт без пароля. Після цього залишалося лише видати собі Pro-план через адмінську панель.
Висновок: Завжди перевіряйте, які дані ви відкриваєте публічно, щоб випадково не дати доступ до своїх ресурсів.
З етичних причин посилання не публікую – збираюсь повідомити розробника про вразливість. Але сподіваюсь, що PRO-акаунт мені залишать, бо створювати вікторини мені сподобалось.
То шо, я тепер хакер, получається, чи шо?
#localhost