Skip to content

Commit 1c6225b

Browse files
authored
Update 0xa8-injection.md
1 parent b23bfa8 commit 1c6225b

File tree

1 file changed

+22
-41
lines changed

1 file changed

+22
-41
lines changed

2019/ar/src/0xa8-injection.md

Lines changed: 22 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,13 @@ system(cmd);
4343
$ curl -k "https://${deviceIP}:4567/api/CONFIG/restore" -F 'appid=$(/etc/pod/power_down.sh)'
4444
```
4545
46-
### Scenario #2
46+
<h4 dir='rtl' align='right'>السيناريو الثاني : </h4>
4747
48-
We have an application with basic CRUD functionality for operations with
49-
bookings. An attacker managed to identify that NoSQL injection might be possible
50-
through `bookingId` query string parameter in the delete booking request. This
51-
is how the request looks like: `DELETE /api/bookings?bookingId=678`.
5248
53-
The API server uses the following function to handle delete requests:
49+
<p dir='rtl' align='right'> تطبيق للحجوزات قائم على وظائف CRUD، حيث قام المهاجم بالعديد من محاولات الفحص التي مكنته من معرفة اللغة المستخدمة في المفسر وهي NoSQL والتي استطاع من خلالها حقن المعرف الفريد للحجوزات bookingid باوامر من اجل مسح وحذف الحجوزات من خلال استخدام المسار التالي: DELETE /api/bookings?bookingId=678
5450
51+
<p dir='rtl' align='right'> حيث قام المهاجم بإرسال الطلب من خلال واجهة برمجة التطبيقات API لتعامل مع طلب الحذف الامر التالي:
52+
5553
```javascript
5654
router.delete('/bookings', async function (req, res, next) {
5755
try {
@@ -63,49 +61,32 @@ router.delete('/bookings', async function (req, res, next) {
6361
});
6462
```
6563

66-
<h4 dir='rtl' align='right'>السيناريو الثاني : </h4>
67-
68-
<p dir='rtl' align='right'> تطبيق للحجوزات قائم على وظائف CRUD، حيث قام المهاجم بالعديد من محاولات الفحص التي مكنته من معرفة اللغة المستخدمة في المفسر وهي NoSQL والتي استطاع من خلالها حقن المعرف الفريد للحجوزات bookingid باوامر من اجل مسح وحذف الحجوزات من خلال استخدام المسار التالي: DELETE /api/bookings?bookingId=678
69-
<p dir='rtl' align='right'> حيث قام المهاجم بإرسال الطلب من خلال واجهة برمجة التطبيقات API لتعامل مع طلب الحذف الامر التالي:
70-
64+
<p dir='rtl' align='right'> قام المهاجم باعتراض الطلبات الخاصة بالمعرف الفريد bookinigid وقام بتغير طريقة الاستعلام والتي أدت الى حذف حجز مستخدم اخر.
7165
```
7266
DELETE /api/bookings?bookingId[$ne]=678
7367
```
7468

75-
## How To Prevent
69+
<h4 dir='rtl' align='right'>كيف أمنع هذه الثغرة؟ </h4>
7670

77-
Preventing injection requires keeping data separate from commands and queries.
78-
79-
* Perform data validation using a single, trustworthy, and actively maintained
80-
library.
81-
* Validate, filter, and sanitize all client-provided data, or other data coming
82-
from integrated systems.
83-
* Special characters should be escaped using the specific syntax for the target
84-
interpreter.
85-
* Prefer a safe API that provides a parameterized interface.
86-
* Always limit the number of returned records to prevent mass disclosure in case
87-
of injection.
88-
* Validate incoming data using sufficient filters to only allow valid values for
89-
each input parameter.
90-
* Define data types and strict patterns for all string parameters.
71+
<p dir='rtl' align='right'> لمنع عمليات الحقن انت بحاجة الى فصل الأوامر والتعليمات البرمجية عن الاستعلامات بشكل صحيح و امن.
9172

73+
<p dir='rtl' align='right'>▪️ قم بإجراء التحقق من صحة البيانات المدخلة باستخدام مكتبة موحدة وامنه وموثوقة ويتم صيانتها بشكل دوري.
74+
<p dir='rtl' align='right'>▪️ التحقق من صحة جميع البيانات المقدمة من المستخدم أو غيرها من البيانات الواردة من الأنظمة المتكاملة وتصفيتها.
75+
<p dir='rtl' align='right'>▪️ يجب تخطي الأحرف الخاصة باستخدام الصيغة المحددة المفسر المستهدف.
76+
<p dir='rtl' align='right'>▪️ قم بتوفير بيئة امنه لواجهة برمجة التطبيقات API ذات استعلامات واضحة.
77+
<p dir='rtl' align='right'>▪️ حدد دائمًا عدد السجلات التي يتم إرجاعها لمنع تسريب البيانات للجميع في حالة نجاح عملية الحقن.
78+
<p dir='rtl' align='right'>▪️ تحقق من صحة البيانات الواردة باستخدام عوامل تصفية كافية للسماح فقط بالقيم الصالحة لكل استعلام تم إدخاله.
79+
<p dir='rtl' align='right'>▪️ تعريف بشكل واضح ومحدد ماهي الانماط و انواع البيانات المستخدمة في الاستعلامات
9280
## References
9381

94-
### OWASP
95-
96-
* [OWASP Injection Flaws][1]
97-
* [SQL Injection][2]
98-
* [NoSQL Injection Fun with Objects and Arrays][3]
99-
* [Command Injection][4]
82+
<h4 dir='rtl' align='right'>المراجع : </h4>
10083

101-
### External
84+
<h4 dir='rtl' align='right'>المصادر الخارجية : </h4>
10285

103-
* [CWE-77: Command Injection][5]
104-
* [CWE-89: SQL Injection][6]
86+
[<p dir='rtl' align='right'>▪️ OWASP Injection Flaws </p>](https://www.owasp.org/index.php/Injection_Flaws)
87+
[<p dir='rtl' align='right'>▪️ SQL Injection </p>](https://www.owasp.org/index.php/SQL_Injection)
88+
[<p dir='rtl' align='right'>▪️ NoSQL Injection Fun with Objects and Arrays </p>](https://www.owasp.org/images/e/ed/GOD16-NOSQL.pdf)
89+
[<p dir='rtl' align='right'>▪️ Command Injection </p>]( https://www.owasp.org/index.php/Command_Injection)
10590

106-
[1]: https://www.owasp.org/index.php/Injection_Flaws
107-
[2]: https://www.owasp.org/index.php/SQL_Injection
108-
[3]: https://www.owasp.org/images/e/ed/GOD16-NOSQL.pdf
109-
[4]: https://www.owasp.org/index.php/Command_Injection
110-
[5]: https://cwe.mitre.org/data/definitions/77.html
111-
[6]: https://cwe.mitre.org/data/definitions/89.html
91+
[<p dir='rtl' align='right'>▪️ CWE-77: Command Injection </p>](https://cwe.mitre.org/data/definitions/77.html)
92+
[<p dir='rtl' align='right'>▪️ CWE-89: SQL Injection </p>](https://cwe.mitre.org/data/definitions/89.html)

0 commit comments

Comments
 (0)