You are currently viewing Maiar hack miatt állították le az Elrond Maiar DEX váltóját

Maiar hack miatt állították le az Elrond Maiar DEX váltóját

Az Elrond (EGLD) vezérigazgatója, Beniamin Mincu június 5-én Twitter-üzenetet írt a Maiar DEX-en történt gyanús tevékenységekről.

Kivizsgáljuk a szokatlan tranzakciókat melyek a Maiar DEX váltón jelentek meg

Itt vagyunk, teljes készültésgben.

Frissítünk amint az elemzéseket tisztán látjuk.

Mi történt?

A WEGLD hack Arda magyarázsatában

Június 5-én 22:04 UTC-kor egy hacker 1650000 EGLD-t lopott el.

Gratulálunk az Elrond csapatának, amely megállás nélkül dolgozott és sikeresen visszaszerezte az összes pénzt.

De honnan lopta el a hacker az EGLD-t? És hogyan?

Itt az ideje a teljes magyarázatnak⬇️

A hack összefoglalása

A hacker az okos szerződés be/kicsomagoló metódusát kihasználva EGLD utalásokat csomagolt be WEGLD-ba. Ezt a “wrap_egld_callback” nevű metódust 3 részletben utalta kiami a becsomagolt Elrond(WEGLD) okosszerződéséből származott.

Összefoglalva, a hacker két szerződést kötött (SC A és SC B):

-Este 22:01-kor a hacker meghívja az SC A-t. SC A meghívja a WEGLD SC-t, amely néhány EGLD-t becsomagol, és visszahívja az SC A „wrap_egld_callback” metódusát.

-Este 22:05-kor meghívja az SC B „visszavonási” módszerét, és 800k EGLD-t kap.

A hack részletes lépései

technikai leírás

Este 10 órakkor 3 számláról 3 okosszerződés vont ki nagyobb mennyiséű EGLD-ot ami úgy tűnt, hogy a semmiből érkezett.

450k EGLD on shard 0 (10:04pm)
800k EGLD on shard 1 (10:05pm)
400k EGLD on shard 2 (10:06pm)

A fenti tx-ben azt látjuk, hogy a hacker úgy kapott EGLD-t, hogy “meghívta” az SC (Smart Contract) “visszavonás” metódusát.

Letöltöttük ennek az SC-nek a bináris kódját az Explorerből, és átkonvertáltuk egy könnyebben érthető formátumba (WAT formátumba).

Megtaláltuk a “visszavonás” metódust, de ami még fontosabb, a “wrap_egld_callback” nevű metódust.

Ez arra utal, hogy a hatalmas mennyiségű ellopott EGLD a WEGLD SC-től származott (ami az EGLD csomagolásáért/kicsomagolásáért felelős).

Az exploreren 22 óra körül a WEGLD SC-n átmenő gyanús tx-ekre vadásztunk.

Találtunk egyet, ahol a WEGLD SC egy új SC módszerét nevezte el. És találd ki… ennek a módszernek a neve “wrap_egld_callback”.

Szóval megnéztük ennek a tx-nek a részleteit.

Ebben a tx-ben az új SC kis mennyiségű EGLD-t küld a WEGLD SC “wrapEgld” metódusának. Ez a metódus visszaküldi a WEGLD-t az új SC “wrap_egld_callback” metódusának.

Valójában a “wrapEgld” meghívásakor megadhatjuk, hogy a WEGLD SC milyen metódussal hívja vissza.

Összefoglalva, a hacker két szerződést kötött (SC A és SC B):

-Este 22:01-kor a hacker meghívja az SC A-t. SC A meghívja a WEGLD SC-t, amely néhány EGLD-t becsomagol, és visszahívja az SC A „wrap_egld_callback” metódusát.

-Este 22:05-kor meghívja az SC B „visszavonási” módszerét, és 800k EGLD-t kap.

A „wrap_egld_callback” metódus kódját megvizsgálva 2 érdekességet fedeztünk fel (vö. képernyőkép):

  • Úgy tűnik, hogy a „800000”-es összeg határozza meg az átutalandó EGLD összegét.
  • Ezután a „managedExecuteOnDestContextByCaller” metódus átviszi az EGLD-t a WEGLD SC-ből.

A találgatások igazolására két adattárat készítettünk:

  • az egyiket a hacker reprodukálására a hacker bináris kódjával,
  • a másikat, hogy reprodukálja a hacket a saját Rust SC-val.

Mindkét esetben sikerült elérni, hogy a WEGLD SC 800k EGLD-t küldjön egy általunk választott címre.

A “managedExecuteOnDestContextByCaller” volt a feltörés kulcsfontosságú összetevője.

Ahogy a neve is sugallja, amikor a WEGLD SC meghívja az SC A-t, lehetővé teszi az SC A számára, hogy token átvitelt hajtson végre a hívó WEGLD SC kontextusában.

Így az SC A képes volt arra, hogy a WEGLD SC 800k EGLD-t küldjön SC B-nek.

Gratulálunk, ha végig olvastad: megértehetted a hack részleteit!

Ha úgy tűnt, hogy a hacker által visszavont EGLD a semmiből jött, az azért van, mert a „managedExecuteOnDestContextByCaller” használatával kerültek átvitelre, amelyet az Explorer nem jelenített meg.

Teljes twitter hozzászóláslánc (angolul)

Leave a Reply