18 Temmuz 2023'te Pekin saatiyle Ocean BNO ani bir kredi saldırısına uğradı ve saldırgan yaklaşık 500.000 ABD doları kar elde etti.
SharkTeam ilk kez bu olayın teknik analizini yaptı ve güvenlik önlemlerini özetledi, takip projelerinin bundan ders çıkarabileceğini ve blockchain endüstrisi için ortaklaşa bir güvenlik savunma hattı oluşturabileceğini umdu.
(1) Saldırgan (0xa6566574), pankekSwap flaş kredisi aracılığıyla 286.449 BNO ödünç aldı.
(2) Ardından, iki nft taahhüt etmek için saldırıya uğrayan sözleşmenin (0xdCA50344) stakeNft işlevini çağırın.
(3) Ardından, 277856 BNO madeni para taahhüt etmek için saldırıya uğrayan sözleşmenin (0xdCA50344) rehin işlevini çağırın.
(4) Tüm BNO'ları çıkarmak için saldırıya uğrayan sözleşmenin (0xdCA50344) EmergencyWithdraw işlevini çağırın.
(5) Ardından, saldırıya uğrayan sözleşmenin (0xdCA50344) unstakeNft işlevini çağırın, taahhüt edilen iki nft'yi alın ve ek BNO belirteçleri alın.
(6) Sürekli olarak ek BNO belirteçleri elde etmek için yukarıdaki işlemi tekrarlayın
(7) Ön krediyi geri ödedikten sonra, tüm BNO jetonlarını 50,5 W BUSD ile değiştirin ve piyasadan kârla çıkın.
İkincisi, güvenlik açığı analizi
Bu saldırının temel nedeni şudur: Saldırıya uğrayan sözleşmede (0xdCA50344) ödül hesaplama mekanizmasında ve acil durum geri çekme işlevinin etkileşim mantığında bir sorun vardır ve bu, kullanıcının anaparayı geri çektikten sonra ek bir ödül jetonu almasına neden olur.
Sözleşme, belirteçlerin acil olarak çekilmesi için acil Para Çekme işlevini sağlar ve saldırganın tüm hisseli toplam ipotek ve ödül Borç toplam borcunu siler, ancak saldırganın nftAddtion değişkenini temizlemez ve nftAddition değişkeni ayrıca allstake değişkeni aracılığıyla hesaplanır.
unstakeNft işlevinde, kullanıcının mevcut ödülü yine de hesaplanacak ve nftAddition değişkeni sıfıra sıfırlanmazsa, pendingFit işlevi yine de ek bir BNO ödül değeri döndürerek saldırganın ek BNO belirteçleri elde etmesine neden olacaktır.
Üçüncüsü, Güvenlik Önerileri
Bu saldırıya karşı geliştirme sürecinde aşağıdaki önlemleri almalıyız:
(1) Ödülleri hesaplarken, kullanıcının anaparayı geri çekip çekmediğini doğrulayın.
(2) Proje çevrimiçi hale getirilmeden önce, üçüncü taraf bir profesyonel denetim ekibinden teknik yardım alınması gerekir.
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
BNO saldırı olayının ilke analizi
18 Temmuz 2023'te Pekin saatiyle Ocean BNO ani bir kredi saldırısına uğradı ve saldırgan yaklaşık 500.000 ABD doları kar elde etti.
SharkTeam ilk kez bu olayın teknik analizini yaptı ve güvenlik önlemlerini özetledi, takip projelerinin bundan ders çıkarabileceğini ve blockchain endüstrisi için ortaklaşa bir güvenlik savunma hattı oluşturabileceğini umdu.
1. Olay Analizi
Saldırgan adresi:
0xa6566574edc60d7b2adbacedb71d5142cf2677fb
Saldırı sözleşmesi:
0xd138b9a58d3e5f4be1cd5ec90b66310e241c13cd
Saldırıya uğrayan sözleşme:
0xdCA503449899d5649D32175a255A8835A03E4006
Saldırı işlemleri:
0x33fed54de490797b99b2fc7a159e43af57e9e6bdefc2c2d052dc814cfe0096b9
Saldırı süreci:
(1) Saldırgan (0xa6566574), pankekSwap flaş kredisi aracılığıyla 286.449 BNO ödünç aldı.
(2) Ardından, iki nft taahhüt etmek için saldırıya uğrayan sözleşmenin (0xdCA50344) stakeNft işlevini çağırın.
(3) Ardından, 277856 BNO madeni para taahhüt etmek için saldırıya uğrayan sözleşmenin (0xdCA50344) rehin işlevini çağırın.
(4) Tüm BNO'ları çıkarmak için saldırıya uğrayan sözleşmenin (0xdCA50344) EmergencyWithdraw işlevini çağırın.
(5) Ardından, saldırıya uğrayan sözleşmenin (0xdCA50344) unstakeNft işlevini çağırın, taahhüt edilen iki nft'yi alın ve ek BNO belirteçleri alın.
(6) Sürekli olarak ek BNO belirteçleri elde etmek için yukarıdaki işlemi tekrarlayın
(7) Ön krediyi geri ödedikten sonra, tüm BNO jetonlarını 50,5 W BUSD ile değiştirin ve piyasadan kârla çıkın.
İkincisi, güvenlik açığı analizi
Bu saldırının temel nedeni şudur: Saldırıya uğrayan sözleşmede (0xdCA50344) ödül hesaplama mekanizmasında ve acil durum geri çekme işlevinin etkileşim mantığında bir sorun vardır ve bu, kullanıcının anaparayı geri çektikten sonra ek bir ödül jetonu almasına neden olur.
Sözleşme, belirteçlerin acil olarak çekilmesi için acil Para Çekme işlevini sağlar ve saldırganın tüm hisseli toplam ipotek ve ödül Borç toplam borcunu siler, ancak saldırganın nftAddtion değişkenini temizlemez ve nftAddition değişkeni ayrıca allstake değişkeni aracılığıyla hesaplanır.
unstakeNft işlevinde, kullanıcının mevcut ödülü yine de hesaplanacak ve nftAddition değişkeni sıfıra sıfırlanmazsa, pendingFit işlevi yine de ek bir BNO ödül değeri döndürerek saldırganın ek BNO belirteçleri elde etmesine neden olacaktır.
Üçüncüsü, Güvenlik Önerileri
Bu saldırıya karşı geliştirme sürecinde aşağıdaki önlemleri almalıyız:
(1) Ödülleri hesaplarken, kullanıcının anaparayı geri çekip çekmediğini doğrulayın.
(2) Proje çevrimiçi hale getirilmeden önce, üçüncü taraf bir profesyonel denetim ekibinden teknik yardım alınması gerekir.