
Расширение Burp Suite для декодирования вызовов Ethereum JSON-RPC и взаимодействий со смарт-контрактами, поддерживающее несколько сетей и автоматическое получение ABI.
Web3 Decoder — это расширение для Burp Suite, предназначенное для анализа операций с блокчейном и взаимодействий со смарт-контрактами. Оно обрабатывает JSON-RPC вызовы к Ethereum и совместимым сетям (включая Polygon, Arbitrum, BSC и другие)
Большинство поддерживаемых блокчейн-эксплореров, таких как etherscan.io, требуют API-ключ для выполнения более чем 1 запроса каждые 5 секунд.
Чтобы добавить свои API-ключи, у вас есть 2 варианта:
Расширение кэширует загруженные ABI из блокчейн-эксплореров, таких как etherscan,
в папке с именем .abi_caches в формате JSON. Вы можете просто добавить новый файл в эту папку,
следующего соглашения об именовании:
{chain_id}_{contract_address.lower()}.abi
Например:
# Ethereum Mainnet (chain ID 1), контракт 0xfbdca68601f835b27790d98bbb8ec7f05fdeaa9b
1_0xfbdca68601f835b27790d98bbb8ec7f05fdeaa9b.abi
# Polygon (chain id 137), контракт 0x447646e84498552e62ecf097cc305eabfff09308
137_0x447646e84498552e62ecf097cc305eabfff09308.abi
Эта документация применима к Windows и Linux; пользователи macOS могут использовать DMG-файл.
Проверьте наличие Git и Python в вашей системе.
https://git-scm.com/install/windows
https://www.python.org/ftp/python/3.13.12/python-3.13.12-amd64.exe
Запустите сеанс терминала от имени администратора.
Это расширение требует библиотеки python3, такие как web3.py, которые, к сожалению, недоступны для python 2.7 для непосредственного использования с Jython 2.7. В качестве «хака» основная функциональность написана в библиотеке python 3, которая выполняется расширением через виртуальное окружение python (говоря о грязных решениях...)
Я создал предкомпилированные бинарные файлы используемой библиотеки python3 для Linux, Windows и Mac OSX. Расширение будет использовать эти бинарные файлы, если не сможет выполнить библиотеку. Для лучшей производительности или разработки вы можете создать virtualenv и установить следующим образом:
cd "web3-decoder"
virtualenv -p python3 venv
source venv/bin/activate
pip install web3 py-evm
Расширение будет вызывать библиотеку, используя созданный virtualenv.
После создания virtualenv вы можете добавить python-расширение, выбрав файл burp_web3_decoder.py на вкладке Extender в Burp Suite
eth_calleth_sendRawTransaction (и их внутренних функций)eth_calleth_calleth_call, так и в eth_sendRawTransactionВсе поддерживаемые сети можно найти в файле chains.json. Это сети, у которых есть блокчейн-эксплорер с теми же API, что и у etherscan. Если вы хотите добавить больше блокчейн-эксплореров, добавьте их в файл chains.json, протестируйте и сделайте pull request!
Дополнительные примеры, включая proxy и multicall вызовы, см. в EXAMPLES.md
eth_call:
Исходный:

Декодированный:

eth_sendRawTransaction (тест Uniswap v2):
{
"method": "eth_sendRawTransaction",
"params": [
"0x02f9015b820539808459682f00850df8475800830493e0947a250d5630b4cf539739df2c5dacb4c659f2488d880de0b6b3a7640000b8e47ff36ab500000000000000000000000000000000000000000000009e0950598867d8000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002105eaa660ff62b14a5e093fc348e13ab63af2e600000000000000000000000000000000000000000000000000000000623b16570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006b175474e89094c44da98b954eedeac495271d0fc001a005cfdf9ff11dea2d3e8781cb6ba140ae6e86a0922bfa75938b6f2456f513e24ca057f02b3f7125edb59e22651d503bc296153860e3843f9d495ad21d898c8e20c3"
],
"id": 4700418092893,
"jsonrpc": "2.0"
}
Декодированный: