You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 2019/ar/src/0xa8-injection.md
+41-36Lines changed: 41 additions & 36 deletions
Original file line number
Diff line number
Diff line change
@@ -3,53 +3,57 @@
3
3
4
4
<tabledir='rtl'align="right">
5
5
<tr>
6
-
<th>عوامل التهديد/ الاستغلال </th>
7
-
<th> نقاط الضعف </th>
8
-
<th> التأثير </th>
9
-
<tr>
10
-
<td> خصائص API : قابلية الاستغلال 3 </td>
11
-
<td> الانتشار : 2 قابلية الاكتشاف : 3 </td>
12
-
<td> التأثر التقني و تأثر الاعمال: 3 </td>
13
-
</tr>
14
-
<td>يقوم المهاجمون بإرسال بيانات ضارة من خلال واجهة برمجة التطبيقاتAPI وذلك بهدف حقنها وارسالها الى المفسر ومن صور طرق ادخال البيانات ( الادخال المباشر، التعليمات البرمجية، طرق ربط الخدمات ..الخ) متوقعين ارسالها الى المفسر. </td>
15
-
<td> تعد أساليب الحقن أسلوب شائع لدى المهاجمين وغالباً ما توجد استعلامات جاهزة لمختلف أنواع اللغات SQL,LDAP,NoSQL ,OS Command ,XML parsers. حيث انه من السهل الكشف عن الثغرات عند قراءة الشفرة المصدرية للاكواد البرمجية باستخدامات عمليات المسح الالية او اليدوية.</td>
16
-
<td> يمكن ان يؤدي الحقن الى الكشف عن المعلومات الغير مصرح بها او مسح وفقدان البيانات وفي بعض الأحيان قد يودي الى هجمات حجب الخدمة DOS، او اختراق الكامل للنظام.</td>
6
+
<th>عوامل التهديد/ الاستغلال</th>
7
+
<th>نقاط الضعف</th>
8
+
<th>التأثير</th>
17
9
</tr>
18
-
</table>
10
+
<tr>
11
+
<td>خصائص API : قابلية الاستغلال 3</td>
12
+
<td>الانتشار : 2 قابلية الاكتشاف : 3</td>
13
+
<td>التأثر التقني و تأثر الأعمال: 3</td>
14
+
</tr>
15
+
<tr>
16
+
<td>
17
+
يقوم المهاجمون بإرسال بيانات ضارة من خلال واجهة برمجة التطبيقات API وذلك من خلال حقنها بأي طريقة ممكنة ( مثل الإدخال المباشر و التعليمات البرمجية و طرق ربط الخدمات ...الخ) على أمل إرسالها إلى المفسر.</td>
18
+
<td>تعتبر ثغرات الحقن منشرة وشائعة في استعلامات SQL و LDAP و NoSQL وأوامر أنظمة التشغيل و XML parsers و ORM. واكتشاف هذه الثغرات يعتبر سهل عن مراجعة الشفرة المصدرية. بإمكان المهاجمين استخدام أدوات الفحص.</td>
19
+
<td>يمكن أن يؤدي الحقن إلى إفشاء المعلومات أو مسح وفقدان البيانات. كما يمكن أن يودي إلى حجب الخدمة DoS، أو اختراق كامل للنظام.</td>
20
+
</tr>
21
+
</table>
19
22
20
23
<h3dir='rtl'align='right'>هل أنا معرض لهذه الثغرة؟</h3>
21
24
22
-
<pdir='rtl'align='right'>قد يكون واجهة برمجة التطبيقات API معرض للاستغلال بمثل هذه الهجمات عندما :
25
+
<pdir='rtl'align='right'>قد تكون واجهة برمجة التطبيقات API معرضة للاستغلال بمثل هذه الهجمات عندما :
23
26
24
-
<pdir='rtl'align='right'>▪️ لا يتم تصفية البيانات او التحقق منها في حال كانت مقدمة من المستخدمين من طريق واجهة برمجة التطبيقات
27
+
<pdir='rtl'align='right'>▪️ لا يتم تصفية البيانات أو التحقق منها في حال كانت مقدمة من المستخدمين من طريق واجهة برمجة التطبيقات.
25
28
<pdir='rtl'align='right'>▪️ يتم استخدام البيانات بشكل مباشر مع SQL/NoSQL/LDAP queries, OS commands, XML parsers.
26
-
<pdir='rtl'align='right'>▪️ لا يتم التحقق من صحة البيانات الواردة من أنظمة خارجية مثل (الأنظمة المرتبطة بالخادم) او تصفيتها او التحقق منها من قبل واجهة برمجة التطبيقات API قبل عملية استخدامها
27
-
28
-
<h3dir='rtl'align='right'> امثلة على سيناريوهات الهجوم:</h3>
29
+
<pdir='rtl'align='right'>▪️ لا يتم التحقق من صحة البيانات الواردة من أنظمة خارجية مثل (الأنظمة المرتبطة بالخادم) أو تصفيتها أو التحقق منها من قبل واجهة برمجة التطبيقات API قبل عملية استخدامها
30
+
31
+
<h3dir='rtl'align='right'>أمثلة على سيناريوهات الهجوم:</h3>
29
32
30
-
<h4dir='rtl'align='right'>السيناريو الاول: </h4>
33
+
<h4dir='rtl'align='right'>السيناريو الأول:</h4>
31
34
32
-
<pdir='rtl'align='right'> يتم استخدام الكاميرات للمراقبة في المنازل مصدر بيانات للإعدادات في المسار التالي /api/CONFIG/restore و من المتوقع ان يتم استقبال معرف فريد في أجزاء متعددة، فباستخدام برنامج فك وتحويل الشفرات البرمجية(decompile)، تمكن المهاجم من إيجاد طريقة لتعامل مع النظام بشكل مباشر ومن غير عوامل التصفية المقترحة.
35
+
<pdir='rtl'align='right'>يقوم نظام جهاز التحكم الأبوي باستخدام المسار <codedir='ltr'>/api/CONFIG/restore</code> والذي يتوقع أن يستقبل معرف التطبيق appId في أجزاء متعددة.
36
+
فباستخدام برنامج فك وتحويل الشفرات البرمجية(decompile)، يجد المهاجم أن المعرف appId يتم تمريره مباشرة للنظام ومن غير عوامل التصفية المقترحة:
<h4 dir='rtl' align='right'>السيناريو الثاني : </h4>
50
+
<h4 dir='rtl' align='right'>السيناريو الثاني :</h4>
51
+
47
52
53
+
<p dir='rtl' align='right'>لدينا تطبيق قائم على وظائف CRUD للتعامل مع الحجوزات، تمكن مهاجم من التعرف على إمكانية حقن NoSQL من خلال الاستعلام بالمعرف الفريد للحجوزات <code>bookingId</code> وطلب الحذف بأمر كالتالي: <code dir='ltr'>DELETE /api/bookings?bookingId=678</code>
48
54
49
-
<p dir='rtl' align='right'> تطبيق للحجوزات قائم على وظائف CRUD، حيث قام المهاجم بالعديد من محاولات الفحص التي مكنته من معرفة اللغة المستخدمة في المفسر وهي NoSQL والتي استطاع من خلالها حقن المعرف الفريد للحجوزات bookingid باوامر من اجل مسح وحذف الحجوزات من خلال استخدام المسار التالي: DELETE /api/bookings?bookingId=678
55
+
<p dir='rtl' align='right'>خادم واجهة برمجة التطبيقات (API Server) يستخدم الدالة التالية للتعامل مع طلبات الحذف:
50
56
51
-
<p dir='rtl' align='right'> حيث قام المهاجم بإرسال الطلب من خلال واجهة برمجة التطبيقات API للتعامل مع طلب الحذف الامر التالي:
52
-
53
57
```javascript
54
58
router.delete('/bookings', async function (req, res, next) {
<pdir='rtl'align='right'>قام المهاجم باعتراض الطلبات الخاصة بالمعرف الفريد bookinigid وقام بتغير طريقة الاستعلام والتي أدت الى حذف حجز مستخدم اخر.
68
+
<pdir='rtl'align='right'>قام المهاجم باعتراض الطلبات الخاصة بالمعرف الفريد <code>bookingId</code> وقام بتغير أمر الاستعلام كما هو معروض بالأسفل مما أدى إلى حذف حجز يعود لمستخدم آخر:
65
69
66
70
```
67
71
DELETE /api/bookings?bookingId[$ne]=678
68
72
```
69
73
70
-
<h4dir='rtl'align='right'>كيف أمنع هذه الثغرة؟ </h4>
74
+
<h3dir='rtl'align='right'>كيف أمنع هذه الثغرة؟ </h3>
71
75
72
-
<pdir='rtl'align='right'> لمنع عمليات الحقن انت بحاجة الى فصل الأوامر والتعليمات البرمجية عن الاستعلامات بشكل صحيح و امن.
76
+
<pdir='rtl'align='right'> لمنع عمليات الحقن انت بحاجة إلى فصل الأوامر والتعليمات البرمجية عن الاستعلامات بشكل صحيح و امن.
73
77
74
-
<pdir='rtl'align='right'>▪️ قم بإجراء التحقق من صحة البيانات المدخلة باستخدام مكتبة موحدة وامنه وموثوقة ويتم صيانتها بشكل دوري.
75
-
<pdir='rtl'align='right'>▪️ التحقق من صحة جميع البيانات المقدمة من المستخدم أو غيرها من البيانات الواردة من الأنظمة المتكاملة وتصفيتها.
76
-
<pdir='rtl'align='right'>▪️ يجب تخطي الأحرف الخاصة باستخدام الصيغة المحددة للمفسر المستهدف.
77
-
<pdir='rtl'align='right'>▪️ قم بتوفير بيئة امنه لواجهة برمجة التطبيقات API ذات استعلامات واضحة.
78
-
<pdir='rtl'align='right'>▪️ حدد دائمًا عدد السجلات التي يتم إرجاعها لمنع تسريب البيانات للجميع في حالة نجاح عملية الحقن.
78
+
<pdir='rtl'align='right'>▪️ قم بإجراء التحقق من صحة البيانات المدخلة باستخدام مكتبة موحدة وامنه وموثوقة ويتم صيانتها بشكل دوري.
79
+
<pdir='rtl'align='right'>▪️ تحقق من صحة جميع البيانات المقدمة من المستخدم أو غيرها من البيانات الواردة من الأنظمة المتكاملة وتصفيتها.
80
+
<pdir='rtl'align='right'>▪️ يجب التعامل مع الأحرف والرموز الخاصة باستخدام الصيغة المحددة للمفسر المستهدف.
81
+
<pdir='rtl'align='right'>▪️ استخدم واجهة برمجة تطبيقات آمنة (safe API) ذات استعلامات واضحة.
82
+
<pdir='rtl'align='right'>▪️ ضع حداً لعدد السجلات التي يتم إرجاعها لمنع تسريب البيانات بشكل كبير في حالة نجاح عملية الحقن.
79
83
<pdir='rtl'align='right'>▪️ تحقق من صحة البيانات الواردة باستخدام عوامل تصفية كافية للسماح فقط بالقيم الصالحة لكل استعلام تم إدخاله.
80
-
<pdir='rtl'align='right'>▪️ تعريف بشكل واضح ومحدد ماهي الانماط و انواع البيانات المستخدمة في الاستعلامات
84
+
<pdir='rtl'align='right'>▪️ عرف بشكل واضح ومحدد الانماط و أنواع البيانات المستخدمة في الاستعلامات
0 commit comments