TGViewer
Пингискок Пингискок @rmrf_0 · 618 subscribers
Post #16 491
GraphQL Injection через строковую интерполяцию

Проект - bridge для перевода токенов между L1 и L2. Фронтенд обращается к The Graph для чтения данных о трансферах. Исходный код нашли через source maps, оставленные в production (2159 файлов).

Что в коде

Файл queries.ts содержал функции с прямой подстановкой пользовательского ввода в тело GraphQL-запроса через template literals:

const query = `
{
transferSents(
where: {
recipient: "${recipient}",
transactionHash: "${txHash}",
}
) { id transferId amount ... }
}
`


Точно как SQL Injection, только для GraphQL.

Как работает

Нормальный подход - переменные передаются отдельно от запроса, и парсер никогда не интерпретирует их как синтаксис. А тут строка склеивается с данными напрямую.

Если атакующий подставит вместо адреса:
"} ) { id } transferSents(where: { amount_gt: "0

Он закрывает оригинальный блок where и вставляет свой запрос с другими условиями.

Что можно извлечь

Subgraph содержит данные обо всех трансферах всех пользователей: адреса, суммы, цепочки, хеши, статусы, fee, bonder. Без инъекции видишь только свои трансферы. С инъекцией - чужие.

Почему .toLowerCase() не спасает

Это нормализация адресов, не экранирование. Символы ", }, {, (, ) не затрагиваются.

Три уязвимых функции

fetchTransferSents - recipient, txHash
fetchTransferFromL1Completeds - recipient, amount, deadline
fetchWithdrawalBondedsByTransferId - transferId

Запросы уходят из браузера напрямую (нет backend-прокси). Атакующий перехватывает запрос через DevTools/proxy и подменяет параметры. Или подставляет вредоносные значения через URL-параметры.

Да, веб3 - это будущее, кричали несколько лет назад. Но тут еще веб 2 не защищен, а вы уже доверяете ему бабками управлять. Веб3 дырявая шляпа и самые интересные баги этого канала скорее всего будут оттуда.
  • 🔥 7
  • ⚡ 1
  • 👍 1
  • 🗿 1
More from @rmrf_0
  1. May 1, 2026Белый хакер: “может, всё-таки responsibly disclose?” Google: давай! memory corruption - 50…
  2. Apr 13, 2026DeFi-протоколы не взламывают. Они просто не закрыты. Омар рассказал кейс про то как их AI-…
  3. Apr 8, 2026Claude Mythos.. .. еще не выпущен, но опубликовали исследование про него: https://red.anth…
  4. Apr 6, 2026Как КНДР полгода играла в квант-фонд и вынесла $285M из Drift Drift - крупнейший перпетуал…
  5. Apr 3, 2026Мое лицо когда закрыл серию статей (думайте, какое именно лицо мое) Закрыл, да не полность…
  6. Mar 28, 2026Продолжение серии про JWT - шесть новых статей Криптография, шифрование, библиотеки, OAuth…
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 →