Melihat bos onekey mempertahankan haknya dan Resupply, kehilangan beberapa aset M, dia menyesalkan bahwa Defi benar-benar terlalu rapuh. Setelah melihat-lihat, saya tampaknya tidak terlalu jelas tentang bagaimana peretas menyerang, jadi saya melakukan riset sendiri dan membagikannya dengan Anda:
Protagonis cerita adalah ResupplyPair, pengguna dapat meminjam dan meminjam dengan mempertaruhkan aset, dan pengubah isSolvent dalam kontrak bertanggung jawab untuk memeriksa apakah pengguna memenuhi syarat untuk meminjamkan aset yang diminta, logika kode spesifiknya adalah sebagai berikut:
Anda dapat melihat perhitungan LTV pada baris 282, jika kita memiliki cara untuk mengatur _exchangeRate ke 0, maka bukankah cek itu selalu benar? Lanjutkan membaca kodenya:
Anda dapat melihat bahwa variabel untuk nilai ini berasal dari panggilan ke oracle getPrices, dan merupakan penyebutnya, dengan kata lain, kita perlu membuat harga agunan sangat besar.
Membaca kode oracle, Anda dapat melihat bahwa getPrices hanyalah lapisan penerusan, yang sebenarnya memanggil antarmuka convetToAssets dari aset yang dipertaruhkan (yaitu, brankas). Lanjutkan membaca kodenya:
Anda dapat melihat bahwa hasil ini terdiri dari operasi matematika yang sangat kompleks, di sini peretas adalah dengan memperkuat molekul, lebih jauh total_assets, untuk menyelesaikan serangan, lihat _total_assets implementasi fungsi dapat ditemukan:
Nilai ini terkait dengan borrowed_token yang dipegang oleh kontrak pengontrol brankas ini, yaitu crvUSD.
Analisisnya sebenarnya jelas di sini, ResupplyPair dibuat dengan brankas kosong, dan peretas mentransfer sejumlah borrowed_token ke kontrak pengontrol brankas, dan akhirnya membuat _exchangeRate kembali ke nol, sehingga nilai aset yang dijaminkannya diperkuat tanpa batas, dan dia meminjamkan hingga 10 juta reUSD dengan biaya yang sangat kecil.
Perdagangan Serangan:
Alamat Kontrak ResupplyPair:
Alamat kontrak pengontrol perbendaharaan:
Alamat Kontrak Perbendaharaan:
Alamat kontrak Oracle:
Tampilkan Versi Asli



68,36 rb
307
Konten pada halaman ini disediakan oleh pihak ketiga. Kecuali dinyatakan lain, OKX bukanlah penulis artikel yang dikutip dan tidak mengklaim hak cipta atas materi tersebut. Konten ini disediakan hanya untuk tujuan informasi dan tidak mewakili pandangan OKX. Konten ini tidak dimaksudkan sebagai dukungan dalam bentuk apa pun dan tidak dapat dianggap sebagai nasihat investasi atau ajakan untuk membeli atau menjual aset digital. Sejauh AI generatif digunakan untuk menyediakan ringkasan atau informasi lainnya, konten yang dihasilkan AI mungkin tidak akurat atau tidak konsisten. Silakan baca artikel yang terkait untuk informasi lebih lanjut. OKX tidak bertanggung jawab atas konten yang dihosting di situs pihak ketiga. Kepemilikan aset digital, termasuk stablecoin dan NFT, melibatkan risiko tinggi dan dapat berfluktuasi secara signifikan. Anda perlu mempertimbangkan dengan hati-hati apakah trading atau menyimpan aset digital sesuai untuk Anda dengan mempertimbangkan kondisi keuangan Anda.