주통기반-LDAP Injection

황인환·2024년 8월 10일

정의

  • LDAP쿼리에 악의적인 값의 삽입하여 인증우회, 정보유출등 다양한 공격을 가능하게 하는 것입니다.

원인

  • 입력검증부족: 사용자입력을 제대로 검증 및 필터링하지 않아 악의적인 쿼리 허용 할 수도 있다.
  • 쿼리조작: 사용자입력이 LDAP쿼리문의 문자열 일부로 직접 포함되어 있거나 동적으로 LDAP쿼리를 생성하는 경우 악의적인 쿼리를 허용 할 수도 있다.

위협

  • 유효성 검증을 하지 않으면 LDAP문의 변조가능하고 시스템 정보 유출 가능성이 있습니다.

TEST방법

  • 원래쿼리(로그인창)
    (&(uid=username)(password=password))

  • TEST문
    webtest)(&))를 ID에 입력하여 에러가 발생하는지 확인합니다.

  • 인증우회
    username=admin)(|(password=*))를 삽입하여 (&(uid=admin)(|(password=*)))로 쿼리를 변형시켜 모든 패스워드를 우회합니다.

  • 정보유출
    *)(userPassword=*)를 삽입하여 (&(uid=*)(userPassword=*))로 쿼리를 변경시켜 모든 아이디와 비밀번호를 조회합니다.

대상 & 판단기준 & 조치방법

내용
대상웹 어플리케이션 소스코드, 웹방화벽
판단기준양호- webtest)(&))가 실행되지 않는 경우/ 취약- webtest)(&))가 실행되는 경우
조치방법지정된 문자열만 입력 허용하고 사용자 입력에 대한 검증로직 구현

보충지식

LDAP란

  • 디렉토리 서비스에서 사용되는 프로토콜로, 트리 구조의 정형화된 데이터 저장에 적합하며 주로 사용자 정보 관리에 사용됩니다.
  • 읽기에 최적화 되어있어 빠른검색과 조회가 중요할때 사용합니다. 따라서 사용자 인증, 권한부여, 이메일 주소록, 조직정보관리 등에 많이 사용됩니다.

LDAP와 DB차이

특징LDAP 서버데이터베이스(DB)
목적디렉토리 서비스 (사용자 정보, 조직 구조 등)일반 데이터 저장 및 검색
데이터 구조  계층적 구조 (트리 형태)관계형(테이블) 또는 비관계형(문서, 그래프 등)
사용 사례사용자 인증, 이메일 주소록, 권한 관리애플리케이션 데이터 저장, 금융 기록 관리
프로토콜LDAP (주로 TCP/IP 기반)SQL, NoSQL, 각 데이터베이스별 프로토콜
예시Active Directory, OpenLDAPMySQL, PostgreSQL, MongoDB

디렉토리 서비스란?

  • 디렉토리 서비스는 네트워크와 시스템의 리소스, 사용자, 그룹, 정책 등을 중앙에서 관리하고 접근할 수 있도록 돕는 서비스입니다.

디렉토리 서비스 기능

기능내용
정보 저장정보가 일관되게 유지하기위해 사용자계정, 그룹등의 정보를 중앙에서 저장합니다.
정보 검색필요정보를 쉽고 빠르게 검색하고 조회할 수 있습니다.
인증 &     권한부여사용자인증(로그인)과 권한부여(엑세스 제어)를 지원하여 사용자가 네트워크에 로그인 할 때 디렉토리 서비스가 사용자의 자격증명을 체크합니다

0개의 댓글