تعرضت Poolz لهجوم فائق على الحسابات، بخسارة تقارب 66.5 ألف دولار أمريكي
في الآونة الأخيرة، تعرض مشروع Poolz على شبكات Ethereum وBinance وPolygon لهجوم من قراصنة، مما أدى إلى خسائر كبيرة. وفقًا للبيانات على السلسلة، وقع الهجوم في 15 مارس 2023، وشمل مجموعة متنوعة من الرموز، بإجمالي قيمة تقارب 665000 دولار.
استغل المهاجمون ثغرة تجاوز السعة الرياضية في عقد Poolz لتنفيذ هذا الهجوم. تكمن المشكلة الرئيسية في دالة CreateMassPools، التي تسمح للمستخدمين بإنشاء أحواض السيولة بكميات كبيرة وتوفير السيولة الأولية. من خلال معلمات إدخال مصممة بعناية، جعل المهاجمون دالة getArraySum تنتج تجاوزًا، مما أدى إلى تسجيل قيمة ضخمة في النظام عند إدخال رمز واحد فقط.
تسلسل الهجوم كالتالي:
قام المهاجم أولاً بتحويل بعض رموز MNZ من خلال تبادل لامركزي.
ثم استدعاء دالة CreateMassPools، باستخدام ثغرة الدالة getArraySum. هذه الدالة عند جمع مصفوفة _StartAmount المدخلة من المستخدم، بسبب overflow، تعيد 1، بينما القيمة المسجلة الفعلية هي رقم أكبر بكثير من ذلك.
أخيرًا، قام المهاجم باستدعاء دالة السحب لسحب الأموال، وأكمل عملية الهجوم بالكامل.
تُبرز هذه الحادثة مرة أخرى خطورة مشكلة تجاوز العدد في العقود الذكية. لمنع حدوث مشاكل مماثلة، يجب على المطورين التفكير في استخدام إصدارات أحدث من مُجمع Solidity، حيث تقوم هذه الإصدارات بإجراء فحوصات تجاوز تلقائيًا أثناء عملية التجميع. بالنسبة للمشاريع التي تستخدم إصدارات أقدم من Solidity، يمكن استخدام مكتبات الأمان التابعة لجهات خارجية لحل مشكلة تجاوز الأعداد.
تُذكرنا هذه الهجمة بضرورة توخي الحذر عند التعامل مع العقود الذكية التي تتطلب حسابات كثيفة، لضمان معالجة جميع حالات الحدود المحتملة بشكل صحيح. في الوقت نفسه، فإن إجراء تدقيق أمني منتظم وبرامج مكافآت الثغرات تُعتبر أيضًا من التدابير الفعالة لضمان أمان المشروع.
شاهد النسخة الأصلية
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.
تسجيلات الإعجاب 11
أعجبني
11
6
مشاركة
تعليق
0/400
TokenGuru
· منذ 22 س
آه، المشروع القديم أيضاً فشل. أوقف تحويل الأموال بسرعة. لا تشحن العملة ادخل مركز.
تعرضت Poolz لهجوم تجاوز حسابي بخسارة قدرها 665000 دولار أمريكي
تعرضت Poolz لهجوم فائق على الحسابات، بخسارة تقارب 66.5 ألف دولار أمريكي
في الآونة الأخيرة، تعرض مشروع Poolz على شبكات Ethereum وBinance وPolygon لهجوم من قراصنة، مما أدى إلى خسائر كبيرة. وفقًا للبيانات على السلسلة، وقع الهجوم في 15 مارس 2023، وشمل مجموعة متنوعة من الرموز، بإجمالي قيمة تقارب 665000 دولار.
استغل المهاجمون ثغرة تجاوز السعة الرياضية في عقد Poolz لتنفيذ هذا الهجوم. تكمن المشكلة الرئيسية في دالة CreateMassPools، التي تسمح للمستخدمين بإنشاء أحواض السيولة بكميات كبيرة وتوفير السيولة الأولية. من خلال معلمات إدخال مصممة بعناية، جعل المهاجمون دالة getArraySum تنتج تجاوزًا، مما أدى إلى تسجيل قيمة ضخمة في النظام عند إدخال رمز واحد فقط.
تسلسل الهجوم كالتالي:
قام المهاجم أولاً بتحويل بعض رموز MNZ من خلال تبادل لامركزي.
ثم استدعاء دالة CreateMassPools، باستخدام ثغرة الدالة getArraySum. هذه الدالة عند جمع مصفوفة _StartAmount المدخلة من المستخدم، بسبب overflow، تعيد 1، بينما القيمة المسجلة الفعلية هي رقم أكبر بكثير من ذلك.
أخيرًا، قام المهاجم باستدعاء دالة السحب لسحب الأموال، وأكمل عملية الهجوم بالكامل.
تُبرز هذه الحادثة مرة أخرى خطورة مشكلة تجاوز العدد في العقود الذكية. لمنع حدوث مشاكل مماثلة، يجب على المطورين التفكير في استخدام إصدارات أحدث من مُجمع Solidity، حيث تقوم هذه الإصدارات بإجراء فحوصات تجاوز تلقائيًا أثناء عملية التجميع. بالنسبة للمشاريع التي تستخدم إصدارات أقدم من Solidity، يمكن استخدام مكتبات الأمان التابعة لجهات خارجية لحل مشكلة تجاوز الأعداد.
تُذكرنا هذه الهجمة بضرورة توخي الحذر عند التعامل مع العقود الذكية التي تتطلب حسابات كثيفة، لضمان معالجة جميع حالات الحدود المحتملة بشكل صحيح. في الوقت نفسه، فإن إجراء تدقيق أمني منتظم وبرامج مكافآت الثغرات تُعتبر أيضًا من التدابير الفعالة لضمان أمان المشروع.