تعرض OrionProtocol لهجوم إعادة دخول وسرقة 2.9 مليون دولار

robot
إنشاء الملخص قيد التقدم

ثغرة في عقد OrionProtocol تتسبب في خسارة 2.9 مليون دولار

في 2 فبراير 2023، تعرضت عقود OrionProtocol على شبكة الإيثيريوم وسلسلة Binance الذكية لهجوم إعادة دخول، مما أسفر عن خسارة تقدر بحوالي 2.9 مليون دولار. تشمل الخسائر الدقيقة 2,844,766 USDT على شبكة الإيثيريوم و191,606 BUSD على سلسلة Binance الذكية.

تحليل عملية الهجوم

قام المهاجم أولاً بنشر عقد توكن مخصص وأجرى عمليات التحويل والتفويض ذات الصلة. بعد ذلك، اقترض المهاجم الأموال من خلال طريقة swap في بعض DEX واستدعى طريقة swapThroughOrionPool من OrionProtocol لتبادل الرموز. تتضمن مسار التبادل عنوان عقد التوكن الذي أنشأه المهاجم.

عند تنفيذ طريقة swapThroughOrionPool، وبسبب وجود وظيفة الاستدعاء في عقد توكن المهاجم، أصبح من الممكن استدعاء طريقة depositAsset بشكل متكرر أثناء عملية التحويل. أدى ذلك إلى احتساب مبلغ الإيداع بشكل متكرر، وفي النهاية حصل المهاجم على أرباح زائدة من خلال عملية السحب.

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201

اتجاه تدفق المال

جاءت الأموال الأولية للمهاجم من محفظة ساخنة على منصة تداول معينة. من بين 1,651 إيثريوم التي حصل عليها المهاجم، لا يزال 657.5 إيثريوم في عنوان محفظة المهاجم، وقد تم نقل الباقي عبر خدمة خلط.

! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(

جوهر الثغرة

تتمثل المشكلة في دالة doSwapThroughOrionPool. تقوم هذه الدالة عند تنفيذ _doSwapTokens بإجراء عملية التحويل أولاً، ثم تقوم بتحديث متغير curBalance. استغل المهاجم دالة transfer الخاصة بالرمز المخصص لتفعيل رد نداء دالة depositAsset، مما أدى إلى تحديث curBalance بشكل خاطئ. وهذا سمح للمهاجم بعد سداد القرض الفوري بسحب أموال زائدة من خلال دالة withdraw.

! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-24819b5154419e86ea523a25a9101f67.webp(

! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-7c4bde9d6a35da4304844a3bbb934fae.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-7239f8886fe83c1da8b1b42545185811.webp(

! [تحليل هجوم إعادة الدخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-e5042932f0e1b7fa96e3f6e749231957.webp(

![تحليل هجوم إعادة الدخول بروتوكول أوريون مع PoC])https://img-cdn.gateio.im/webp-social/moments-4bd31735de09c63c490488e887118038.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-cd401091e63ab21864f39cd650014b97.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-e010d0f0c02fb8bbc648f755b0ac464c.webp(

! [تحليل هجوم إعادة الدخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-f3c5f9416cfb9b7b791d86eeffb933be.webp(

نصائح أمان

بالنسبة للعقود الذكية التي تحتوي على وظيفة تبادل الرموز، يحتاج المطورون إلى مراعاة النقاط التالية:

  1. النظر في الحالات غير المتوقعة التي قد تنجم عن أنواع متعددة من الرموز ومسارات الصرف.
  2. اتباع نمط الترميز "التحقق - التأثيرات - التفاعلات" (Checks-Effects-Interactions) أي التحقق من الحالة أولاً، ثم تحديث حالة العقد، وأخيراً التفاعل مع العقود الخارجية.
  3. تحديث المتغيرات الأساسية قبل إجراء الاستدعاءات الخارجية.
  4. تنفيذ آليات الأمان مثل قفل إعادة الدخول.
  5. إجراء تدقيق أمان شامل للعقد.

من خلال اتخاذ هذه التدابير، يمكن تقليل مخاطر هجمات العقود الذكية بشكل كبير، وزيادة أمان واستقرار المشروع.

TOKEN4.95%
ETH2.6%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 1
  • مشاركة
تعليق
0/400
BoredStakervip
· منذ 16 س
هجوم إعادة الدخول مرة أخرى
شاهد النسخة الأصليةرد0
  • تثبيت