Web Analytics/SW 보안약점 진단원
[구현보안] 입력 데이터 검증 및 표현 09 - LDAP 삽입
SalaYH
2019. 10. 2. 00:25
반응형
가. 원인
- 검증없이 외부입력값을 LDAP 필터문에 사용하여 LDAP 명령구문을 변조
나. 영향
- LDAP 필터문을 조작하여 정보유출 및 정보조작
다. 보안대책
- 사용자입력값에 특수문자( = + < > # ; \ 등 ) 필터링
- 특수문자가 일반문자로 인식되도록 처리 (이스케이프)
라. 안전한 코드
1. 화이트 리스트로 URL 검증
String userSN = request.getParameter("usersn"); String userPass = request.getParameter("pass"); ... if ( !userSN.matches("[\\w\\s]*") || !userPass.matches("[\\w]*") ) { return; } String filter = "(&(sn=" + userSN + ")(userPassword=" + userPass + "))"; ....
|
마. 진단방법
<입력값 검증>
1. LDAP 조회 쿼리를 실행하는지 확인
2. LDAP 조회문의 필터에 외부 입력값을 사용하는지 확인
3. 외부입력값을 검증 후 사용하는지 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 입력값을 검증하지 않고 쿼리문 생성 문자열에 사용될 경우
2. 입력값이 검증없이 검색을 위한 base 문자열의 생성에 사용
반응형