ABI Smuggling от Damn Vulnerable DeFi
Ну, раз разобрали новую задачу от Ethernaut, то можно попробовать посмотреть и на новую задачу от DVD.
Кстати, тем кто хотел поупражняться со взломом DeFi, то вы можете заново перепройти DVD, так как они выпустили обновления и переписали некоторые контракты.
Но вернемся к нашей задаче. Вот ссылка на нее.
Сразу скажу, что я не смог решить ее сам, так как не понимал некоторых моментов. В оригинале прохождение взято из этой статьи.
Вообще, данное задание уже для уровня хорошего миддла или даже сеньора. Вам нужно знать не только, как хранится calldata и работает abi.encodePacked, но и понимать, что ее можно модифицировать.
Статья обязательна для изучения всем аудиторам, так как уже были реальные взломы, в которых использовались данные приемы.
Было бы очень долго переводить всю статью и инфографику, поэтому тут обозначу основные моменты.
Самое главное, если не помните, как хранится calldata, то изучите эту тему внимательно. Обратите особое внимание на хранение динамических типов: массивов и байтов. Напомню, сначала идет слот смещения, затем длина/количество calldata, а уже после - само значение calldata.
И вот модифицировав calldata так, чтобы он указывал на исполнение другой функции внутри себя, вы сможете решить задачу.
Она достаточно сложная, и, вероятнее всего, вам, как и мне, нужно будет просидеть час-два, перевести все дословно и понять суть работы с памятью calldata, чтобы разобраться, в чем там дело.
Могу с уверенность сказать, что это стоит своего времени. Статья очень подробная!
#dvd
Post #669
325
- 👍 1