بواسطة: Sissice
الخلفية
في 24 أبريل 2024، وفقًا لمعلومات استخباراتية من فريق SlowMist الأمني، تعرض مشروع YIEDL على سلسلة BSC للهجوم، وحقق المهاجم ربحًا قدره 300000 دولار أمريكي تقريبًا. قام فريق SlowMist الأمني بتحليل حادثة الهجوم وشارك النتائج على النحو التالي:
(https://twitter.com/SlowMist_Team/status/1782962346039898473)
معلومات ذات صلة
عنوان المهاجم:
0x322696471792440499b1979e0a440491e870667a< /p >
عنوان العقد الذي تم الهجوم عليه:
0x4edda16ab4f4cc46b160abc42763ba63885862a4
معاملة الهجوم الجزئي:
0x49ca5e188c538b4f2efb45552f13309cc0dd1f3592eee54decfc9da54620c2ec
0x3629ad588ac120163792e92b6c4 3ب d4bdc5bf35cac66eb7f3a0267df93abc849
< p style="text-align: left;">0x0a89b8670c40b4067b9522a5933c3bf8c44c968103aa642b04c65d49ad9e6457
0x5e468cba495e5f6165418fb9d87d8243 09c54261055425f33f588dd3b3abbcea
0x8710034dadecfc8c26f651c612f613fffdece6e2f9957b9ec8ab843218168c1d
0x9da398ed274c8cfa774b36003fa8c930d3430d0fc5889b5008830fd6463f68a9
0x2e3d4332f66a334e0170187011ed673 dc222f95bf4443b618e08f8052437ef7a
0x5a15fdc57c35f2305aaa0bb95b109ad412b17406d737d137190fe5867393339d
0x8ef3765665cd849cdf9132ab37caf6aa0f891e1f7d9f 4 18f86a6ab6ea38b6f5b
0xa9fa04b033afbed2218679aea92e9429a5f7839d0b4c65358ebf9ba20efcd021
جوهر الهجوم
جوهر الهجوم في هذه الحادثة هو الفشل في استخدام عقد للتعامل مع استدعاء وظيفة الاسترداد بشكل مناسب. هذه المعلمة هي البيانات الأساسية التي تتحكم في تبادل الأصول وعادة ما تحتوي على تعليمات تداول محددة أو معلومات توجيه. يحقق المهاجم نقلًا غير مصرح به للأصول عن طريق إنشاء هذه المعلمة الخارجية بشكل ضار.
تحليل المعاملات
يستدعي المهاجم وظيفة الاسترداد المتعددة مرات، تقدم بطلب لاسترداد أصول بقيمة 0. هذا السلوك في حد ذاته يبدو غير ضار، لأنه عندما تكون كمية الاسترداد صفر، فإنه عادةً لا يؤدي إلى أي تدفق فعلي للأموال:
لكن باتباع وظيفة الاسترداد، يمكننا أن نجد ذلك ستجتاز الوظيفة قائمة الأصول المسموح بها بموجب العقد، وعندما لا يكون الأصل الحالي هو الأصل الذي يريد المستخدم استلامه، سيتم تحليله وفقًا لمعلمة dataList الواردة وسيتم استدعاء الوظيفة المقابلة في جهاز التوجيه 1 بوصة خارجيًا لتنفيذ عملية تبادل الأصول.
نظرًا لأن قائمة البيانات التي تم تمريرها هنا لم يتم فحصها والتحقق منها، يمكن للمهاجم إنشاء قيمة ضارة لتنفيذ وظيفة unoswapTo الخاصة بعقد جهاز التوجيه 1 بوصة لتنفيذ أي عملية تبادل رمزية يمكن التحكم فيها.
ونتيجة لذلك، تم استبدال رمز WBNB-ADA في عقد Yiedl BULL مقابل BNB على عنوان المهاجم.
بهذه الطريقة، يمكن للمهاجم تشغيل عملية تبادل الرموز المميزة التي تتحكم فيها معلمة dataList دون امتلاك أي أسهم استرداد فعلية. وبدون استهلاك أصوله الخاصة، يمكن للمهاجم تعبئة أموال العقد عدة مرات وترك السوق محققًا ربحًا. .
الملخص
جوهر هذا الهجوم هو أن لا يمكن لهذه الوظيفة التحقق بشكل كامل من معلمة dataList التي أدخلها المستخدم، مما يسمح للمهاجمين بإنشاء بيانات خارجية ضارة واستخدام 1 بوصة لسرقة الرموز المميزة في العقد. يوصي فريق SlowMist الأمني بأن تقوم أطراف المشروع بتنفيذ آلية صارمة للتحقق من المعلمات أثناء التطوير، خاصة عندما يتعلق الأمر بتمويل العمليات في العقد، لضمان امتثال جميع المكالمات الخارجية للمواصفات السلوكية المتوقعة، وإجراء تدقيق أمني شامل لعناصر العقد. المنطق لمنع وقوع حوادث مماثلة مرة أخرى. ص>